Lines Matching +full:- +full:v

2  * QObject Input Visitor unit-tests.
4 * Copyright (C) 2011-2016 Red Hat Inc.
11 * See the COPYING file in the top-level directory.
17 #include "qapi/qapi-visit-introspect.h"
18 #include "qapi/qobject-input-visitor.h"
19 #include "test-qapi-visit.h"
26 #include "test-qapi-introspect.h"
27 #include "qapi/qapi-introspect.h"
37 qobject_unref(data->obj); in visitor_input_teardown()
38 data->obj = NULL; in visitor_input_teardown()
40 if (data->qiv) { in visitor_input_teardown()
41 visit_free(data->qiv); in visitor_input_teardown()
42 data->qiv = NULL; in visitor_input_teardown()
55 data->obj = obj; in test_init_internal()
58 data->qiv = qobject_input_visitor_new_keyval(data->obj); in test_init_internal()
60 data->qiv = qobject_input_visitor_new(data->obj); in test_init_internal()
62 g_assert(data->qiv); in test_init_internal()
63 return data->qiv; in test_init_internal()
71 Visitor *v; in visitor_input_test_init_full() local
75 v = test_init_internal(data, keyval, in visitor_input_test_init_full()
78 return v; in visitor_input_test_init_full()
85 Visitor *v; in visitor_input_test_init() local
89 v = test_init_internal(data, false, in visitor_input_test_init()
92 return v; in visitor_input_test_init()
99 * will wrap those in double-quotes and treat the entire object as a
114 int value = -42; in test_visitor_in_int()
115 Visitor *v; in test_visitor_in_int() local
117 v = visitor_input_test_init(data, "%d", value); in test_visitor_in_int()
119 visit_type_int(v, NULL, &res, &error_abort); in test_visitor_in_int()
122 visit_type_number(v, NULL, &dbl, &error_abort); in test_visitor_in_int()
123 g_assert_cmpfloat(dbl, ==, -42.0); in test_visitor_in_int()
133 Visitor *v; in test_visitor_in_uint() local
135 v = visitor_input_test_init(data, "%d", value); in test_visitor_in_uint()
137 visit_type_uint64(v, NULL, &res, &error_abort); in test_visitor_in_uint()
140 visit_type_int(v, NULL, &i64, &error_abort); in test_visitor_in_uint()
143 visit_type_number(v, NULL, &dbl, &error_abort); in test_visitor_in_uint()
146 /* BUG: value between INT64_MIN and -1 accepted modulo 2^64 */ in test_visitor_in_uint()
147 v = visitor_input_test_init(data, "%d", -value); in test_visitor_in_uint()
149 visit_type_uint64(v, NULL, &res, &error_abort); in test_visitor_in_uint()
150 g_assert_cmpuint(res, ==, (uint64_t)-value); in test_visitor_in_uint()
152 v = visitor_input_test_init(data, "18446744073709551574"); in test_visitor_in_uint()
154 visit_type_uint64(v, NULL, &res, &error_abort); in test_visitor_in_uint()
157 visit_type_number(v, NULL, &dbl, &error_abort); in test_visitor_in_uint()
166 Visitor *v; in test_visitor_in_int_overflow() local
173 v = visitor_input_test_init(data, "%f", DBL_MAX); in test_visitor_in_int_overflow()
175 visit_type_int(v, NULL, &res, &err); in test_visitor_in_int_overflow()
182 int64_t res = 0, value = -42; in test_visitor_in_int_keyval()
184 Visitor *v; in test_visitor_in_int_keyval() local
186 v = visitor_input_test_init_full(data, true, "%" PRId64, value); in test_visitor_in_int_keyval()
187 visit_type_int(v, NULL, &res, &err); in test_visitor_in_int_keyval()
194 int64_t res = 0, value = -42; in test_visitor_in_int_str_keyval()
195 Visitor *v; in test_visitor_in_int_str_keyval() local
197 v = visitor_input_test_init_full(data, true, "\"-42\""); in test_visitor_in_int_str_keyval()
199 visit_type_int(v, NULL, &res, &error_abort); in test_visitor_in_int_str_keyval()
207 Visitor *v; in test_visitor_in_int_str_fail() local
210 v = visitor_input_test_init(data, "\"-42\""); in test_visitor_in_int_str_fail()
212 visit_type_int(v, NULL, &res, &err); in test_visitor_in_int_str_fail()
220 Visitor *v; in test_visitor_in_bool() local
222 v = visitor_input_test_init(data, "true"); in test_visitor_in_bool()
224 visit_type_bool(v, NULL, &res, &error_abort); in test_visitor_in_bool()
233 Visitor *v; in test_visitor_in_bool_keyval() local
235 v = visitor_input_test_init_full(data, true, "true"); in test_visitor_in_bool_keyval()
237 visit_type_bool(v, NULL, &res, &err); in test_visitor_in_bool_keyval()
245 Visitor *v; in test_visitor_in_bool_str_keyval() local
247 v = visitor_input_test_init_full(data, true, "\"on\""); in test_visitor_in_bool_str_keyval()
249 visit_type_bool(v, NULL, &res, &error_abort); in test_visitor_in_bool_str_keyval()
257 Visitor *v; in test_visitor_in_bool_str_fail() local
260 v = visitor_input_test_init(data, "\"true\""); in test_visitor_in_bool_str_fail()
262 visit_type_bool(v, NULL, &res, &err); in test_visitor_in_bool_str_fail()
270 Visitor *v; in test_visitor_in_number() local
272 v = visitor_input_test_init(data, "%f", value); in test_visitor_in_number()
274 visit_type_number(v, NULL, &res, &error_abort); in test_visitor_in_number()
285 Visitor *v; in test_visitor_in_large_number() local
287 v = visitor_input_test_init(data, "-18446744073709551616"); /* -2^64 */ in test_visitor_in_large_number()
289 visit_type_number(v, NULL, &res, &error_abort); in test_visitor_in_large_number()
290 g_assert_cmpfloat(res, ==, -18446744073709552e3); in test_visitor_in_large_number()
292 visit_type_int(v, NULL, &i64, &err); in test_visitor_in_large_number()
295 visit_type_uint64(v, NULL, &u64, &err); in test_visitor_in_large_number()
304 Visitor *v; in test_visitor_in_number_keyval() local
306 v = visitor_input_test_init_full(data, true, "%f", value); in test_visitor_in_number_keyval()
308 visit_type_number(v, NULL, &res, &err); in test_visitor_in_number_keyval()
316 Visitor *v; in test_visitor_in_number_str_keyval() local
319 v = visitor_input_test_init_full(data, true, "\"3.14\""); in test_visitor_in_number_str_keyval()
321 visit_type_number(v, NULL, &res, &error_abort); in test_visitor_in_number_str_keyval()
324 v = visitor_input_test_init_full(data, true, "\"inf\""); in test_visitor_in_number_str_keyval()
326 visit_type_number(v, NULL, &res, &err); in test_visitor_in_number_str_keyval()
334 Visitor *v; in test_visitor_in_number_str_fail() local
337 v = visitor_input_test_init(data, "\"3.14\""); in test_visitor_in_number_str_fail()
339 visit_type_number(v, NULL, &res, &err); in test_visitor_in_number_str_fail()
347 Visitor *v; in test_visitor_in_size_str_keyval() local
349 v = visitor_input_test_init_full(data, true, "\"500M\""); in test_visitor_in_size_str_keyval()
351 visit_type_size(v, NULL, &res, &error_abort); in test_visitor_in_size_str_keyval()
359 Visitor *v; in test_visitor_in_size_str_fail() local
362 v = visitor_input_test_init(data, "\"500M\""); in test_visitor_in_size_str_fail()
364 visit_type_size(v, NULL, &res, &err); in test_visitor_in_size_str_fail()
372 Visitor *v; in test_visitor_in_string() local
374 v = visitor_input_test_init(data, "%s", value); in test_visitor_in_string()
376 visit_type_str(v, NULL, &res, &error_abort); in test_visitor_in_string()
385 Visitor *v; in test_visitor_in_enum() local
389 EnumOne res = -1; in test_visitor_in_enum()
391 v = visitor_input_test_init(data, "%s", EnumOne_str(i)); in test_visitor_in_enum()
393 visit_type_EnumOne(v, NULL, &res, &error_abort); in test_visitor_in_enum()
403 Visitor *v; in test_visitor_in_struct() local
405 v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }"); in test_visitor_in_struct()
407 visit_type_TestStruct(v, NULL, &p, &error_abort); in test_visitor_in_struct()
408 g_assert_cmpint(p->integer, ==, -42); in test_visitor_in_struct()
409 g_assert(p->boolean == true); in test_visitor_in_struct()
410 g_assert_cmpstr(p->string, ==, "foo"); in test_visitor_in_struct()
412 g_free(p->string); in test_visitor_in_struct()
420 Visitor *v; in test_visitor_in_struct_nested() local
422 v = visitor_input_test_init(data, "{ 'string0': 'string0', " in test_visitor_in_struct_nested()
427 visit_type_UserDefTwo(v, NULL, &udp, &error_abort); in test_visitor_in_struct_nested()
429 g_assert_cmpstr(udp->string0, ==, "string0"); in test_visitor_in_struct_nested()
430 g_assert_cmpstr(udp->dict1->string1, ==, "string1"); in test_visitor_in_struct_nested()
431 g_assert_cmpint(udp->dict1->dict2->userdef->integer, ==, 42); in test_visitor_in_struct_nested()
432 g_assert_cmpstr(udp->dict1->dict2->userdef->string, ==, "string"); in test_visitor_in_struct_nested()
433 g_assert_cmpstr(udp->dict1->dict2->string, ==, "string2"); in test_visitor_in_struct_nested()
434 g_assert(!udp->dict1->dict3); in test_visitor_in_struct_nested()
441 Visitor *v; in test_visitor_in_list() local
444v = visitor_input_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1'… in test_visitor_in_list()
446 visit_type_UserDefOneList(v, NULL, &head, &error_abort); in test_visitor_in_list()
449 for (i = 0, item = head; item; item = item->next, i++) { in test_visitor_in_list()
452 g_assert_cmpstr(item->value->string, ==, string); in test_visitor_in_list()
453 g_assert_cmpint(item->value->integer, ==, 42 + i); in test_visitor_in_list()
460 v = visitor_input_test_init(data, "[]"); in test_visitor_in_list()
461 visit_type_UserDefOneList(v, NULL, &head, &error_abort); in test_visitor_in_list()
474 Visitor *v; in test_visitor_in_list_struct() local
527 v = visitor_input_test_init_raw(data, json->str); in test_visitor_in_list_struct()
528 visit_type_ArrayStruct(v, NULL, &arrs, &error_abort); in test_visitor_in_list_struct()
531 for (int_list = arrs->integer; int_list; int_list = int_list->next) { in test_visitor_in_list_struct()
532 g_assert_cmpint(int_list->value, ==, i); in test_visitor_in_list_struct()
537 for (s8_list = arrs->s8; s8_list; s8_list = s8_list->next) { in test_visitor_in_list_struct()
538 g_assert_cmpint(s8_list->value, ==, i); in test_visitor_in_list_struct()
543 for (s16_list = arrs->s16; s16_list; s16_list = s16_list->next) { in test_visitor_in_list_struct()
544 g_assert_cmpint(s16_list->value, ==, i); in test_visitor_in_list_struct()
549 for (s32_list = arrs->s32; s32_list; s32_list = s32_list->next) { in test_visitor_in_list_struct()
550 g_assert_cmpint(s32_list->value, ==, i); in test_visitor_in_list_struct()
555 for (s64_list = arrs->s64; s64_list; s64_list = s64_list->next) { in test_visitor_in_list_struct()
556 g_assert_cmpint(s64_list->value, ==, i); in test_visitor_in_list_struct()
561 for (u8_list = arrs->u8; u8_list; u8_list = u8_list->next) { in test_visitor_in_list_struct()
562 g_assert_cmpint(u8_list->value, ==, i); in test_visitor_in_list_struct()
567 for (u16_list = arrs->u16; u16_list; u16_list = u16_list->next) { in test_visitor_in_list_struct()
568 g_assert_cmpint(u16_list->value, ==, i); in test_visitor_in_list_struct()
573 for (u32_list = arrs->u32; u32_list; u32_list = u32_list->next) { in test_visitor_in_list_struct()
574 g_assert_cmpint(u32_list->value, ==, i); in test_visitor_in_list_struct()
579 for (u64_list = arrs->u64; u64_list; u64_list = u64_list->next) { in test_visitor_in_list_struct()
580 g_assert_cmpint(u64_list->value, ==, i); in test_visitor_in_list_struct()
585 for (num_list = arrs->number; num_list; num_list = num_list->next) { in test_visitor_in_list_struct()
589 sprintf(actual, "%.6f", num_list->value); in test_visitor_in_list_struct()
595 for (bool_list = arrs->boolean; bool_list; bool_list = bool_list->next) { in test_visitor_in_list_struct()
596 g_assert_cmpint(bool_list->value, ==, i % 3 == 0); in test_visitor_in_list_struct()
601 for (str_list = arrs->string; str_list; str_list = str_list->next) { in test_visitor_in_list_struct()
605 g_assert_cmpstr(str_list->value, ==, expected); in test_visitor_in_list_struct()
614 Visitor *v; in test_visitor_in_any() local
622 v = visitor_input_test_init(data, "-42"); in test_visitor_in_any()
623 visit_type_any(v, NULL, &res, &error_abort); in test_visitor_in_any()
627 g_assert_cmpint(val, ==, -42); in test_visitor_in_any()
630 v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }"); in test_visitor_in_any()
631 visit_type_any(v, NULL, &res, &error_abort); in test_visitor_in_any()
639 g_assert_cmpint(val, ==, -42); in test_visitor_in_any()
656 Visitor *v; in test_visitor_in_null() local
666 * by the fact that we can't re-read the key; and that we detect in test_visitor_in_null()
670 v = visitor_input_test_init_full(data, false, in test_visitor_in_null()
672 visit_start_struct(v, NULL, NULL, 0, &error_abort); in test_visitor_in_null()
673 visit_type_null(v, "a", &null, &error_abort); in test_visitor_in_null()
676 visit_type_null(v, "b", &null, &err); in test_visitor_in_null()
679 visit_type_str(v, "c", &tmp, &err); in test_visitor_in_null()
682 visit_check_struct(v, &error_abort); in test_visitor_in_null()
683 visit_end_struct(v, NULL); in test_visitor_in_null()
689 Visitor *v; in test_visitor_in_union_flat() local
693 v = visitor_input_test_init(data, in test_visitor_in_union_flat()
699 visit_type_UserDefFlatUnion(v, NULL, &tmp, &error_abort); in test_visitor_in_union_flat()
700 g_assert_cmpint(tmp->enum1, ==, ENUM_ONE_VALUE1); in test_visitor_in_union_flat()
701 g_assert_cmpstr(tmp->string, ==, "str"); in test_visitor_in_union_flat()
702 g_assert_cmpint(tmp->integer, ==, 41); in test_visitor_in_union_flat()
703 g_assert_cmpint(tmp->u.value1.boolean, ==, true); in test_visitor_in_union_flat()
706 g_assert(&base->enum1 == &tmp->enum1); in test_visitor_in_union_flat()
712 Visitor *v; in test_visitor_in_union_in_union() local
715 v = visitor_input_test_init(data, in test_visitor_in_union_in_union()
716 "{ 'type': 'value-a', " in test_visitor_in_union_in_union()
717 " 'type-a': 'value-a1', " in test_visitor_in_union_in_union()
721 visit_type_TestUnionInUnion(v, NULL, &tmp, &error_abort); in test_visitor_in_union_in_union()
722 g_assert_cmpint(tmp->type, ==, TEST_UNION_ENUM_VALUE_A); in test_visitor_in_union_in_union()
723 g_assert_cmpint(tmp->u.value_a.type_a, ==, TEST_UNION_ENUM_A_VALUE_A1); in test_visitor_in_union_in_union()
724 g_assert_cmpint(tmp->u.value_a.u.value_a1.integer, ==, 2); in test_visitor_in_union_in_union()
725 g_assert_cmpint(strcmp(tmp->u.value_a.u.value_a1.name, "fish"), ==, 0); in test_visitor_in_union_in_union()
729 v = visitor_input_test_init(data, in test_visitor_in_union_in_union()
730 "{ 'type': 'value-a', " in test_visitor_in_union_in_union()
731 " 'type-a': 'value-a2', " in test_visitor_in_union_in_union()
735 visit_type_TestUnionInUnion(v, NULL, &tmp, &error_abort); in test_visitor_in_union_in_union()
736 g_assert_cmpint(tmp->type, ==, TEST_UNION_ENUM_VALUE_A); in test_visitor_in_union_in_union()
737 g_assert_cmpint(tmp->u.value_a.type_a, ==, TEST_UNION_ENUM_A_VALUE_A2); in test_visitor_in_union_in_union()
738 g_assert_cmpint(tmp->u.value_a.u.value_a2.integer, ==, 1729); in test_visitor_in_union_in_union()
739 g_assert_cmpint(tmp->u.value_a.u.value_a2.size, ==, 87539319); in test_visitor_in_union_in_union()
743 v = visitor_input_test_init(data, in test_visitor_in_union_in_union()
744 "{ 'type': 'value-b', " in test_visitor_in_union_in_union()
748 visit_type_TestUnionInUnion(v, NULL, &tmp, &error_abort); in test_visitor_in_union_in_union()
749 g_assert_cmpint(tmp->type, ==, TEST_UNION_ENUM_VALUE_B); in test_visitor_in_union_in_union()
750 g_assert_cmpint(tmp->u.value_b.integer, ==, 1729); in test_visitor_in_union_in_union()
751 g_assert_cmpint(tmp->u.value_b.onoff, ==, true); in test_visitor_in_union_in_union()
757 Visitor *v; in test_visitor_in_alternate() local
761 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate()
762 visit_type_UserDefAlternate(v, NULL, &tmp, &error_abort); in test_visitor_in_alternate()
763 g_assert_cmpint(tmp->type, ==, QTYPE_QNUM); in test_visitor_in_alternate()
764 g_assert_cmpint(tmp->u.i, ==, 42); in test_visitor_in_alternate()
767 v = visitor_input_test_init(data, "'value1'"); in test_visitor_in_alternate()
768 visit_type_UserDefAlternate(v, NULL, &tmp, &error_abort); in test_visitor_in_alternate()
769 g_assert_cmpint(tmp->type, ==, QTYPE_QSTRING); in test_visitor_in_alternate()
770 g_assert_cmpint(tmp->u.e, ==, ENUM_ONE_VALUE1); in test_visitor_in_alternate()
773 v = visitor_input_test_init(data, "null"); in test_visitor_in_alternate()
774 visit_type_UserDefAlternate(v, NULL, &tmp, &error_abort); in test_visitor_in_alternate()
775 g_assert_cmpint(tmp->type, ==, QTYPE_QNULL); in test_visitor_in_alternate()
778 v = visitor_input_test_init(data, "{'integer':1, 'string':'str', " in test_visitor_in_alternate()
780 visit_type_UserDefAlternate(v, NULL, &tmp, &error_abort); in test_visitor_in_alternate()
781 g_assert_cmpint(tmp->type, ==, QTYPE_QDICT); in test_visitor_in_alternate()
782 g_assert_cmpint(tmp->u.udfu.integer, ==, 1); in test_visitor_in_alternate()
783 g_assert_cmpstr(tmp->u.udfu.string, ==, "str"); in test_visitor_in_alternate()
784 g_assert_cmpint(tmp->u.udfu.enum1, ==, ENUM_ONE_VALUE1); in test_visitor_in_alternate()
785 g_assert_cmpint(tmp->u.udfu.u.value1.boolean, ==, true); in test_visitor_in_alternate()
786 g_assert_cmpint(tmp->u.udfu.u.value1.has_a_b, ==, false); in test_visitor_in_alternate()
789 v = visitor_input_test_init(data, "{ 'alt': 42 }"); in test_visitor_in_alternate()
790 visit_type_WrapAlternate(v, NULL, &wrap, &error_abort); in test_visitor_in_alternate()
791 g_assert_cmpint(wrap->alt->type, ==, QTYPE_QNUM); in test_visitor_in_alternate()
792 g_assert_cmpint(wrap->alt->u.i, ==, 42); in test_visitor_in_alternate()
795 v = visitor_input_test_init(data, "{ 'alt': 'value1' }"); in test_visitor_in_alternate()
796 visit_type_WrapAlternate(v, NULL, &wrap, &error_abort); in test_visitor_in_alternate()
797 g_assert_cmpint(wrap->alt->type, ==, QTYPE_QSTRING); in test_visitor_in_alternate()
798 g_assert_cmpint(wrap->alt->u.e, ==, ENUM_ONE_VALUE1); in test_visitor_in_alternate()
801 v = visitor_input_test_init(data, "{ 'alt': {'integer':1, 'string':'str', " in test_visitor_in_alternate()
803 visit_type_WrapAlternate(v, NULL, &wrap, &error_abort); in test_visitor_in_alternate()
804 g_assert_cmpint(wrap->alt->type, ==, QTYPE_QDICT); in test_visitor_in_alternate()
805 g_assert_cmpint(wrap->alt->u.udfu.integer, ==, 1); in test_visitor_in_alternate()
806 g_assert_cmpstr(wrap->alt->u.udfu.string, ==, "str"); in test_visitor_in_alternate()
807 g_assert_cmpint(wrap->alt->u.udfu.enum1, ==, ENUM_ONE_VALUE1); in test_visitor_in_alternate()
808 g_assert_cmpint(wrap->alt->u.udfu.u.value1.boolean, ==, true); in test_visitor_in_alternate()
809 g_assert_cmpint(wrap->alt->u.udfu.u.value1.has_a_b, ==, false); in test_visitor_in_alternate()
816 Visitor *v; in test_visitor_in_alternate_number() local
826 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate_number()
827 visit_type_AltEnumBool(v, NULL, &aeb, &err); in test_visitor_in_alternate_number()
831 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate_number()
832 visit_type_AltEnumNum(v, NULL, &aen, &error_abort); in test_visitor_in_alternate_number()
833 g_assert_cmpint(aen->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
834 g_assert_cmpfloat(aen->u.n, ==, 42); in test_visitor_in_alternate_number()
837 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate_number()
838 visit_type_AltNumEnum(v, NULL, &ans, &error_abort); in test_visitor_in_alternate_number()
839 g_assert_cmpint(ans->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
840 g_assert_cmpfloat(ans->u.n, ==, 42); in test_visitor_in_alternate_number()
843 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate_number()
844 visit_type_AltEnumInt(v, NULL, &asi, &error_abort); in test_visitor_in_alternate_number()
845 g_assert_cmpint(asi->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
846 g_assert_cmpint(asi->u.i, ==, 42); in test_visitor_in_alternate_number()
849 v = visitor_input_test_init(data, "42"); in test_visitor_in_alternate_number()
850 visit_type_AltListInt(v, NULL, &ali, &error_abort); in test_visitor_in_alternate_number()
851 g_assert_cmpint(ali->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
852 g_assert_cmpint(ali->u.i, ==, 42); in test_visitor_in_alternate_number()
857 v = visitor_input_test_init(data, "42.5"); in test_visitor_in_alternate_number()
858 visit_type_AltEnumBool(v, NULL, &aeb, &err); in test_visitor_in_alternate_number()
862 v = visitor_input_test_init(data, "42.5"); in test_visitor_in_alternate_number()
863 visit_type_AltEnumNum(v, NULL, &aen, &error_abort); in test_visitor_in_alternate_number()
864 g_assert_cmpint(aen->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
865 g_assert_cmpfloat(aen->u.n, ==, 42.5); in test_visitor_in_alternate_number()
868 v = visitor_input_test_init(data, "42.5"); in test_visitor_in_alternate_number()
869 visit_type_AltNumEnum(v, NULL, &ans, &error_abort); in test_visitor_in_alternate_number()
870 g_assert_cmpint(ans->type, ==, QTYPE_QNUM); in test_visitor_in_alternate_number()
871 g_assert_cmpfloat(ans->u.n, ==, 42.5); in test_visitor_in_alternate_number()
874 v = visitor_input_test_init(data, "42.5"); in test_visitor_in_alternate_number()
875 visit_type_AltEnumInt(v, NULL, &asi, &err); in test_visitor_in_alternate_number()
884 Visitor *v; in test_visitor_in_alternate_list() local
888 v = visitor_input_test_init(data, "[ 42, 43, 44 ]"); in test_visitor_in_alternate_list()
889 visit_type_AltListInt(v, NULL, &ali, &error_abort); in test_visitor_in_alternate_list()
892 g_assert_cmpint(ali->type, ==, QTYPE_QLIST); in test_visitor_in_alternate_list()
893 for (i = 0, item = ali->u.l; item; item = item->next, i++) { in test_visitor_in_alternate_list()
894 g_assert_cmpint(item->value, ==, 42 + i); in test_visitor_in_alternate_list()
901 v = visitor_input_test_init(data, "[]"); in test_visitor_in_alternate_list()
902 visit_type_AltListInt(v, NULL, &ali, &error_abort); in test_visitor_in_alternate_list()
905 g_assert_cmpint(ali->type, ==, QTYPE_QLIST); in test_visitor_in_alternate_list()
906 g_assert(!ali->u.l); in test_visitor_in_alternate_list()
925 Visitor *v; in test_visitor_in_errors() local
930 v = visitor_input_test_init(data, "{ 'integer': false, 'boolean': 'foo', " in test_visitor_in_errors()
931 "'string': -42 }"); in test_visitor_in_errors()
933 visit_type_TestStruct(v, NULL, &p, &err); in test_visitor_in_errors()
937 v = visitor_input_test_init(data, "[ '1', '2', false, '3' ]"); in test_visitor_in_errors()
938 visit_type_strList(v, NULL, &q, &err); in test_visitor_in_errors()
942 v = visitor_input_test_init(data, "{ 'str':'hi' }"); in test_visitor_in_errors()
943 visit_type_UserDefTwo(v, NULL, &r, &err); in test_visitor_in_errors()
947 v = visitor_input_test_init(data, "{ }"); in test_visitor_in_errors()
948 visit_type_WrapAlternate(v, NULL, &s, &err); in test_visitor_in_errors()
957 Visitor *v; in test_visitor_in_wrong_type() local
964 v = visitor_input_test_init(data, "[]"); in test_visitor_in_wrong_type()
965 visit_type_TestStruct(v, NULL, &p, &err); in test_visitor_in_wrong_type()
969 v = visitor_input_test_init(data, "{}"); in test_visitor_in_wrong_type()
970 visit_type_strList(v, NULL, &q, &err); in test_visitor_in_wrong_type()
976 v = visitor_input_test_init(data, "1"); in test_visitor_in_wrong_type()
977 visit_type_TestStruct(v, NULL, &p, &err); in test_visitor_in_wrong_type()
981 v = visitor_input_test_init(data, "{}"); in test_visitor_in_wrong_type()
982 visit_type_int(v, NULL, &i, &err); in test_visitor_in_wrong_type()
987 v = visitor_input_test_init(data, "1"); in test_visitor_in_wrong_type()
988 visit_type_strList(v, NULL, &q, &err); in test_visitor_in_wrong_type()
992 v = visitor_input_test_init(data, "[]"); in test_visitor_in_wrong_type()
993 visit_type_int(v, NULL, &i, &err); in test_visitor_in_wrong_type()
1002 Visitor *v; in test_visitor_in_fail_struct() local
1004v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo', 'extra': 42… in test_visitor_in_fail_struct()
1006 visit_type_TestStruct(v, NULL, &p, &err); in test_visitor_in_fail_struct()
1016 Visitor *v; in test_visitor_in_fail_struct_nested() local
1018v = visitor_input_test_init(data, "{ 'string0': 'string0', 'dict1': { 'string1': 'string1', 'dict2… in test_visitor_in_fail_struct_nested()
1020 visit_type_UserDefTwo(v, NULL, &udp, &err); in test_visitor_in_fail_struct_nested()
1030 Visitor *v; in test_visitor_in_fail_struct_in_list() local
1032v = visitor_input_test_init(data, "[ { 'string': 'string0', 'integer': 42 }, { 'string': 'string1'… in test_visitor_in_fail_struct_in_list()
1034 visit_type_UserDefOneList(v, NULL, &head, &err); in test_visitor_in_fail_struct_in_list()
1043 Visitor *v; in test_visitor_in_fail_struct_missing() local
1055 v = visitor_input_test_init(data, "{ 'sub': [ {} ] }"); in test_visitor_in_fail_struct_missing()
1056 visit_start_struct(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_struct_missing()
1057 visit_start_struct(v, "struct", NULL, 0, &err); in test_visitor_in_fail_struct_missing()
1059 visit_start_list(v, "list", NULL, 0, &err); in test_visitor_in_fail_struct_missing()
1061 visit_start_alternate(v, "alternate", &alt, sizeof(*alt), &err); in test_visitor_in_fail_struct_missing()
1063 visit_optional(v, "optional", &present); in test_visitor_in_fail_struct_missing()
1065 visit_type_enum(v, "enum", &en, &EnumOne_lookup, &err); in test_visitor_in_fail_struct_missing()
1067 visit_type_int(v, "i64", &i64, &err); in test_visitor_in_fail_struct_missing()
1069 visit_type_uint32(v, "u32", &u32, &err); in test_visitor_in_fail_struct_missing()
1071 visit_type_int8(v, "i8", &i8, &err); in test_visitor_in_fail_struct_missing()
1073 visit_type_str(v, "i8", &str, &err); in test_visitor_in_fail_struct_missing()
1075 visit_type_number(v, "dbl", &dbl, &err); in test_visitor_in_fail_struct_missing()
1077 visit_type_any(v, "any", &any, &err); in test_visitor_in_fail_struct_missing()
1079 visit_type_null(v, "null", &null, &err); in test_visitor_in_fail_struct_missing()
1081 visit_start_list(v, "sub", NULL, 0, &error_abort); in test_visitor_in_fail_struct_missing()
1082 visit_start_struct(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_struct_missing()
1083 visit_type_int(v, "i64", &i64, &err); in test_visitor_in_fail_struct_missing()
1085 visit_end_struct(v, NULL); in test_visitor_in_fail_struct_missing()
1086 visit_end_list(v, NULL); in test_visitor_in_fail_struct_missing()
1087 visit_end_struct(v, NULL); in test_visitor_in_fail_struct_missing()
1093 int64_t i64 = -1; in test_visitor_in_fail_list()
1095 Visitor *v; in test_visitor_in_fail_list() local
1099 v = visitor_input_test_init(data, "[ 1, 2, 3 ]"); in test_visitor_in_fail_list()
1101 visit_start_list(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_list()
1102 visit_type_int(v, NULL, &i64, &error_abort); in test_visitor_in_fail_list()
1104 visit_type_int(v, NULL, &i64, &error_abort); in test_visitor_in_fail_list()
1106 visit_check_list(v, &err); in test_visitor_in_fail_list()
1108 visit_end_list(v, NULL); in test_visitor_in_fail_list()
1111 v = visitor_input_test_init(data, "[]"); in test_visitor_in_fail_list()
1113 visit_start_list(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_list()
1114 visit_type_int(v, NULL, &i64, &err); in test_visitor_in_fail_list()
1116 visit_end_list(v, NULL); in test_visitor_in_fail_list()
1122 int64_t i64 = -1; in test_visitor_in_fail_list_nested()
1124 Visitor *v; in test_visitor_in_fail_list_nested() local
1128 v = visitor_input_test_init(data, "[ 0, [ 1, 2, 3 ] ]"); in test_visitor_in_fail_list_nested()
1130 visit_start_list(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_list_nested()
1131 visit_type_int(v, NULL, &i64, &error_abort); in test_visitor_in_fail_list_nested()
1133 visit_start_list(v, NULL, NULL, 0, &error_abort); in test_visitor_in_fail_list_nested()
1134 visit_type_int(v, NULL, &i64, &error_abort); in test_visitor_in_fail_list_nested()
1136 visit_check_list(v, &err); in test_visitor_in_fail_list_nested()
1138 visit_end_list(v, NULL); in test_visitor_in_fail_list_nested()
1139 visit_check_list(v, &error_abort); in test_visitor_in_fail_list_nested()
1140 visit_end_list(v, NULL); in test_visitor_in_fail_list_nested()
1148 Visitor *v; in test_visitor_in_fail_union_flat() local
1150v = visitor_input_test_init(data, "{ 'enum1': 'value2', 'string': 'c', 'integer': 41, 'boolean': t… in test_visitor_in_fail_union_flat()
1152 visit_type_UserDefFlatUnion(v, NULL, &tmp, &err); in test_visitor_in_fail_union_flat()
1162 Visitor *v; in test_visitor_in_fail_union_flat_no_discrim() local
1165v = visitor_input_test_init(data, "{ 'integer': 42, 'string': 'c', 'string1': 'd', 'string2': 'e' … in test_visitor_in_fail_union_flat_no_discrim()
1167 visit_type_UserDefFlatUnion2(v, NULL, &tmp, &err); in test_visitor_in_fail_union_flat_no_discrim()
1176 Visitor *v; in test_visitor_in_fail_alternate() local
1179 v = visitor_input_test_init(data, "3.14"); in test_visitor_in_fail_alternate()
1181 visit_type_UserDefAlternate(v, NULL, &tmp, &err); in test_visitor_in_fail_alternate()
1191 Visitor *v; in do_test_visitor_in_qmp_introspect() local
1193 v = qobject_input_visitor_new(obj); in do_test_visitor_in_qmp_introspect()
1195 visit_type_SchemaInfoList(v, NULL, &schema, &error_abort); in do_test_visitor_in_qmp_introspect()
1199 visit_free(v); in do_test_visitor_in_qmp_introspect()
1252 input_visitor_test_add("/visitor/input/struct-nested", in main()
1262 input_visitor_test_add("/visitor/input/union-flat", in main()
1264 input_visitor_test_add("/visitor/input/union-in-union", in main()
1270 input_visitor_test_add("/visitor/input/wrong-type", in main()
1272 input_visitor_test_add("/visitor/input/alternate-number", in main()
1274 input_visitor_test_add("/visitor/input/alternate-list", in main()
1278 input_visitor_test_add("/visitor/input/fail/struct-nested", in main()
1280 input_visitor_test_add("/visitor/input/fail/struct-in-list", in main()
1282 input_visitor_test_add("/visitor/input/fail/struct-missing", in main()
1286 input_visitor_test_add("/visitor/input/fail/list-nested", in main()
1288 input_visitor_test_add("/visitor/input/fail/union-flat", in main()
1290 input_visitor_test_add("/visitor/input/fail/union-flat-no-discriminator", in main()
1294 input_visitor_test_add("/visitor/input/qapi-introspect", in main()