summaryrefslogtreecommitdiffstats
path: root/src/vat2
diff options
context:
space:
mode:
Diffstat (limited to 'src/vat2')
-rw-r--r--src/vat2/jsonconvert.c3
-rw-r--r--src/vat2/test/vat2_test.api13
-rw-r--r--src/vat2/test/vat2_test.c20
3 files changed, 35 insertions, 1 deletions
diff --git a/src/vat2/jsonconvert.c b/src/vat2/jsonconvert.c
index fa41e7988e2..d62cda1091c 100644
--- a/src/vat2/jsonconvert.c
+++ b/src/vat2/jsonconvert.c
@@ -69,7 +69,8 @@ int
u8string_fromjson2(cJSON *o, char *fieldname, u8 *data)
{
u8 *s = u8string_fromjson(o, fieldname);
- if (!s) return 0;
+ if (!s)
+ return -1;
memcpy(data, s, vec_len(s));
vec_free(s);
return 0;
diff --git a/src/vat2/test/vat2_test.api b/src/vat2/test/vat2_test.api
index 58961475e30..afc8afa4dd7 100644
--- a/src/vat2/test/vat2_test.api
+++ b/src/vat2/test/vat2_test.api
@@ -81,3 +81,16 @@ autoreply define test_vla5 {
autoreply define test_addresses {
vl_api_address_t a;
};
+autoreply define test_addresses2 {
+ vl_api_address_t a[2];
+};
+autoreply define test_addresses3 {
+ u32 n;
+ vl_api_address_t a[n];
+};
+
+/* Empty */
+autoreply define test_empty {
+ u32 client_index;
+ u32 context;
+};
diff --git a/src/vat2/test/vat2_test.c b/src/vat2/test/vat2_test.c
index f28bb414d56..89714c4f992 100644
--- a/src/vat2/test/vat2_test.c
+++ b/src/vat2/test/vat2_test.c
@@ -147,6 +147,21 @@ struct msgs msgs[] = {
.tojson = (tojson_fn_t) vl_api_test_addresses_t_tojson,
.fromjson = (fromjson_fn_t) vl_api_test_addresses_t_fromjson,
},
+ {
+ .name = "test_addresses2",
+ .tojson = (tojson_fn_t) vl_api_test_addresses2_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_addresses2_t_fromjson,
+ },
+ {
+ .name = "test_addresses3",
+ .tojson = (tojson_fn_t) vl_api_test_addresses3_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_addresses3_t_fromjson,
+ },
+ {
+ .name = "test_empty",
+ .tojson = (tojson_fn_t) vl_api_test_empty_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_empty_t_fromjson,
+ },
};
struct tests tests[] = {
@@ -170,6 +185,11 @@ struct tests tests[] = {
"\"0xaabbccddee\" }}" },
{ .s = "{\"_msgname\": \"test_addresses\", \"a\": \"1.2.3.4\" }" },
{ .s = "{\"_msgname\": \"test_addresses\", \"a\": \"2001:db8::23\" }" },
+ { .s = "{\"_msgname\": \"test_addresses2\", \"a\": [\"2001:db8::23\", "
+ "\"2001:db8::23\"] }" },
+ { .s = "{\"_msgname\": \"test_addresses3\", \"n\": 2, \"a\": "
+ "[\"2001:db8::23\", \"2001:db8::23\"] }" },
+ { .s = "{\"_msgname\": \"test_empty\"}" },
};
int main (int argc, char **argv)