aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2022-05-13 16:49:05 +0100
committerThomas Huth <thuth@redhat.com>2022-05-18 08:54:22 +0200
commit83f79d4efc8dac7e511bc4375d0f9d90ff9db731 (patch)
tree1cbb76990d8570a48df6d14e106432f78dc7262c /tests
parentf3f0cbaf97c78b1fc1f3855f576e46ea6ad4f34c (diff)
downloadqemu-83f79d4efc8dac7e511bc4375d0f9d90ff9db731.zip
qemu-83f79d4efc8dac7e511bc4375d0f9d90ff9db731.tar.gz
qemu-83f79d4efc8dac7e511bc4375d0f9d90ff9db731.tar.bz2
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>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtest/libqtest.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 228357f..4a4697c 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -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)