diff options
author | Thomas Haller <thaller@redhat.com> | 2020-11-02 12:58:29 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-11-03 14:31:20 +0100 |
commit | 1b8ccacc5da943f6c460d06f42cceb00f390b2b0 (patch) | |
tree | 61c4d0f3657465268179066711e6ffe0a77dbd3a | |
parent | 230250e62900be4ba71f90c391e25638f476125e (diff) | |
download | NetworkManager-1b8ccacc5da943f6c460d06f42cceb00f390b2b0.tar.gz |
tests: avoid race condition in nmtstc_service_cleanup()
It seems it can happen that the service is not yet unregistered from the
D-Bus broker, even if we already reaped the PID.
/builds/NetworkManager/NetworkManager/tools/run-nm-test.sh --called-from-make /builds/NetworkManager/NetworkManager/build --launch-dbus=auto /builds/NetworkManager/NetworkManager/build/libnm/tests/test-nm-client
--- stdout ---
/libnm/device-added:
nmtst: initialize nmtst_get_rand() with NMTST_SEED_RAND=0
--- stderr ---
**
test:ERROR:../shared/nm-test-utils-impl.c:216:nmtstc_service_cleanup: assertion failed: (!name_exists(info->bus, "org.freedesktop.NetworkManager"))
Workaround by waiting a bit.
We now iterate the main GMainContext, unlike before. But that
should not cause any problems for the test.
-rw-r--r-- | shared/nm-test-utils-impl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/shared/nm-test-utils-impl.c b/shared/nm-test-utils-impl.c index 0e0d97a494..5ea4968a85 100644 --- a/shared/nm-test-utils-impl.c +++ b/shared/nm-test-utils-impl.c @@ -213,7 +213,11 @@ again_wait: g_assert(ret == info->pid); } - g_assert(!name_exists(info->bus, "org.freedesktop.NetworkManager")); + nmtst_main_context_iterate_until_assert_full( + NULL, + 1000, + 80, + (!name_exists(info->bus, "org.freedesktop.NetworkManager"))); g_clear_object(&info->bus); |