aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2017-08-24 10:46:10 +0200
committerMarkus Armbruster <armbru@redhat.com>2017-09-04 13:09:13 +0200
commitf7abe0ecd4973dfe36944b916c5b9cf8ec199b8a (patch)
tree99ca676afbfcf2da0182b3bf99811d000cb69c58 /tests
parent788b305c91398f18e5952667b929d7f45e2c211c (diff)
qapi: Change data type of the FOO_lookup generated for enum FOO
Currently, a FOO_lookup is an array of strings terminated by a NULL sentinel. A future patch will generate enums with "holes". NULL-termination will cease to work then. To prepare for that, store the length in the FOO_lookup by wrapping it in a struct and adding a member for the length. The sentinel will be dropped next. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20170822132255.23945-13-marcandre.lureau@redhat.com> [Basically redone] Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1503564371-26090-16-git-send-email-armbru@redhat.com> [Rebased]
Diffstat (limited to 'tests')
-rw-r--r--tests/check-qom-proplist.c15
-rw-r--r--tests/qmp-test.c2
-rw-r--r--tests/test-qapi-util.c10
-rw-r--r--tests/test-qobject-input-visitor.c2
4 files changed, 16 insertions, 13 deletions
diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c
index c51e6e734d..07e351f950 100644
--- a/tests/check-qom-proplist.c
+++ b/tests/check-qom-proplist.c
@@ -46,11 +46,14 @@ enum DummyAnimal {
DUMMY_LAST,
};
-static const char *const dummy_animal_map[DUMMY_LAST + 1] = {
- [DUMMY_FROG] = "frog",
- [DUMMY_ALLIGATOR] = "alligator",
- [DUMMY_PLATYPUS] = "platypus",
- [DUMMY_LAST] = NULL,
+const QEnumLookup dummy_animal_map = {
+ .array = (const char *const[]) {
+ [DUMMY_FROG] = "frog",
+ [DUMMY_ALLIGATOR] = "alligator",
+ [DUMMY_PLATYPUS] = "platypus",
+ [DUMMY_LAST] = NULL,
+ },
+ .size = DUMMY_LAST
};
struct DummyObject {
@@ -142,7 +145,7 @@ static void dummy_class_init(ObjectClass *cls, void *data)
NULL);
object_class_property_add_enum(cls, "av",
"DummyAnimal",
- dummy_animal_map,
+ &dummy_animal_map,
dummy_get_av,
dummy_set_av,
NULL);
diff --git a/tests/qmp-test.c b/tests/qmp-test.c
index b5f21dfa57..c5a5c10b41 100644
--- a/tests/qmp-test.c
+++ b/tests/qmp-test.c
@@ -181,7 +181,7 @@ static void test_query(const void *data)
g_assert(qdict_haskey(resp, "return"));
} else {
g_assert(error);
- g_assert_cmpint(qapi_enum_parse(QapiErrorClass_lookup, error_class,
+ g_assert_cmpint(qapi_enum_parse(&QapiErrorClass_lookup, error_class,
-1, &error_abort),
==, expected_error_class);
}
diff --git a/tests/test-qapi-util.c b/tests/test-qapi-util.c
index 0992bdb218..4b5e4f8bd3 100644
--- a/tests/test-qapi-util.c
+++ b/tests/test-qapi-util.c
@@ -19,19 +19,19 @@ static void test_qapi_enum_parse(void)
Error *err = NULL;
int ret;
- ret = qapi_enum_parse(QType_lookup, NULL, QTYPE_NONE, &error_abort);
+ ret = qapi_enum_parse(&QType_lookup, NULL, QTYPE_NONE, &error_abort);
g_assert_cmpint(ret, ==, QTYPE_NONE);
- ret = qapi_enum_parse(QType_lookup, "junk", -1, NULL);
+ ret = qapi_enum_parse(&QType_lookup, "junk", -1, NULL);
g_assert_cmpint(ret, ==, -1);
- ret = qapi_enum_parse(QType_lookup, "junk", -1, &err);
+ ret = qapi_enum_parse(&QType_lookup, "junk", -1, &err);
error_free_or_abort(&err);
- ret = qapi_enum_parse(QType_lookup, "none", -1, &error_abort);
+ ret = qapi_enum_parse(&QType_lookup, "none", -1, &error_abort);
g_assert_cmpint(ret, ==, QTYPE_NONE);
- ret = qapi_enum_parse(QType_lookup, QType_str(QTYPE__MAX - 1),
+ ret = qapi_enum_parse(&QType_lookup, QType_str(QTYPE__MAX - 1),
QTYPE__MAX - 1, &error_abort);
g_assert_cmpint(ret, ==, QTYPE__MAX - 1);
}
diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-visitor.c
index f8720aa5eb..fe591814e4 100644
--- a/tests/test-qobject-input-visitor.c
+++ b/tests/test-qobject-input-visitor.c
@@ -1110,7 +1110,7 @@ static void test_visitor_in_fail_struct_missing(TestInputVisitorData *data,
error_free_or_abort(&err);
visit_optional(v, "optional", &present);
g_assert(!present);
- visit_type_enum(v, "enum", &en, EnumOne_lookup, &err);
+ visit_type_enum(v, "enum", &en, &EnumOne_lookup, &err);
error_free_or_abort(&err);
visit_type_int(v, "i64", &i64, &err);
error_free_or_abort(&err);