diff options
| author | Chen Wang <[email protected]> | 2025-10-15 15:11:32 +0800 |
|---|---|---|
| committer | R b b666 <[email protected]> | 2025-10-15 15:28:58 +0800 |
| commit | e8d3d0fca4e2555432dc476ec2e942ce500d8e1a (patch) | |
| tree | 096ed46b2db2ba6d2326211f6a5bf49f43a7383b /examples/utest/testcases/cpp11/tc_mutex.cpp | |
| parent | bc2fca59cf2c6714340e80256431c7d3b19cf63f (diff) | |
utest: move cpp from examples to components/libc/cplusplus
Also update the case names to compatible with naming rules.
Signed-off-by: Chen Wang <[email protected]>
Diffstat (limited to 'examples/utest/testcases/cpp11/tc_mutex.cpp')
| -rw-r--r-- | examples/utest/testcases/cpp11/tc_mutex.cpp | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/examples/utest/testcases/cpp11/tc_mutex.cpp b/examples/utest/testcases/cpp11/tc_mutex.cpp deleted file mode 100644 index 12974fa727..0000000000 --- a/examples/utest/testcases/cpp11/tc_mutex.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2006-2025, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2025-09-19 Rbb666 the first version - */ - -#include <rtthread.h> -#include "utest.h" -#include <thread> -#include <mutex> -#include <chrono> - -/** - * @brief Test basic mutex operations with lock_guard. - */ -static void test_mutex(void) -{ - std::mutex m; - int count = 0; - auto func = [&]() mutable { - std::lock_guard<std::mutex> lock(m); - for (int i = 0; i < 1000; ++i) - { - ++count; - } - }; - - std::thread t1(func); - std::thread t2(func); - - t1.join(); - t2.join(); - - uassert_int_equal(count, 2000); -} - -/** - * @brief Test recursive mutex allowing multiple locks by the same thread. - */ -static void test_recursive_mutex(void) -{ - std::recursive_mutex rm; - int count = 0; - auto func = [&]() mutable { - std::lock_guard<std::recursive_mutex> lock1(rm); - std::lock_guard<std::recursive_mutex> lock2(rm); - for (int i = 0; i < 1000; ++i) - { - ++count; - } - }; - - std::thread t1(func); - std::thread t2(func); - - t1.join(); - t2.join(); - - if (count != 2000) - { - uassert_false(true); - } - uassert_true(true); -} - -/** - * @brief Test try_lock on mutex. - */ -static void test_try_lock(void) -{ - std::mutex m; - if (m.try_lock()) - { - m.unlock(); - uassert_true(true); - } - else - { - uassert_false(true); - } -} - -/** - * @brief Test locking multiple mutexes with std::lock. - */ -static void test_lock_multiple(void) -{ - std::mutex m1, m2; - std::lock(m1, m2); - m1.unlock(); - m2.unlock(); - uassert_true(true); -} - -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) -{ - /* Test basic mutex operations with lock_guard */ - UTEST_UNIT_RUN(test_mutex); - /* Test recursive mutex allowing multiple locks by the same thread */ - UTEST_UNIT_RUN(test_recursive_mutex); - /* Test try_lock on mutex */ - UTEST_UNIT_RUN(test_try_lock); - /* Test locking multiple mutexes with std::lock */ - UTEST_UNIT_RUN(test_lock_multiple); -} -UTEST_TC_EXPORT(testcase, "testcases.cpp11.mutex_tc", utest_tc_init, utest_tc_cleanup, 10); |
