On Sun, Mar 15, 2020 at 3:48 PM Markus Armbruster <arm...@redhat.com> wrote: > > Locally defined helper qdict_cmp_simple() implements just enough of a > comparison to serve here. Replace it by qobject_is_equal(), which > implements all of it. > > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > tests/test-qmp-event.c | 66 +----------------------------------------- > 1 file changed, 1 insertion(+), 65 deletions(-) > > diff --git a/tests/test-qmp-event.c b/tests/test-qmp-event.c > index 430001e622..d64066139c 100644 > --- a/tests/test-qmp-event.c > +++ b/tests/test-qmp-event.c > @@ -28,73 +28,9 @@ typedef struct TestEventData { > QDict *expect; > } TestEventData; > > -typedef struct QDictCmpData { > - QDict *expect; > - bool result; > -} QDictCmpData; > - > TestEventData *test_event_data; > static GMutex test_event_lock; > > -/* Only compares bool, int, string */ > -static > -void qdict_cmp_do_simple(const char *key, QObject *obj1, void *opaque) > - > -{ > - QObject *obj2; > - QDictCmpData d_new, *d = opaque; > - int64_t val1, val2; > - > - if (!d->result) { > - return; > - } > - > - obj2 = qdict_get(d->expect, key); > - if (!obj2) { > - d->result = false; > - return; > - } > - > - if (qobject_type(obj1) != qobject_type(obj2)) { > - d->result = false; > - return; > - } > - > - switch (qobject_type(obj1)) { > - case QTYPE_QBOOL: > - d->result = (qbool_get_bool(qobject_to(QBool, obj1)) == > - qbool_get_bool(qobject_to(QBool, obj2))); > - return; > - case QTYPE_QNUM: > - g_assert(qnum_get_try_int(qobject_to(QNum, obj1), &val1)); > - g_assert(qnum_get_try_int(qobject_to(QNum, obj2), &val2)); > - d->result = val1 == val2; > - return; > - case QTYPE_QSTRING: > - d->result = g_strcmp0(qstring_get_str(qobject_to(QString, obj1)), > - qstring_get_str(qobject_to(QString, obj2))) == > 0; > - return; > - case QTYPE_QDICT: > - d_new.expect = qobject_to(QDict, obj2); > - d_new.result = true; > - qdict_iter(qobject_to(QDict, obj1), qdict_cmp_do_simple, &d_new); > - d->result = d_new.result; > - return; > - default: > - abort(); > - } > -} > - > -static bool qdict_cmp_simple(QDict *a, QDict *b) > -{ > - QDictCmpData d; > - > - d.expect = b; > - d.result = true; > - qdict_iter(a, qdict_cmp_do_simple, &d); > - return d.result; > -} > - > void test_qapi_event_emit(test_QAPIEvent event, QDict *d) > { > QDict *t; > @@ -115,7 +51,7 @@ void test_qapi_event_emit(test_QAPIEvent event, QDict *d) > > qdict_del(d, "timestamp"); > > - g_assert(qdict_cmp_simple(d, test_event_data->expect)); > + g_assert(qobject_is_equal(QOBJECT(d), QOBJECT(test_event_data->expect))); > > } > > -- > 2.21.1 > > -- Marc-André Lureau