summaryrefslogtreecommitdiffstats
path: root/src/vat2/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/vat2/test')
-rw-r--r--src/vat2/test/vat2_test.api38
-rw-r--r--src/vat2/test/vat2_test.c35
2 files changed, 73 insertions, 0 deletions
diff --git a/src/vat2/test/vat2_test.api b/src/vat2/test/vat2_test.api
index fe96dd75784..ff503f0d03a 100644
--- a/src/vat2/test/vat2_test.api
+++ b/src/vat2/test/vat2_test.api
@@ -36,6 +36,44 @@ typedef test_stringtype {
autoreply define test_string {
vl_api_test_stringtype_t str;
};
+
autoreply define test_string2 {
string str[];
};
+
+/* Test of toplevel VLA with basetype */
+autoreply define test_vla {
+ u32 count;
+ u32 vla[count];
+};
+
+/* Test of toplevel VLA with u8 */
+autoreply define test_vla2 {
+ u32 count;
+ u8 vla[count];
+};
+/* Test of toplevel VLA with user type */
+typedef test_vlatype {
+ u32 data;
+};
+autoreply define test_vla3 {
+ u32 count;
+ vl_api_test_vlatype_t vla[count];
+};
+/* Test of typedefed VLA */
+typedef test_vlatype2 {
+ u32 count;
+ u32 vla[count];
+};
+autoreply define test_vla4 {
+ vl_api_test_vlatype2_t data;
+};
+/* u8 string in typedef */
+typedef test_vlatype3 {
+ u32 count;
+ u8 vla[count];
+};
+autoreply define test_vla5 {
+ vl_api_test_vlatype3_t data;
+};
+
diff --git a/src/vat2/test/vat2_test.c b/src/vat2/test/vat2_test.c
index b5346eeea47..10cfee4be17 100644
--- a/src/vat2/test/vat2_test.c
+++ b/src/vat2/test/vat2_test.c
@@ -84,6 +84,7 @@ runtest (char *s, bool should_fail)
assert(name);
uword *p = hash_get_mem(function_by_name_tojson, name);
+ printf ("Message name: %s\n", name);
assert(p);
tojson_fn_t tojson = (tojson_fn_t)p[0];
@@ -116,6 +117,31 @@ struct msgs msgs[] = {
.tojson = (tojson_fn_t) vl_api_test_string2_t_tojson,
.fromjson = (fromjson_fn_t) vl_api_test_string2_t_fromjson,
},
+ {
+ .name = "test_vla",
+ .tojson = (tojson_fn_t) vl_api_test_vla_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_vla_t_fromjson,
+ },
+ {
+ .name = "test_vla2",
+ .tojson = (tojson_fn_t) vl_api_test_vla2_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_vla2_t_fromjson,
+ },
+ {
+ .name = "test_vla3",
+ .tojson = (tojson_fn_t) vl_api_test_vla3_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_vla3_t_fromjson,
+ },
+ {
+ .name = "test_vla4",
+ .tojson = (tojson_fn_t) vl_api_test_vla4_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_vla4_t_fromjson,
+ },
+ {
+ .name = "test_vla5",
+ .tojson = (tojson_fn_t) vl_api_test_vla5_t_tojson,
+ .fromjson = (fromjson_fn_t) vl_api_test_vla5_t_fromjson,
+ },
};
struct tests tests[] = {
@@ -128,6 +154,15 @@ struct tests tests[] = {
"type\"}}" },
{ .s =
"{\"_msgname\": \"test_string2\", \"str\": \"Test string toplevel\"}" },
+ { .s = "{\"_msgname\": \"test_vla\", \"count\": 5, \"vla\": [1,2,3,4,5]}" },
+ { .s = "{\"_msgname\": \"test_vla2\", \"count\": 5, \"vla\": "
+ "\"0xaabbccddee\"}" },
+ { .s = "{\"_msgname\": \"test_vla3\", \"count\": 2, \"vla\": [{\"data\": 1} "
+ ", {\"data\": 2} ] }" },
+ { .s = "{\"_msgname\": \"test_vla4\", \"data\": { \"count\": 5, \"vla\": "
+ "[1,2,3,4,5] }}" },
+ { .s = "{\"_msgname\": \"test_vla5\", \"data\": { \"count\": 5, \"vla\": "
+ "\"0xaabbccddee\" }}" },
};
int main (int argc, char **argv)