tests/qtest: fix registration of ABRT handler for QEMU cleanup

qtest_init registers a hook to cleanup the running QEMU process
should g_assert() fire before qtest_quit is called. When the first
hook is registered, it is supposed to triggere registration of the
SIGABRT handler. Unfortunately the logic in hook_list_is_empty is
inverted, so the SIGABRT handler never gets registered, unless
2 or more QEMU processes are run concurrently. This caused qtest
to leak QEMU processes anytime g_assert triggers.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220513154906.206715-2-berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2022-05-13 16:49:05 +01:00 committed by Thomas Huth
parent f3f0cbaf97
commit 83f79d4efc

View file

@ -197,11 +197,11 @@ static bool hook_list_is_empty(GHookList *hook_list)
GHook *hook = g_hook_first_valid(hook_list, TRUE);
if (!hook) {
return false;
return true;
}
g_hook_unref(hook_list, hook);
return true;
return false;
}
void qtest_add_abrt_handler(GHookFunc fn, const void *data)