diff options
author | Milan Crha <mcrha@redhat.com> | 2019-05-23 20:56:00 +0200 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2019-05-23 20:56:00 +0200 |
commit | 1be2a36737b869457b67bd55a9f762ebdf4475fa (patch) | |
tree | ecb863234ee6fe093fbe355dbd1bf05c866087ba | |
parent | 760002735da1a0d1c1851d0b56c3031130739480 (diff) | |
download | evolution-data-server-1be2a36737b869457b67bd55a9f762ebdf4475fa.tar.gz |
Add workaround for D-Bus property change into get-revision tests
Even with the previous commit there still could happen some issue
with D-Bus property change notifications, thus add a workaround to
the related book and calendar tests, because it's not a problem
on the evolution-data-server side, but somewhere deeper.
-rw-r--r-- | tests/libebook/client/test-book-client-get-revision.c | 13 | ||||
-rw-r--r-- | tests/libecal/test-cal-client-get-revision.c | 13 |
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/libebook/client/test-book-client-get-revision.c b/tests/libebook/client/test-book-client-get-revision.c index cd7c41395..83a5bcf2a 100644 --- a/tests/libebook/client/test-book-client-get-revision.c +++ b/tests/libebook/client/test-book-client-get-revision.c @@ -48,6 +48,19 @@ get_revision_compare_cycle (EBookClient *client) if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) g_error ("Error getting book revision: %s", error->message); + /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time, + thus give it some time to be received and processed. */ + if (g_strcmp0 (revision_before, revision_after) == 0) { + g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit"); + + g_usleep (G_USEC_PER_SEC / 2); + + g_clear_pointer (&revision_after, g_free); + + if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) + g_error ("Error getting book revision: %s", error->message); + } + g_assert (revision_before); g_assert (revision_after); g_assert_cmpstr (revision_before, !=, revision_after); diff --git a/tests/libecal/test-cal-client-get-revision.c b/tests/libecal/test-cal-client-get-revision.c index 3327bc74f..bc3760e81 100644 --- a/tests/libecal/test-cal-client-get-revision.c +++ b/tests/libecal/test-cal-client-get-revision.c @@ -60,6 +60,19 @@ get_revision_compare_cycle (ECalClient *client) &revision_after, NULL, &error)) g_error ("Error getting calendar revision: %s", error->message); + /* Sometimes, kind of rarely, the D-Bus property change is not delivered on time, + thus give it some time to be received and processed. */ + if (g_strcmp0 (revision_before, revision_after) == 0) { + g_message (" D-Bus property 'revision' change not received yet, trying to wait a bit"); + + g_usleep (G_USEC_PER_SEC / 2); + + g_clear_pointer (&revision_after, g_free); + + if (!e_client_get_backend_property_sync (E_CLIENT (client), CLIENT_BACKEND_PROPERTY_REVISION, &revision_after, NULL, &error)) + g_error ("Error getting calendar revision: %s", error->message); + } + g_assert (revision_before); g_assert (revision_after); g_assert_cmpstr (revision_before, !=, revision_after); |