|
@@ -775,6 +775,7 @@ static void test_visitor_in_alternate_number(TestInputVisitorData *data,
|
|
AltEnumNum *aen;
|
|
AltEnumNum *aen;
|
|
AltNumEnum *ans;
|
|
AltNumEnum *ans;
|
|
AltEnumInt *asi;
|
|
AltEnumInt *asi;
|
|
|
|
+ AltListInt *ali;
|
|
|
|
|
|
/* Parsing an int */
|
|
/* Parsing an int */
|
|
|
|
|
|
@@ -801,6 +802,12 @@ static void test_visitor_in_alternate_number(TestInputVisitorData *data,
|
|
g_assert_cmpint(asi->u.i, ==, 42);
|
|
g_assert_cmpint(asi->u.i, ==, 42);
|
|
qapi_free_AltEnumInt(asi);
|
|
qapi_free_AltEnumInt(asi);
|
|
|
|
|
|
|
|
+ v = visitor_input_test_init(data, "42");
|
|
|
|
+ visit_type_AltListInt(v, NULL, &ali, &error_abort);
|
|
|
|
+ g_assert_cmpint(ali->type, ==, QTYPE_QNUM);
|
|
|
|
+ g_assert_cmpint(ali->u.i, ==, 42);
|
|
|
|
+ qapi_free_AltListInt(ali);
|
|
|
|
+
|
|
/* Parsing a double */
|
|
/* Parsing a double */
|
|
|
|
|
|
v = visitor_input_test_init(data, "42.5");
|
|
v = visitor_input_test_init(data, "42.5");
|
|
@@ -826,6 +833,37 @@ static void test_visitor_in_alternate_number(TestInputVisitorData *data,
|
|
qapi_free_AltEnumInt(asi);
|
|
qapi_free_AltEnumInt(asi);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void test_visitor_in_alternate_list(TestInputVisitorData *data,
|
|
|
|
+ const void *unused)
|
|
|
|
+{
|
|
|
|
+ intList *item;
|
|
|
|
+ Visitor *v;
|
|
|
|
+ AltListInt *ali;
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ v = visitor_input_test_init(data, "[ 42, 43, 44 ]");
|
|
|
|
+ visit_type_AltListInt(v, NULL, &ali, &error_abort);
|
|
|
|
+ g_assert(ali != NULL);
|
|
|
|
+
|
|
|
|
+ g_assert_cmpint(ali->type, ==, QTYPE_QLIST);
|
|
|
|
+ for (i = 0, item = ali->u.l; item; item = item->next, i++) {
|
|
|
|
+ g_assert_cmpint(item->value, ==, 42 + i);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ qapi_free_AltListInt(ali);
|
|
|
|
+ ali = NULL;
|
|
|
|
+
|
|
|
|
+ /* An empty list is valid */
|
|
|
|
+ v = visitor_input_test_init(data, "[]");
|
|
|
|
+ visit_type_AltListInt(v, NULL, &ali, &error_abort);
|
|
|
|
+ g_assert(ali != NULL);
|
|
|
|
+
|
|
|
|
+ g_assert_cmpint(ali->type, ==, QTYPE_QLIST);
|
|
|
|
+ g_assert(!ali->u.l);
|
|
|
|
+ qapi_free_AltListInt(ali);
|
|
|
|
+ ali = NULL;
|
|
|
|
+}
|
|
|
|
+
|
|
static void input_visitor_test_add(const char *testpath,
|
|
static void input_visitor_test_add(const char *testpath,
|
|
const void *user_data,
|
|
const void *user_data,
|
|
void (*test_func)(TestInputVisitorData *data,
|
|
void (*test_func)(TestInputVisitorData *data,
|
|
@@ -1187,6 +1225,8 @@ int main(int argc, char **argv)
|
|
NULL, test_visitor_in_wrong_type);
|
|
NULL, test_visitor_in_wrong_type);
|
|
input_visitor_test_add("/visitor/input/alternate-number",
|
|
input_visitor_test_add("/visitor/input/alternate-number",
|
|
NULL, test_visitor_in_alternate_number);
|
|
NULL, test_visitor_in_alternate_number);
|
|
|
|
+ input_visitor_test_add("/visitor/input/alternate-list",
|
|
|
|
+ NULL, test_visitor_in_alternate_list);
|
|
input_visitor_test_add("/visitor/input/fail/struct",
|
|
input_visitor_test_add("/visitor/input/fail/struct",
|
|
NULL, test_visitor_in_fail_struct);
|
|
NULL, test_visitor_in_fail_struct);
|
|
input_visitor_test_add("/visitor/input/fail/struct-nested",
|
|
input_visitor_test_add("/visitor/input/fail/struct-nested",
|