diff --git a/tests/kernel/interrupt/src/nested_irq.c b/tests/kernel/interrupt/src/nested_irq.c index 3ef6e997ac8..c8aa5bf1306 100644 --- a/tests/kernel/interrupt/src/nested_irq.c +++ b/tests/kernel/interrupt/src/nested_irq.c @@ -74,7 +74,19 @@ void isr0(void *param) { ARG_UNUSED(param); printk("%s running !!\n", __func__); +#if defined(CONFIG_BOARD_QEMU_CORTEX_M0) + /* QEMU Cortex-M0 timer emulation appears to not capturing the + * current time accurately, resulting in erroneous busy wait + * implementation. + * + * Work-around: + * Increase busy-loop duration to ensure the timer interrupt will fire + * during the busy loop waiting. + */ + k_busy_wait(MS_TO_US(1000)); +#else k_busy_wait(MS_TO_US(10)); +#endif printk("%s execution completed !!\n", __func__); zassert_equal(new_val, old_val, "Nested interrupt is not working\n"); } diff --git a/tests/kernel/tickless/tickless_concept/testcase.yaml b/tests/kernel/tickless/tickless_concept/testcase.yaml index bb9f43ccc9f..9ca709d032d 100644 --- a/tests/kernel/tickless/tickless_concept/testcase.yaml +++ b/tests/kernel/tickless/tickless_concept/testcase.yaml @@ -3,5 +3,7 @@ tests: arch_exclude: riscv32 nios2 # FIXME: This test fails sporadically on all QEMU platforms, but fails # consistently when coverage is enabled. Disable until 14173 is fixed. - platform_exclude: qemu_x86_coverage + # This test fails on qemu_cortex_m0 consistently. Disable until the + # root cause is identified. + platform_exclude: qemu_x86_coverage qemu_cortex_m0 tags: kernel diff --git a/tests/kernel/timer/timer_api/testcase.yaml b/tests/kernel/timer/timer_api/testcase.yaml index 27edf175cd0..2e728fa22fd 100644 --- a/tests/kernel/timer/timer_api/testcase.yaml +++ b/tests/kernel/timer/timer_api/testcase.yaml @@ -1,7 +1,7 @@ tests: kernel.timer: tags: kernel userspace - platform_exclude: qemu_x86_coverage + platform_exclude: qemu_x86_coverage qemu_cortex_m0 kernel.timer.tickless: build_only: true extra_args: CONF_FILE="prj_tickless.conf"