diff --git a/apps/sel4test-tests/src/tests/scheduler.c b/apps/sel4test-tests/src/tests/scheduler.c index 8aedf18d..b1c24045 100644 --- a/apps/sel4test-tests/src/tests/scheduler.c +++ b/apps/sel4test-tests/src/tests/scheduler.c @@ -59,6 +59,11 @@ static int test_thread_suspend(env_t env) old_counter = counter; /* Let it run again. */ + /* We wait for two timer interrupts to force a block in case 10ms passes instantly + * in cases where we are running on a simulator that simulates larger clock rates + * via compressing the clock stream. + */ + sel4test_ntfn_timer_wait(env); sel4test_ntfn_timer_wait(env); /* Now, counter should have moved. */ @@ -68,6 +73,7 @@ static int test_thread_suspend(env_t env) /* Suspend the thread, and wait again. */ seL4_TCB_Suspend(get_helper_tcb(&t1)); sel4test_ntfn_timer_wait(env); + sel4test_ntfn_timer_wait(env); /* Counter should not have moved. */ test_check(counter == old_counter); @@ -75,6 +81,7 @@ static int test_thread_suspend(env_t env) /* Check once more for good measure. */ sel4test_ntfn_timer_wait(env); + sel4test_ntfn_timer_wait(env); /* Counter should not have moved. */ test_check(counter == old_counter); @@ -91,8 +98,7 @@ static int test_thread_suspend(env_t env) return sel4test_get_result(); } DEFINE_TEST(SCHED0000, "Test suspending and resuming a thread (flaky)", test_thread_suspend, - config_set(CONFIG_HAVE_TIMER) - && !config_set(CONFIG_ARCH_RISCV)) + config_set(CONFIG_HAVE_TIMER)) /* * Test TCB Resume on self.