Lines Matching +full:asi +full:- +full:format

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()
96 * literal/format json_string argument and so can be used for
98 * generated strings via %s format parameters since qobject_from_jsonv()
99 * will wrap those in double-quotes and treat the entire object as a
114 int value = -42; in test_visitor_in_int()
123 g_assert_cmpfloat(dbl, ==, -42.0); in test_visitor_in_int()
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()
150 g_assert_cmpuint(res, ==, (uint64_t)-value); in test_visitor_in_uint()
182 int64_t res = 0, value = -42; in test_visitor_in_int_keyval()
194 int64_t res = 0, value = -42; in test_visitor_in_int_str_keyval()
197 v = visitor_input_test_init_full(data, true, "\"-42\""); in test_visitor_in_int_str_keyval()
210 v = visitor_input_test_init(data, "\"-42\""); in test_visitor_in_int_str_fail()
287 v = visitor_input_test_init(data, "-18446744073709551616"); /* -2^64 */ in test_visitor_in_large_number()
290 g_assert_cmpfloat(res, ==, -18446744073709552e3); in test_visitor_in_large_number()
389 EnumOne res = -1; in test_visitor_in_enum()
405 v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo' }"); 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()
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()
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()
527 v = visitor_input_test_init_raw(data, json->str); 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()
622 v = visitor_input_test_init(data, "-42"); 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()
639 g_assert_cmpint(val, ==, -42); in test_visitor_in_any()
666 * by the fact that we can't re-read the key; and that we detect in test_visitor_in_null()
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()
716 "{ 'type': 'value-a', " in test_visitor_in_union_in_union()
717 " 'type-a': 'value-a1', " 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()
730 "{ 'type': 'value-a', " in test_visitor_in_union_in_union()
731 " 'type-a': 'value-a2', " 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()
744 "{ 'type': 'value-b', " 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()
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()
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()
775 g_assert_cmpint(tmp->type, ==, QTYPE_QNULL); 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()
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()
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()
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()
821 AltEnumInt *asi; in test_visitor_in_alternate_number() local
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()
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()
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()
847 qapi_free_AltEnumInt(asi); 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()
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()
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()
875 visit_type_AltEnumInt(v, NULL, &asi, &err); in test_visitor_in_alternate_number()
877 qapi_free_AltEnumInt(asi); in test_visitor_in_alternate_number()
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()
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()
931 "'string': -42 }"); in test_visitor_in_errors()
1004 …v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true, 'string': 'foo', 'extra': 42… in test_visitor_in_fail_struct()
1093 int64_t i64 = -1; in test_visitor_in_fail_list()
1122 int64_t i64 = -1; in test_visitor_in_fail_list_nested()
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()