Loading tests/test-coroutine.c +42 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,47 @@ static void test_self(void) qemu_coroutine_enter(coroutine); } /* * Check that qemu_coroutine_entered() works */ static void coroutine_fn verify_entered_step_2(void *opaque) { Coroutine *caller = (Coroutine *)opaque; g_assert(qemu_coroutine_entered(caller)); g_assert(qemu_coroutine_entered(qemu_coroutine_self())); qemu_coroutine_yield(); /* Once more to check it still works after yielding */ g_assert(qemu_coroutine_entered(caller)); g_assert(qemu_coroutine_entered(qemu_coroutine_self())); qemu_coroutine_yield(); } static void coroutine_fn verify_entered_step_1(void *opaque) { Coroutine *self = qemu_coroutine_self(); Coroutine *coroutine; g_assert(qemu_coroutine_entered(self)); coroutine = qemu_coroutine_create(verify_entered_step_2, self); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); } static void test_entered(void) { Coroutine *coroutine; coroutine = qemu_coroutine_create(verify_entered_step_1, NULL); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); } /* * Check that coroutines may nest multiple levels */ Loading Loading @@ -389,6 +430,7 @@ int main(int argc, char **argv) g_test_add_func("/basic/yield", test_yield); g_test_add_func("/basic/nesting", test_nesting); g_test_add_func("/basic/self", test_self); g_test_add_func("/basic/entered", test_entered); g_test_add_func("/basic/in_coroutine", test_in_coroutine); g_test_add_func("/basic/order", test_order); if (g_test_perf()) { Loading Loading
tests/test-coroutine.c +42 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,47 @@ static void test_self(void) qemu_coroutine_enter(coroutine); } /* * Check that qemu_coroutine_entered() works */ static void coroutine_fn verify_entered_step_2(void *opaque) { Coroutine *caller = (Coroutine *)opaque; g_assert(qemu_coroutine_entered(caller)); g_assert(qemu_coroutine_entered(qemu_coroutine_self())); qemu_coroutine_yield(); /* Once more to check it still works after yielding */ g_assert(qemu_coroutine_entered(caller)); g_assert(qemu_coroutine_entered(qemu_coroutine_self())); qemu_coroutine_yield(); } static void coroutine_fn verify_entered_step_1(void *opaque) { Coroutine *self = qemu_coroutine_self(); Coroutine *coroutine; g_assert(qemu_coroutine_entered(self)); coroutine = qemu_coroutine_create(verify_entered_step_2, self); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); } static void test_entered(void) { Coroutine *coroutine; coroutine = qemu_coroutine_create(verify_entered_step_1, NULL); g_assert(!qemu_coroutine_entered(coroutine)); qemu_coroutine_enter(coroutine); } /* * Check that coroutines may nest multiple levels */ Loading Loading @@ -389,6 +430,7 @@ int main(int argc, char **argv) g_test_add_func("/basic/yield", test_yield); g_test_add_func("/basic/nesting", test_nesting); g_test_add_func("/basic/self", test_self); g_test_add_func("/basic/entered", test_entered); g_test_add_func("/basic/in_coroutine", test_in_coroutine); g_test_add_func("/basic/order", test_order); if (g_test_perf()) { Loading