summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsupperthomas <[email protected]>2021-08-17 22:14:33 +0800
committersupperthomas <[email protected]>2021-08-19 20:49:08 +0800
commitc8d73a76ced80f3795fd2ce738a641d18fe1fde0 (patch)
treec793ffb96d37bbaefee637d2db43067fccaa5731
parent1656d7f8f824ff1fc41ac4a772c5646c2edeefbd (diff)
add the utest of irq
-rw-r--r--examples/utest/testcases/kernel/Kconfig6
-rw-r--r--examples/utest/testcases/kernel/SConscript4
-rw-r--r--examples/utest/testcases/kernel/irq_tc.c55
3 files changed, 65 insertions, 0 deletions
diff --git a/examples/utest/testcases/kernel/Kconfig b/examples/utest/testcases/kernel/Kconfig
index 1906911ed7..fd16b95c68 100644
--- a/examples/utest/testcases/kernel/Kconfig
+++ b/examples/utest/testcases/kernel/Kconfig
@@ -5,14 +5,20 @@ config UTEST_MEMHEAP_TC
default y
depends on RT_USING_MEMHEAP
+config UTEST_IRQ_TC
+ bool "IRQ test"
+ default n
+
config UTEST_SEMAPHORE_TC
bool "semaphore test"
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 8b312781f9..565d2d9774 100644
--- a/examples/utest/testcases/kernel/SConscript
+++ b/examples/utest/testcases/kernel/SConscript
@@ -8,12 +8,16 @@ src = Split('''
if GetDepend(['UTEST_MEMHEAP_TC']):
src += ['memheap_tc.c']
+if GetDepend(['UTEST_IRQ_TC']):
+ src += ['irq_tc.c']
+
if GetDepend(['UTEST_SEMAPHORE_TC']):
src += ['semaphore_tc.c']
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
new file mode 100644
index 0000000000..2aebecba7c
--- /dev/null
+++ b/examples/utest/testcases/kernel/irq_tc.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-08-15 supperthomas add irq_test
+ */
+
+#include <rtthread.h>
+#include "utest.h"
+#define UTEST_NAME "irq_tc"
+static uint32_t irq_count=0;
+static uint32_t max_get_nest_count = 0;
+static void irq_callback()
+{
+ if(rt_interrupt_get_nest() > max_get_nest_count)
+ {
+ max_get_nest_count = rt_interrupt_get_nest();
+ }
+ irq_count++;
+}
+
+static void irq_test(void)
+{
+ rt_interrupt_enter_sethook(irq_callback);
+ rt_thread_delay(2);
+ LOG_D("start irq_test OK!\n");
+ 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);
+}
+
+
+
+
+
+static rt_err_t utest_tc_init(void)
+{
+ irq_count = 0;
+ max_get_nest_count = 0;
+ return RT_EOK;
+}
+
+static rt_err_t utest_tc_cleanup(void)
+{
+ return RT_EOK;
+}
+
+static void testcase(void)
+{
+ UTEST_UNIT_RUN(irq_test);
+}
+UTEST_TC_EXPORT(testcase, "testcases.kernel.irq_tc", utest_tc_init, utest_tc_cleanup, 10);