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)
This commit is contained in:
Thomas Haller 2020-11-02 12:58:29 +01:00
parent c6666589a8
commit d34e6193da
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

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