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.

(cherry picked from commit 1b8ccacc5d)
(cherry picked from commit d10d14d7ba)
(cherry picked from commit d34e6193da)
(cherry picked from commit b430298133)
(cherry picked from commit 2009025c46)
This commit is contained in:
Thomas Haller 2020-11-02 12:58:29 +01:00
parent 96b63d3fee
commit 0958a291b0
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -219,7 +219,10 @@ 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);