]> git.proxmox.com Git - mirror_qemu.git/commitdiff
tests: avoid coroutine pool test crash
authorStefan Hajnoczi <stefanha@redhat.com>
Fri, 20 May 2016 18:00:31 +0000 (11:00 -0700)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 7 Jun 2016 13:40:50 +0000 (14:40 +0100)
Skip the test_co_queue test case if the coroutine pool is not enabled.
The test case does not work without the pool because it touches memory
belonging to a freed coroutine (on purpose).

Reported-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1463767231-13379-1-git-send-email-stefanha@redhat.com

tests/test-coroutine.c

index dd4ced946c2f9f4bd5d1c11b7402a6b6ee5bc632..ea7f87f487b54b9c3fc411b5ba5df183c0ab93f0 100644 (file)
@@ -369,7 +369,15 @@ static void perf_cost(void)
 int main(int argc, char **argv)
 {
     g_test_init(&argc, &argv, NULL);
-    g_test_add_func("/basic/co_queue", test_co_queue);
+
+    /* This test assumes there is a freelist and marks freed coroutine memory
+     * with a sentinel value.  If there is no freelist this would legitimately
+     * crash, so skip it.
+     */
+    if (CONFIG_COROUTINE_POOL) {
+        g_test_add_func("/basic/co_queue", test_co_queue);
+    }
+
     g_test_add_func("/basic/lifecycle", test_lifecycle);
     g_test_add_func("/basic/yield", test_yield);
     g_test_add_func("/basic/nesting", test_nesting);