summaryrefslogtreecommitdiff
path: root/examples/utest
diff options
context:
space:
mode:
authorguozhanxin <[email protected]>2022-03-31 23:01:34 +0800
committerguo <[email protected]>2022-04-21 14:35:11 +0800
commit1404186602f75fb5fe142681a66c41c185b2fcb8 (patch)
treecc5d5836d30d9a9d3517ad62b035b29dd264c9b9 /examples/utest
parentef7280826f50377ad7b426f90211d6c7e4d91035 (diff)
[utestcases] add cpp11 base testcase.
Diffstat (limited to 'examples/utest')
-rw-r--r--examples/utest/configs/cpp11/cpp11.conf4
-rw-r--r--examples/utest/testcases/Kconfig1
-rw-r--r--examples/utest/testcases/cpp11/Kconfig7
-rw-r--r--examples/utest/testcases/cpp11/SConscript13
-rw-r--r--examples/utest/testcases/cpp11/thread_tc.cpp51
5 files changed, 76 insertions, 0 deletions
diff --git a/examples/utest/configs/cpp11/cpp11.conf b/examples/utest/configs/cpp11/cpp11.conf
new file mode 100644
index 0000000000..1aa8f2e3b8
--- /dev/null
+++ b/examples/utest/configs/cpp11/cpp11.conf
@@ -0,0 +1,4 @@
+CONFIG_UTEST_CPP11_THREAD_TC=y
+# dependencies
+CONFIG_RT_USING_CPLUSPLUS=y
+CONFIG_RT_USING_CPLUSPLUS11=y
diff --git a/examples/utest/testcases/Kconfig b/examples/utest/testcases/Kconfig
index 5dc1c6c420..e813a5fcc1 100644
--- a/examples/utest/testcases/Kconfig
+++ b/examples/utest/testcases/Kconfig
@@ -9,6 +9,7 @@ if RT_USING_UTESTCASES
source "$RTT_DIR/examples/utest/testcases/utest/Kconfig"
source "$RTT_DIR/examples/utest/testcases/kernel/Kconfig"
+source "$RTT_DIR/examples/utest/testcases/cpp11/Kconfig"
source "$RTT_DIR/examples/utest/testcases/drivers/serial_v2/Kconfig"
endif
diff --git a/examples/utest/testcases/cpp11/Kconfig b/examples/utest/testcases/cpp11/Kconfig
new file mode 100644
index 0000000000..1d08163d13
--- /dev/null
+++ b/examples/utest/testcases/cpp11/Kconfig
@@ -0,0 +1,7 @@
+menu "CPP11 Testcase"
+
+config UTEST_CPP11_THREAD_TC
+ bool "Cpp11 thread test"
+ default n
+
+endmenu
diff --git a/examples/utest/testcases/cpp11/SConscript b/examples/utest/testcases/cpp11/SConscript
new file mode 100644
index 0000000000..cf92d755b0
--- /dev/null
+++ b/examples/utest/testcases/cpp11/SConscript
@@ -0,0 +1,13 @@
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+src = Split('''
+thread_tc.cpp
+''')
+
+CPPPATH = [cwd]
+
+group = DefineGroup('utestcases', src, depend = ['UTEST_CPP11_THREAD_TC'], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/examples/utest/testcases/cpp11/thread_tc.cpp b/examples/utest/testcases/cpp11/thread_tc.cpp
new file mode 100644
index 0000000000..751540937a
--- /dev/null
+++ b/examples/utest/testcases/cpp11/thread_tc.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2006-2019, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-09-03 liukang the first version
+ */
+
+#include <rtthread.h>
+#include "utest.h"
+#include <thread>
+
+static void test_thread(void)
+{
+ int count = 0;
+ auto func = [&]() mutable
+ {
+ for (int i = 0; i < 100; ++i)
+ {
+ ++count;
+ }
+ };
+
+ std::thread t1(func);
+ t1.join();
+
+ if (count != 100)
+ {
+ uassert_false(1);
+ }
+
+ uassert_true(1);
+}
+
+static rt_err_t utest_tc_init(void)
+{
+ return RT_EOK;
+}
+
+static rt_err_t utest_tc_cleanup(void)
+{
+ return RT_EOK;
+}
+
+static void testcase(void)
+{
+ UTEST_UNIT_RUN(test_thread);
+}
+UTEST_TC_EXPORT(testcase, "testcases.cpp11.thread_tc", utest_tc_init, utest_tc_cleanup, 10);