diff options
| author | supperthomas <[email protected]> | 2021-08-19 21:19:28 +0800 |
|---|---|---|
| committer | supperthomas <[email protected]> | 2021-08-19 21:47:19 +0800 |
| commit | b4a46f8bbe548c18ce28aa721cc3819ba1980bb5 (patch) | |
| tree | 7bf66d45e2bd44c2622d93f6fece187f90e64752 /examples/utest | |
| parent | 39353f5c1425ac4aec571056636dc78175ba83fa (diff) | |
add the interrupt disable
Diffstat (limited to 'examples/utest')
| -rw-r--r-- | examples/utest/testcases/kernel/Kconfig | 2 | ||||
| -rw-r--r-- | examples/utest/testcases/kernel/SConscript | 1 | ||||
| -rw-r--r-- | examples/utest/testcases/kernel/irq_tc.c | 30 |
3 files changed, 28 insertions, 5 deletions
diff --git a/examples/utest/testcases/kernel/Kconfig b/examples/utest/testcases/kernel/Kconfig index fd16b95c68..e8dd3c2e97 100644 --- a/examples/utest/testcases/kernel/Kconfig +++ b/examples/utest/testcases/kernel/Kconfig @@ -14,11 +14,9 @@ config UTEST_SEMAPHORE_TC default n depends on RT_USING_SEMAPHORE - config UTEST_EVENT_TC bool "event test" default n depends on RT_USING_EVENT - endmenu diff --git a/examples/utest/testcases/kernel/SConscript b/examples/utest/testcases/kernel/SConscript index 565d2d9774..26d5ddbf17 100644 --- a/examples/utest/testcases/kernel/SConscript +++ b/examples/utest/testcases/kernel/SConscript @@ -17,7 +17,6 @@ if GetDepend(['UTEST_SEMAPHORE_TC']): if GetDepend(['UTEST_EVENT_TC']): src += ['event_tc.c'] - CPPPATH = [cwd] group = DefineGroup('utestcases', src, depend = [], CPPPATH = CPPPATH) diff --git a/examples/utest/testcases/kernel/irq_tc.c b/examples/utest/testcases/kernel/irq_tc.c index 27a9b64b5b..86b6c144f1 100644 --- a/examples/utest/testcases/kernel/irq_tc.c +++ b/examples/utest/testcases/kernel/irq_tc.c @@ -10,6 +10,8 @@ #include <rtthread.h> #include "utest.h" +#include "rthw.h" + #define UTEST_NAME "irq_tc" static uint32_t irq_count = 0; static uint32_t max_get_nest_count = 0; @@ -25,12 +27,16 @@ static void irq_callback() static void irq_test(void) { + irq_count = 0; rt_interrupt_enter_sethook(irq_callback); - rt_thread_delay(2); - LOG_D("start irq_test OK!\n"); + rt_interrupt_leave_sethook(irq_callback); + rt_thread_mdelay(2); LOG_D("%s test irq_test! irq_count %d max_get_nest_count %d\n", UTEST_NAME, irq_count, max_get_nest_count); uassert_int_not_equal(0, irq_count); uassert_int_not_equal(0, max_get_nest_count); + rt_interrupt_enter_sethook(RT_NULL); + rt_interrupt_leave_sethook(RT_NULL); + LOG_D("irq_test OK!\n"); } static rt_err_t utest_tc_init(void) @@ -45,8 +51,28 @@ static rt_err_t utest_tc_cleanup(void) return RT_EOK; } +static void interrupt_test(void) +{ + rt_base_t level; + uint32_t i = 1000; + + rt_interrupt_enter_sethook(irq_callback); + rt_interrupt_leave_sethook(irq_callback); + irq_count = 0; + level = rt_hw_interrupt_disable(); + while(i) + { + i --; + } + uassert_int_equal(0, irq_count); + rt_hw_interrupt_enable(level); + rt_interrupt_enter_sethook(RT_NULL); + rt_interrupt_leave_sethook(RT_NULL); + +} static void testcase(void) { UTEST_UNIT_RUN(irq_test); + UTEST_UNIT_RUN(interrupt_test); } UTEST_TC_EXPORT(testcase, "testcases.kernel.irq_tc", utest_tc_init, utest_tc_cleanup, 10); |
