diff options
author | Markus Armbruster <armbru@redhat.com> | 2023-11-22 08:24:55 +0100 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2023-12-20 10:29:23 +0100 |
commit | 5712b7e4fbe661338d4581b574eb3b9da9f44915 (patch) | |
tree | 5653ffa50cebdf95de013c8eaf6524f74cb6d151 /tests/unit | |
parent | c363764a6048f64d11c6cabf180154cf6f13ac3a (diff) |
tests/unit/test-qmp-event: Simplify event emission check
The generated qapi_event_send_FOO() call an event emitter function.
It's test_qapi_event_emit() in this test. It compares the actual
event to the expected event, and sets a flag to record it was called.
The test functions set expected data and clear the flag before calling
qapi_event_send_FOO(), and check the flag afterwards.
Make test_qapi_event_emit() consume expected data, and the test
functions check it was consumed. Delete the flag. This is simpler.
It also catches extraneous calls of test_qapi_event_emit(). Catching
that is not worthwhile, but since the cost is negative...
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20231122072456.2518816-3-armbru@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/test-qmp-event.c | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/tests/unit/test-qmp-event.c b/tests/unit/test-qmp-event.c index c2c44687d5..5c9837e849 100644 --- a/tests/unit/test-qmp-event.c +++ b/tests/unit/test-qmp-event.c @@ -26,7 +26,6 @@ typedef struct TestEventData { QDict *expect; - bool emitted; } TestEventData; TestEventData *test_event_data; @@ -36,6 +35,8 @@ void test_qapi_event_emit(test_QAPIEvent event, QDict *d) QDict *t; int64_t s, ms; + g_assert(test_event_data->expect); + /* Verify that we have timestamp, then remove it to compare other fields */ t = qdict_get_qdict(d, "timestamp"); g_assert(t); @@ -52,7 +53,8 @@ void test_qapi_event_emit(test_QAPIEvent event, QDict *d) qdict_del(d, "timestamp"); g_assert(qobject_is_equal(QOBJECT(d), QOBJECT(test_event_data->expect))); - test_event_data->emitted = true; + qobject_unref(test_event_data->expect); + test_event_data->expect = NULL; } static void event_prepare(TestEventData *data, @@ -83,8 +85,7 @@ static void test_event_a(TestEventData *data, { data->expect = qdict_from_jsonf_nofail("{ 'event': 'EVENT_A' }"); qapi_event_send_event_a(); - g_assert(data->emitted); - qobject_unref(data->expect); + g_assert(!data->expect); } static void test_event_b(TestEventData *data, @@ -92,8 +93,7 @@ static void test_event_b(TestEventData *data, { data->expect = qdict_from_jsonf_nofail("{ 'event': 'EVENT_B' }"); qapi_event_send_event_b(); - g_assert(data->emitted); - qobject_unref(data->expect); + g_assert(!data->expect); } static void test_event_c(TestEventData *data, @@ -105,8 +105,7 @@ static void test_event_c(TestEventData *data, "{ 'event': 'EVENT_C', 'data': {" " 'a': 1, 'b': { 'integer': 2, 'string': 'test1' }, 'c': 'test2' } }"); qapi_event_send_event_c(true, 1, &b, "test2"); - g_assert(data->emitted); - qobject_unref(data->expect); + g_assert(!data->expect); } /* Complex type */ @@ -131,8 +130,7 @@ static void test_event_d(TestEventData *data, " 'string': 'test2', 'enum2': 'value2' }," " 'b': 'test3', 'enum3': 'value3' } }"); qapi_event_send_event_d(&a, "test3", NULL, true, ENUM_ONE_VALUE3); - g_assert(data->emitted); - qobject_unref(data->expect); + g_assert(!data->expect); } static void test_event_deprecated(TestEventData *data, const void *unused) @@ -142,15 +140,11 @@ static void test_event_deprecated(TestEventData *data, const void *unused) memset(&compat_policy, 0, sizeof(compat_policy)); qapi_event_send_test_event_features1(); - g_assert(data->emitted); + g_assert(!data->expect); compat_policy.has_deprecated_output = true; compat_policy.deprecated_output = COMPAT_POLICY_OUTPUT_HIDE; - data->emitted = false; qapi_event_send_test_event_features1(); - g_assert(!data->emitted); - - qobject_unref(data->expect); } static void test_event_deprecated_data(TestEventData *data, const void *unused) @@ -160,17 +154,13 @@ static void test_event_deprecated_data(TestEventData *data, const void *unused) data->expect = qdict_from_jsonf_nofail("{ 'event': 'TEST_EVENT_FEATURES0'," " 'data': { 'foo': 42 } }"); qapi_event_send_test_event_features0(42); - g_assert(data->emitted); + g_assert(!data->expect); - qobject_unref(data->expect); compat_policy.has_deprecated_output = true; compat_policy.deprecated_output = COMPAT_POLICY_OUTPUT_HIDE; data->expect = qdict_from_jsonf_nofail("{ 'event': 'TEST_EVENT_FEATURES0' }"); qapi_event_send_test_event_features0(42); - g_assert(data->emitted); - - qobject_unref(data->expect); } int main(int argc, char **argv) |