diff options
Diffstat (limited to 'src/vat2')
-rw-r--r-- | src/vat2/jsonconvert.c | 3 | ||||
-rw-r--r-- | src/vat2/test/vat2_test.api | 13 | ||||
-rw-r--r-- | src/vat2/test/vat2_test.c | 20 |
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) |