From 6a5f3ae6610cffe7a438b38230eac91110c08ad6 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Wed, 23 Jun 2021 04:20:36 -0700 Subject: [PATCH 1/4] CMake: Move rtos stubs sources to the mbed-os/rtos directory Move the rtos stub library into the rtos component directory. so we can avoid duplicating the mbed-os source tree in a central UNITTESTS folder. --- UNITTESTS/stubs/CMakeLists.txt | 1 - rtos/CMakeLists.txt | 4 ++++ rtos/tests/.mbedignore | 1 + rtos/tests/UNITTESTS/CMakeLists.txt | 4 ++++ .../tests/UNITTESTS/doubles}/CMakeLists.txt | 11 ++++++++--- .../UNITTESTS/doubles}/ConditionVariable_stub.cpp | 0 .../tests/UNITTESTS/doubles}/Kernel_stub.cpp | 0 .../tests/UNITTESTS/doubles}/Mutex_stub.cpp | 0 .../tests/UNITTESTS/doubles}/Semaphore_stub.cpp | 0 .../tests/UNITTESTS/doubles}/ThisThread_stub.cpp | 0 .../tests/UNITTESTS/doubles}/Thread_stub.cpp | 0 .../tests/UNITTESTS/doubles}/mbed_rtos_rtx_stub.c | 0 .../tests/UNITTESTS/doubles}/rtx_mutex_stub.c | 0 13 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 rtos/tests/.mbedignore create mode 100644 rtos/tests/UNITTESTS/CMakeLists.txt rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/CMakeLists.txt (69%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/ConditionVariable_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/Kernel_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/Mutex_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/Semaphore_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/ThisThread_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/Thread_stub.cpp (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/mbed_rtos_rtx_stub.c (100%) rename {UNITTESTS/stubs/rtos => rtos/tests/UNITTESTS/doubles}/rtx_mutex_stub.c (100%) diff --git a/UNITTESTS/stubs/CMakeLists.txt b/UNITTESTS/stubs/CMakeLists.txt index 69195ef31e..ab81356612 100644 --- a/UNITTESTS/stubs/CMakeLists.txt +++ b/UNITTESTS/stubs/CMakeLists.txt @@ -123,7 +123,6 @@ add_subdirectory(connectivity) add_subdirectory(events) add_subdirectory(hal) add_subdirectory(platform) -add_subdirectory(rtos) add_subdirectory(storage) add_library(mbed-stubs INTERFACE) diff --git a/rtos/CMakeLists.txt b/rtos/CMakeLists.txt index 9e2194d12d..ab9d3082ea 100644 --- a/rtos/CMakeLists.txt +++ b/rtos/CMakeLists.txt @@ -1,6 +1,10 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) + add_subdirectory(tests/UNITTESTS) +endif() + target_include_directories(mbed-core INTERFACE . diff --git a/rtos/tests/.mbedignore b/rtos/tests/.mbedignore new file mode 100644 index 0000000000..e28badb677 --- /dev/null +++ b/rtos/tests/.mbedignore @@ -0,0 +1 @@ +UNITTESTS/* diff --git a/rtos/tests/UNITTESTS/CMakeLists.txt b/rtos/tests/UNITTESTS/CMakeLists.txt new file mode 100644 index 0000000000..b632a73f47 --- /dev/null +++ b/rtos/tests/UNITTESTS/CMakeLists.txt @@ -0,0 +1,4 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +add_subdirectory(doubles) diff --git a/UNITTESTS/stubs/rtos/CMakeLists.txt b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt similarity index 69% rename from UNITTESTS/stubs/rtos/CMakeLists.txt rename to rtos/tests/UNITTESTS/doubles/CMakeLists.txt index fc9a759b8d..b3666dc5bd 100644 --- a/UNITTESTS/stubs/rtos/CMakeLists.txt +++ b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt @@ -3,6 +3,8 @@ add_library(mbed-stubs-rtos) +add_definitions(-DUNITTEST) + target_sources(mbed-stubs-rtos PRIVATE ConditionVariable_stub.cpp @@ -16,7 +18,10 @@ target_sources(mbed-stubs-rtos ) target_link_libraries(mbed-stubs-rtos - PRIVATE - mbed-headers - mbed-stubs-headers + PRIVATE + mbed-headers-base + mbed-headers-rtos + mbed-headers-platform + mbed-headers-drivers + mbed-headers-hal ) diff --git a/UNITTESTS/stubs/rtos/ConditionVariable_stub.cpp b/rtos/tests/UNITTESTS/doubles/ConditionVariable_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/ConditionVariable_stub.cpp rename to rtos/tests/UNITTESTS/doubles/ConditionVariable_stub.cpp diff --git a/UNITTESTS/stubs/rtos/Kernel_stub.cpp b/rtos/tests/UNITTESTS/doubles/Kernel_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/Kernel_stub.cpp rename to rtos/tests/UNITTESTS/doubles/Kernel_stub.cpp diff --git a/UNITTESTS/stubs/rtos/Mutex_stub.cpp b/rtos/tests/UNITTESTS/doubles/Mutex_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/Mutex_stub.cpp rename to rtos/tests/UNITTESTS/doubles/Mutex_stub.cpp diff --git a/UNITTESTS/stubs/rtos/Semaphore_stub.cpp b/rtos/tests/UNITTESTS/doubles/Semaphore_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/Semaphore_stub.cpp rename to rtos/tests/UNITTESTS/doubles/Semaphore_stub.cpp diff --git a/UNITTESTS/stubs/rtos/ThisThread_stub.cpp b/rtos/tests/UNITTESTS/doubles/ThisThread_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/ThisThread_stub.cpp rename to rtos/tests/UNITTESTS/doubles/ThisThread_stub.cpp diff --git a/UNITTESTS/stubs/rtos/Thread_stub.cpp b/rtos/tests/UNITTESTS/doubles/Thread_stub.cpp similarity index 100% rename from UNITTESTS/stubs/rtos/Thread_stub.cpp rename to rtos/tests/UNITTESTS/doubles/Thread_stub.cpp diff --git a/UNITTESTS/stubs/rtos/mbed_rtos_rtx_stub.c b/rtos/tests/UNITTESTS/doubles/mbed_rtos_rtx_stub.c similarity index 100% rename from UNITTESTS/stubs/rtos/mbed_rtos_rtx_stub.c rename to rtos/tests/UNITTESTS/doubles/mbed_rtos_rtx_stub.c diff --git a/UNITTESTS/stubs/rtos/rtx_mutex_stub.c b/rtos/tests/UNITTESTS/doubles/rtx_mutex_stub.c similarity index 100% rename from UNITTESTS/stubs/rtos/rtx_mutex_stub.c rename to rtos/tests/UNITTESTS/doubles/rtx_mutex_stub.c From 062638e835d1de1be0ddf3497d1bc64cd4c0884d Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Wed, 23 Jun 2021 04:34:23 -0700 Subject: [PATCH 2/4] CMake: Move rtos stub headers to the rtos/tests/UNITTESTS/double directory Move rtos stubs headers to the mbed-os/rtos/tests/UNITTESTS/double directory and update CMake to create a mbed-stubs-rtos-headers library for rtos stub headers --- rtos/tests/UNITTESTS/doubles/CMakeLists.txt | 7 +++++++ .../tests/UNITTESTS/doubles}/ConditionVariable_stub.h | 0 .../tests/UNITTESTS/doubles}/Semaphore_stub.h | 0 .../stubs => rtos/tests/UNITTESTS/doubles}/Thread_stub.h | 0 4 files changed, 7 insertions(+) rename {UNITTESTS/stubs => rtos/tests/UNITTESTS/doubles}/ConditionVariable_stub.h (100%) rename {UNITTESTS/stubs => rtos/tests/UNITTESTS/doubles}/Semaphore_stub.h (100%) rename {UNITTESTS/stubs => rtos/tests/UNITTESTS/doubles}/Thread_stub.h (100%) diff --git a/rtos/tests/UNITTESTS/doubles/CMakeLists.txt b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt index b3666dc5bd..7e0f604fdc 100644 --- a/rtos/tests/UNITTESTS/doubles/CMakeLists.txt +++ b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt @@ -1,6 +1,13 @@ # Copyright (c) 2021 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +add_library(mbed-stubs-rtos-headers INTERFACE) + +target_include_directories(mbed-stubs-rtos-headers + INTERFACE + . +) + add_library(mbed-stubs-rtos) add_definitions(-DUNITTEST) diff --git a/UNITTESTS/stubs/ConditionVariable_stub.h b/rtos/tests/UNITTESTS/doubles/ConditionVariable_stub.h similarity index 100% rename from UNITTESTS/stubs/ConditionVariable_stub.h rename to rtos/tests/UNITTESTS/doubles/ConditionVariable_stub.h diff --git a/UNITTESTS/stubs/Semaphore_stub.h b/rtos/tests/UNITTESTS/doubles/Semaphore_stub.h similarity index 100% rename from UNITTESTS/stubs/Semaphore_stub.h rename to rtos/tests/UNITTESTS/doubles/Semaphore_stub.h diff --git a/UNITTESTS/stubs/Thread_stub.h b/rtos/tests/UNITTESTS/doubles/Thread_stub.h similarity index 100% rename from UNITTESTS/stubs/Thread_stub.h rename to rtos/tests/UNITTESTS/doubles/Thread_stub.h From 4412e76531b03265e8334060bf7f21506c537cc9 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Wed, 23 Jun 2021 04:41:30 -0700 Subject: [PATCH 3/4] CMake: unit-tests: Move mbed-headers-rtos to the rtos directory Move the header-only mbed-headers-rtos library the unit test stubs depend on into the rtos component directory. This makes the rtos stubs more self-contained and improves the composition of the library. --- UNITTESTS/stubs/CMakeLists.txt | 7 ------- rtos/tests/UNITTESTS/doubles/CMakeLists.txt | 8 ++++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/UNITTESTS/stubs/CMakeLists.txt b/UNITTESTS/stubs/CMakeLists.txt index ab81356612..50cfb307ad 100644 --- a/UNITTESTS/stubs/CMakeLists.txt +++ b/UNITTESTS/stubs/CMakeLists.txt @@ -9,7 +9,6 @@ add_library(mbed-headers-connectivity INTERFACE) add_library(mbed-headers-storage INTERFACE) add_library(mbed-headers-hal INTERFACE) add_library(mbed-headers-events INTERFACE) -add_library(mbed-headers-rtos INTERFACE) target_link_libraries(mbed-headers INTERFACE @@ -101,12 +100,6 @@ target_include_directories(mbed-headers-hal ${mbed-os_SOURCE_DIR}/hal/include ) -target_include_directories(mbed-headers-rtos - INTERFACE - ${mbed-os_SOURCE_DIR}/rtos/include - ${mbed-os_SOURCE_DIR}/rtos/include/rtos -) - target_include_directories(mbed-headers INTERFACE ${mbed-os_SOURCE_DIR}/features diff --git a/rtos/tests/UNITTESTS/doubles/CMakeLists.txt b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt index 7e0f604fdc..4216a6ab6c 100644 --- a/rtos/tests/UNITTESTS/doubles/CMakeLists.txt +++ b/rtos/tests/UNITTESTS/doubles/CMakeLists.txt @@ -1,6 +1,14 @@ # Copyright (c) 2021 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +add_library(mbed-headers-rtos INTERFACE) + +target_include_directories(mbed-headers-rtos + INTERFACE + ${mbed-os_SOURCE_DIR}/rtos/include + ${mbed-os_SOURCE_DIR}/rtos/include/rtos +) + add_library(mbed-stubs-rtos-headers INTERFACE) target_include_directories(mbed-stubs-rtos-headers From 8efb322e15b91c74584a0e06c49e44910a0fdb66 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Wed, 23 Jun 2021 04:42:10 -0700 Subject: [PATCH 4/4] CMake: unit-tests: Update connectivity stubs and their unittests mbed-stubs-connectivity now depends on the mbed-stubs-rtos and mbed-stubs-rtos-headers because it requires some headers and sources which were moved to mbed-stubs-rtos and mbed-stubs-rtos-headers. --- UNITTESTS/stubs/connectivity/CMakeLists.txt | 2 ++ .../UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt | 1 + .../UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt | 1 + .../UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt | 1 + .../framework/device/cellularstatemachine/CMakeLists.txt | 1 + 5 files changed, 6 insertions(+) diff --git a/UNITTESTS/stubs/connectivity/CMakeLists.txt b/UNITTESTS/stubs/connectivity/CMakeLists.txt index faba2e38e2..fdea4287fe 100644 --- a/UNITTESTS/stubs/connectivity/CMakeLists.txt +++ b/UNITTESTS/stubs/connectivity/CMakeLists.txt @@ -57,7 +57,9 @@ target_sources(mbed-stubs-connectivity target_link_libraries(mbed-stubs-connectivity PRIVATE + mbed-stubs-rtos-headers mbed-headers mbed-stubs-headers + mbed-stubs-rtos gtest ) diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt index 5772d7cf45..18d9dfc5d9 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt @@ -25,6 +25,7 @@ target_link_libraries(${TEST_NAME} mbed-headers mbed-stubs mbed-stubs-headers + mbed-stubs-rtos-headers gmock_main ) diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt index bdf0e68414..8886bc8d56 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt @@ -31,6 +31,7 @@ target_link_libraries(${TEST_NAME} mbed-headers mbed-stubs mbed-stubs-headers + mbed-stubs-rtos gmock_main ) diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt index ca26a782c4..0bd65fe5e3 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt @@ -29,6 +29,7 @@ target_link_libraries(${TEST_NAME} mbed-headers mbed-stubs mbed-stubs-headers + mbed-stubs-rtos-headers gmock_main ) diff --git a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt index 2195378184..4f05663988 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt @@ -30,6 +30,7 @@ target_link_libraries(${TEST_NAME} mbed-headers mbed-stubs mbed-stubs-headers + mbed-stubs-rtos-headers gmock_main )