From 37463b660b626133c53376fedfb98646a82b11be Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Sun, 27 Dec 2020 14:14:38 +0100 Subject: [PATCH 1/5] restructured test folder and enabled cmake v3 support --- unittest/CMakeLists.txt | 2 ++ unittest/internal/CMakeLists.txt | 7 +++++++ unittest/internal/osal/CMakeLists.txt | 5 +++++ unittest/internal/serialize/CMakeLists.txt | 3 +++ unittest/tests/CMakeLists.txt | 6 ++++++ unittest/tests/action/CMakeLists.txt | 3 +++ unittest/tests/action/TestActionHelper.cpp | 7 +++++-- unittest/tests/action/TestActionHelper.h | 2 +- unittest/tests/container/CMakeLists.txt | 10 ++++++++++ unittest/tests/container/RingBufferTest.cpp | 6 +++--- unittest/tests/container/TestArrayList.cpp | 8 ++++---- unittest/tests/container/TestDynamicFifo.cpp | 11 +++++------ unittest/tests/container/TestFifo.cpp | 11 +++++------ unittest/tests/container/TestFixedArrayList.cpp | 9 ++++----- unittest/tests/container/TestFixedMap.cpp | 8 ++++---- .../tests/container/TestFixedOrderedMultimap.cpp | 8 ++++---- unittest/tests/osal/CMakeLists.txt | 4 ++++ unittest/tests/osal/TestMessageQueue.cpp | 10 ++++++---- unittest/tests/serialize/CMakeLists.txt | 5 +++++ .../tests/serialize/TestSerialBufferAdapter.cpp | 8 +++++--- .../tests/serialize/TestSerialLinkedPacket.cpp | 9 ++++++--- .../tests/serialize/TestSerialLinkedPacket.h | 2 +- unittest/tests/serialize/TestSerialization.cpp | 16 +++++++++------- unittest/tests/storagemanager/CMakeLists.txt | 4 ++++ unittest/tests/storagemanager/TestPool.cpp | 6 ++---- unittest/user/CMakeLists.txt | 1 + unittest/user/testcfg/CMakeLists.txt | 11 +++++++++++ unittest/{ => user}/testcfg/FSFWConfig.h | 0 unittest/{ => user}/testcfg/Makefile-FSFW-Tests | 0 unittest/{ => user}/testcfg/TestsConfig.h | 0 .../testcfg/cdatapool/dataPoolInit.cpp | 0 .../{ => user}/testcfg/cdatapool/dataPoolInit.h | 0 .../testcfg/devices/logicalAddresses.cpp | 0 .../testcfg/devices/logicalAddresses.h | 0 .../testcfg/devices/powerSwitcherList.cpp | 0 .../testcfg/devices/powerSwitcherList.h | 0 .../testcfg/events/subsystemIdRanges.h | 0 .../testcfg/ipc/MissionMessageTypes.cpp | 0 .../{ => user}/testcfg/ipc/MissionMessageTypes.h | 0 .../testcfg/objects/systemObjectList.h | 0 .../pollingsequence/PollingSequenceFactory.cpp | 0 .../pollingsequence/PollingSequenceFactory.h | 0 .../{ => user}/testcfg/returnvalues/classIds.h | 0 unittest/{ => user}/testcfg/testcfg.mk | 0 unittest/{ => user}/testcfg/tmtc/apid.h | 0 unittest/{ => user}/testcfg/tmtc/pusIds.h | 0 .../{ => user}/testtemplate/TestTemplate.cpp | 0 unittest/user/unittest/core/CMakeLists.txt | 7 +++++++ .../unittest}/core/CatchDefinitions.cpp | 0 .../{ => user/unittest}/core/CatchDefinitions.h | 0 .../{ => user/unittest}/core/CatchFactory.cpp | 0 unittest/{ => user/unittest}/core/CatchFactory.h | 0 .../{ => user/unittest}/core/CatchRunner.cpp | 0 unittest/{ => user/unittest}/core/CatchSetup.cpp | 0 unittest/{ => user/unittest}/core/core.mk | 0 unittest/{ => user/unittest}/core/printChar.cpp | 0 unittest/{ => user/unittest}/core/printChar.h | 0 unittest/{ => user}/unlockRealtime.sh | 0 58 files changed, 132 insertions(+), 57 deletions(-) create mode 100644 unittest/CMakeLists.txt create mode 100644 unittest/internal/CMakeLists.txt create mode 100644 unittest/internal/osal/CMakeLists.txt create mode 100644 unittest/internal/serialize/CMakeLists.txt create mode 100644 unittest/tests/CMakeLists.txt create mode 100644 unittest/tests/action/CMakeLists.txt create mode 100644 unittest/tests/container/CMakeLists.txt create mode 100644 unittest/tests/osal/CMakeLists.txt create mode 100644 unittest/tests/serialize/CMakeLists.txt create mode 100644 unittest/tests/storagemanager/CMakeLists.txt create mode 100644 unittest/user/CMakeLists.txt create mode 100644 unittest/user/testcfg/CMakeLists.txt rename unittest/{ => user}/testcfg/FSFWConfig.h (100%) rename unittest/{ => user}/testcfg/Makefile-FSFW-Tests (100%) rename unittest/{ => user}/testcfg/TestsConfig.h (100%) rename unittest/{ => user}/testcfg/cdatapool/dataPoolInit.cpp (100%) rename unittest/{ => user}/testcfg/cdatapool/dataPoolInit.h (100%) rename unittest/{ => user}/testcfg/devices/logicalAddresses.cpp (100%) rename unittest/{ => user}/testcfg/devices/logicalAddresses.h (100%) rename unittest/{ => user}/testcfg/devices/powerSwitcherList.cpp (100%) rename unittest/{ => user}/testcfg/devices/powerSwitcherList.h (100%) rename unittest/{ => user}/testcfg/events/subsystemIdRanges.h (100%) rename unittest/{ => user}/testcfg/ipc/MissionMessageTypes.cpp (100%) rename unittest/{ => user}/testcfg/ipc/MissionMessageTypes.h (100%) rename unittest/{ => user}/testcfg/objects/systemObjectList.h (100%) rename unittest/{ => user}/testcfg/pollingsequence/PollingSequenceFactory.cpp (100%) rename unittest/{ => user}/testcfg/pollingsequence/PollingSequenceFactory.h (100%) rename unittest/{ => user}/testcfg/returnvalues/classIds.h (100%) rename unittest/{ => user}/testcfg/testcfg.mk (100%) rename unittest/{ => user}/testcfg/tmtc/apid.h (100%) rename unittest/{ => user}/testcfg/tmtc/pusIds.h (100%) rename unittest/{ => user}/testtemplate/TestTemplate.cpp (100%) create mode 100644 unittest/user/unittest/core/CMakeLists.txt rename unittest/{ => user/unittest}/core/CatchDefinitions.cpp (100%) rename unittest/{ => user/unittest}/core/CatchDefinitions.h (100%) rename unittest/{ => user/unittest}/core/CatchFactory.cpp (100%) rename unittest/{ => user/unittest}/core/CatchFactory.h (100%) rename unittest/{ => user/unittest}/core/CatchRunner.cpp (100%) rename unittest/{ => user/unittest}/core/CatchSetup.cpp (100%) rename unittest/{ => user/unittest}/core/core.mk (100%) rename unittest/{ => user/unittest}/core/printChar.cpp (100%) rename unittest/{ => user/unittest}/core/printChar.h (100%) rename unittest/{ => user}/unlockRealtime.sh (100%) diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt new file mode 100644 index 00000000..119ef243 --- /dev/null +++ b/unittest/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(internal) +add_subdirectory(tests) \ No newline at end of file diff --git a/unittest/internal/CMakeLists.txt b/unittest/internal/CMakeLists.txt new file mode 100644 index 00000000..9c24317f --- /dev/null +++ b/unittest/internal/CMakeLists.txt @@ -0,0 +1,7 @@ +target_sources(${TARGET_NAME} PRIVATE + InternalUnitTester.cpp + UnittDefinitions.cpp +) + +add_subdirectory(osal) +add_subdirectory(serialize) \ No newline at end of file diff --git a/unittest/internal/osal/CMakeLists.txt b/unittest/internal/osal/CMakeLists.txt new file mode 100644 index 00000000..c6f1eb95 --- /dev/null +++ b/unittest/internal/osal/CMakeLists.txt @@ -0,0 +1,5 @@ +target_sources(${TARGET_NAME} PRIVATE + IntTestMq.cpp + IntTestMutex.cpp + IntTestSemaphore.cpp +) diff --git a/unittest/internal/serialize/CMakeLists.txt b/unittest/internal/serialize/CMakeLists.txt new file mode 100644 index 00000000..e8dc5717 --- /dev/null +++ b/unittest/internal/serialize/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${TARGET_NAME} PRIVATE + IntTestSerialization.cpp +) diff --git a/unittest/tests/CMakeLists.txt b/unittest/tests/CMakeLists.txt new file mode 100644 index 00000000..97074417 --- /dev/null +++ b/unittest/tests/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(action) +add_subdirectory(container) +add_subdirectory(osal) +add_subdirectory(serialize) +add_subdirectory(storagemanager) + diff --git a/unittest/tests/action/CMakeLists.txt b/unittest/tests/action/CMakeLists.txt new file mode 100644 index 00000000..0339000f --- /dev/null +++ b/unittest/tests/action/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${TARGET_NAME} PRIVATE + TestActionHelper.cpp +) diff --git a/unittest/tests/action/TestActionHelper.cpp b/unittest/tests/action/TestActionHelper.cpp index 944ad705..3109eba1 100644 --- a/unittest/tests/action/TestActionHelper.cpp +++ b/unittest/tests/action/TestActionHelper.cpp @@ -1,8 +1,11 @@ #include "TestActionHelper.h" + +#include + #include #include -#include -#include "../../core/CatchDefinitions.h" + +#include TEST_CASE( "Action Helper" , "[ActionHelper]") { diff --git a/unittest/tests/action/TestActionHelper.h b/unittest/tests/action/TestActionHelper.h index 4ba417eb..610fb09e 100644 --- a/unittest/tests/action/TestActionHelper.h +++ b/unittest/tests/action/TestActionHelper.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include diff --git a/unittest/tests/container/CMakeLists.txt b/unittest/tests/container/CMakeLists.txt new file mode 100644 index 00000000..966c5834 --- /dev/null +++ b/unittest/tests/container/CMakeLists.txt @@ -0,0 +1,10 @@ +target_sources(${TARGET_NAME} PRIVATE + RingBufferTest.cpp + TestArrayList.cpp + TestDynamicFifo.cpp + TestFifo.cpp + TestFixedArrayList.cpp + TestFixedMap.cpp + TestFixedOrderedMultimap.cpp + TestPlacementFactory.cpp +) diff --git a/unittest/tests/container/RingBufferTest.cpp b/unittest/tests/container/RingBufferTest.cpp index 9c1c8a23..32a2502d 100644 --- a/unittest/tests/container/RingBufferTest.cpp +++ b/unittest/tests/container/RingBufferTest.cpp @@ -1,7 +1,7 @@ -#include "../../core/CatchDefinitions.h" -#include "../../container/SimpleRingBuffer.h" +#include +#include -#include +#include #include TEST_CASE("Ring Buffer Test" , "[RingBufferTest]") { diff --git a/unittest/tests/container/TestArrayList.cpp b/unittest/tests/container/TestArrayList.cpp index 2f884276..1fd330b6 100644 --- a/unittest/tests/container/TestArrayList.cpp +++ b/unittest/tests/container/TestArrayList.cpp @@ -1,8 +1,8 @@ -#include "../../container/ArrayList.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include +#include -#include -#include "../../core/CatchDefinitions.h" +#include +#include /** * @brief Array List test diff --git a/unittest/tests/container/TestDynamicFifo.cpp b/unittest/tests/container/TestDynamicFifo.cpp index bb19131e..759fcc66 100644 --- a/unittest/tests/container/TestDynamicFifo.cpp +++ b/unittest/tests/container/TestDynamicFifo.cpp @@ -1,10 +1,9 @@ +#include "../../../container/DynamicFIFO.h" +#include "../../../container/FIFO.h" +#include "../../../returnvalues/HasReturnvaluesIF.h" -#include "../../container/DynamicFIFO.h" -#include "../../container/FIFO.h" -#include "../../returnvalues/HasReturnvaluesIF.h" - -#include -#include +#include +#include TEST_CASE( "Dynamic Fifo Tests", "[TestDynamicFifo]") { INFO("Dynamic Fifo Tests"); diff --git a/unittest/tests/container/TestFifo.cpp b/unittest/tests/container/TestFifo.cpp index bd727e00..f7bfb1de 100644 --- a/unittest/tests/container/TestFifo.cpp +++ b/unittest/tests/container/TestFifo.cpp @@ -1,10 +1,9 @@ +#include "../../../container/DynamicFIFO.h" +#include "../../../container/FIFO.h" +#include "../../../returnvalues/HasReturnvaluesIF.h" -#include "../../container/DynamicFIFO.h" -#include "../../container/FIFO.h" -#include "../../returnvalues/HasReturnvaluesIF.h" - -#include -#include "../../core/CatchDefinitions.h" +#include +#include TEST_CASE( "Static Fifo Tests", "[TestFifo]") { INFO("Fifo Tests"); diff --git a/unittest/tests/container/TestFixedArrayList.cpp b/unittest/tests/container/TestFixedArrayList.cpp index 5a1bd280..b2baa3e7 100644 --- a/unittest/tests/container/TestFixedArrayList.cpp +++ b/unittest/tests/container/TestFixedArrayList.cpp @@ -1,9 +1,8 @@ -#include "../../core/CatchDefinitions.h" +#include "../../../container/FixedArrayList.h" +#include "../../../returnvalues/HasReturnvaluesIF.h" -#include "../../container/FixedArrayList.h" -#include "../../returnvalues/HasReturnvaluesIF.h" - -#include +#include +#include TEST_CASE( "FixedArrayList Tests", "[TestFixedArrayList]") { diff --git a/unittest/tests/container/TestFixedMap.cpp b/unittest/tests/container/TestFixedMap.cpp index da0c84e3..f93065b6 100644 --- a/unittest/tests/container/TestFixedMap.cpp +++ b/unittest/tests/container/TestFixedMap.cpp @@ -1,8 +1,8 @@ -#include "../../container/FixedMap.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "../../../container/FixedMap.h" +#include "../../../returnvalues/HasReturnvaluesIF.h" -#include -#include "../../core/CatchDefinitions.h" +#include +#include template class FixedMap; diff --git a/unittest/tests/container/TestFixedOrderedMultimap.cpp b/unittest/tests/container/TestFixedOrderedMultimap.cpp index e625b559..b337a9c8 100644 --- a/unittest/tests/container/TestFixedOrderedMultimap.cpp +++ b/unittest/tests/container/TestFixedOrderedMultimap.cpp @@ -1,8 +1,8 @@ -#include "../../container/FixedOrderedMultimap.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "../../../container/FixedOrderedMultimap.h" +#include "../../../returnvalues/HasReturnvaluesIF.h" -#include -#include "../../core/CatchDefinitions.h" +#include +#include TEST_CASE( "FixedOrderedMultimap Tests", "[TestFixedOrderedMultimap]") { INFO("FixedOrderedMultimap Tests"); diff --git a/unittest/tests/osal/CMakeLists.txt b/unittest/tests/osal/CMakeLists.txt new file mode 100644 index 00000000..5ca5e400 --- /dev/null +++ b/unittest/tests/osal/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(${TARGET_NAME} PRIVATE + TestMessageQueue.cpp + TestSemaphore.cpp +) diff --git a/unittest/tests/osal/TestMessageQueue.cpp b/unittest/tests/osal/TestMessageQueue.cpp index 441d32e7..5360974f 100644 --- a/unittest/tests/osal/TestMessageQueue.cpp +++ b/unittest/tests/osal/TestMessageQueue.cpp @@ -1,8 +1,10 @@ -#include "../../ipc/MessageQueueIF.h" -#include "../../ipc/QueueFactory.h" -#include +#include "../../../ipc/MessageQueueIF.h" +#include "../../../ipc/QueueFactory.h" + +#include +#include + #include -#include "../../core/CatchDefinitions.h" TEST_CASE("MessageQueue Basic Test","[TestMq]") { MessageQueueIF* testSenderMq = diff --git a/unittest/tests/serialize/CMakeLists.txt b/unittest/tests/serialize/CMakeLists.txt new file mode 100644 index 00000000..5a9d9a0f --- /dev/null +++ b/unittest/tests/serialize/CMakeLists.txt @@ -0,0 +1,5 @@ +target_sources(${TARGET_NAME} PRIVATE + TestSerialBufferAdapter.cpp + TestSerialization.cpp + TestSerialLinkedPacket.cpp +) diff --git a/unittest/tests/serialize/TestSerialBufferAdapter.cpp b/unittest/tests/serialize/TestSerialBufferAdapter.cpp index 07cd3f9c..778f857e 100644 --- a/unittest/tests/serialize/TestSerialBufferAdapter.cpp +++ b/unittest/tests/serialize/TestSerialBufferAdapter.cpp @@ -1,7 +1,9 @@ -#include "../../serialize/SerialBufferAdapter.h" +#include "../../../serialize/SerialBufferAdapter.h" -#include -#include "../../core/CatchDefinitions.h" +#include +#include + +#include static bool test_value_bool = true; diff --git a/unittest/tests/serialize/TestSerialLinkedPacket.cpp b/unittest/tests/serialize/TestSerialLinkedPacket.cpp index fbe48894..83bdf857 100644 --- a/unittest/tests/serialize/TestSerialLinkedPacket.cpp +++ b/unittest/tests/serialize/TestSerialLinkedPacket.cpp @@ -1,9 +1,12 @@ #include "TestSerialLinkedPacket.h" -#include "../../core/CatchDefinitions.h" +#include -#include "../../globalfunctions/arrayprinter.h" +#include "../../../globalfunctions/arrayprinter.h" -#include +#include +#include + +#include TEST_CASE("Serial Linked Packet" , "[SerLinkPacket]") { diff --git a/unittest/tests/serialize/TestSerialLinkedPacket.h b/unittest/tests/serialize/TestSerialLinkedPacket.h index 6c720577..71f258f9 100644 --- a/unittest/tests/serialize/TestSerialLinkedPacket.h +++ b/unittest/tests/serialize/TestSerialLinkedPacket.h @@ -37,7 +37,7 @@ public: return buffer.entry.getConstBuffer(); } - const size_t getBufferLength() { + size_t getBufferLength() { return buffer.getSerializedSize(); } diff --git a/unittest/tests/serialize/TestSerialization.cpp b/unittest/tests/serialize/TestSerialization.cpp index 6e31170a..2877d09a 100644 --- a/unittest/tests/serialize/TestSerialization.cpp +++ b/unittest/tests/serialize/TestSerialization.cpp @@ -1,8 +1,10 @@ -#include "../../serialize/SerializeAdapter.h" +#include "../../../serialize/SerializeAdapter.h" + +#include +#include +#include -#include "catch.hpp" #include -#include "../../core/CatchDefinitions.h" static bool test_value_bool = true; static uint8_t tv_uint8 {5}; @@ -119,10 +121,10 @@ TEST_CASE("Auto Serialize Adapter testing", "[single-file]") { REQUIRE(tv_int16 == -829); REQUIRE(tv_int32 == -2312); - REQUIRE(tv_float == Approx(8.214921)); - REQUIRE(tv_double == Approx(9.2132142141e8)); - REQUIRE(tv_sfloat == Approx(-922.2321321)); - REQUIRE(tv_sdouble == Approx(-2.2421e19)); + REQUIRE(tv_float == Catch::Approx(8.214921)); + REQUIRE(tv_double == Catch::Approx(9.2132142141e8)); + REQUIRE(tv_sfloat == Catch::Approx(-922.2321321)); + REQUIRE(tv_sdouble == Catch::Approx(-2.2421e19)); } } diff --git a/unittest/tests/storagemanager/CMakeLists.txt b/unittest/tests/storagemanager/CMakeLists.txt new file mode 100644 index 00000000..ed7be7d5 --- /dev/null +++ b/unittest/tests/storagemanager/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(${TARGET_NAME} PRIVATE + TestNewAccessor.cpp + TestPool.cpp +) diff --git a/unittest/tests/storagemanager/TestPool.cpp b/unittest/tests/storagemanager/TestPool.cpp index daeb6bb5..dcfb6c03 100644 --- a/unittest/tests/storagemanager/TestPool.cpp +++ b/unittest/tests/storagemanager/TestPool.cpp @@ -1,10 +1,8 @@ -#include "CatchDefinitions.h" - #include #include -#include -#include +#include +#include #include diff --git a/unittest/user/CMakeLists.txt b/unittest/user/CMakeLists.txt new file mode 100644 index 00000000..ad6d4787 --- /dev/null +++ b/unittest/user/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(core) diff --git a/unittest/user/testcfg/CMakeLists.txt b/unittest/user/testcfg/CMakeLists.txt new file mode 100644 index 00000000..dbf0256f --- /dev/null +++ b/unittest/user/testcfg/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(${TARGET_NAME} + PRIVATE + ipc/MissionMessageTypes.cpp + pollingsequence/PollingSequenceFactory.cpp +) + +# Add include paths for the executable +target_include_directories(${TARGET_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/unittest/testcfg/FSFWConfig.h b/unittest/user/testcfg/FSFWConfig.h similarity index 100% rename from unittest/testcfg/FSFWConfig.h rename to unittest/user/testcfg/FSFWConfig.h diff --git a/unittest/testcfg/Makefile-FSFW-Tests b/unittest/user/testcfg/Makefile-FSFW-Tests similarity index 100% rename from unittest/testcfg/Makefile-FSFW-Tests rename to unittest/user/testcfg/Makefile-FSFW-Tests diff --git a/unittest/testcfg/TestsConfig.h b/unittest/user/testcfg/TestsConfig.h similarity index 100% rename from unittest/testcfg/TestsConfig.h rename to unittest/user/testcfg/TestsConfig.h diff --git a/unittest/testcfg/cdatapool/dataPoolInit.cpp b/unittest/user/testcfg/cdatapool/dataPoolInit.cpp similarity index 100% rename from unittest/testcfg/cdatapool/dataPoolInit.cpp rename to unittest/user/testcfg/cdatapool/dataPoolInit.cpp diff --git a/unittest/testcfg/cdatapool/dataPoolInit.h b/unittest/user/testcfg/cdatapool/dataPoolInit.h similarity index 100% rename from unittest/testcfg/cdatapool/dataPoolInit.h rename to unittest/user/testcfg/cdatapool/dataPoolInit.h diff --git a/unittest/testcfg/devices/logicalAddresses.cpp b/unittest/user/testcfg/devices/logicalAddresses.cpp similarity index 100% rename from unittest/testcfg/devices/logicalAddresses.cpp rename to unittest/user/testcfg/devices/logicalAddresses.cpp diff --git a/unittest/testcfg/devices/logicalAddresses.h b/unittest/user/testcfg/devices/logicalAddresses.h similarity index 100% rename from unittest/testcfg/devices/logicalAddresses.h rename to unittest/user/testcfg/devices/logicalAddresses.h diff --git a/unittest/testcfg/devices/powerSwitcherList.cpp b/unittest/user/testcfg/devices/powerSwitcherList.cpp similarity index 100% rename from unittest/testcfg/devices/powerSwitcherList.cpp rename to unittest/user/testcfg/devices/powerSwitcherList.cpp diff --git a/unittest/testcfg/devices/powerSwitcherList.h b/unittest/user/testcfg/devices/powerSwitcherList.h similarity index 100% rename from unittest/testcfg/devices/powerSwitcherList.h rename to unittest/user/testcfg/devices/powerSwitcherList.h diff --git a/unittest/testcfg/events/subsystemIdRanges.h b/unittest/user/testcfg/events/subsystemIdRanges.h similarity index 100% rename from unittest/testcfg/events/subsystemIdRanges.h rename to unittest/user/testcfg/events/subsystemIdRanges.h diff --git a/unittest/testcfg/ipc/MissionMessageTypes.cpp b/unittest/user/testcfg/ipc/MissionMessageTypes.cpp similarity index 100% rename from unittest/testcfg/ipc/MissionMessageTypes.cpp rename to unittest/user/testcfg/ipc/MissionMessageTypes.cpp diff --git a/unittest/testcfg/ipc/MissionMessageTypes.h b/unittest/user/testcfg/ipc/MissionMessageTypes.h similarity index 100% rename from unittest/testcfg/ipc/MissionMessageTypes.h rename to unittest/user/testcfg/ipc/MissionMessageTypes.h diff --git a/unittest/testcfg/objects/systemObjectList.h b/unittest/user/testcfg/objects/systemObjectList.h similarity index 100% rename from unittest/testcfg/objects/systemObjectList.h rename to unittest/user/testcfg/objects/systemObjectList.h diff --git a/unittest/testcfg/pollingsequence/PollingSequenceFactory.cpp b/unittest/user/testcfg/pollingsequence/PollingSequenceFactory.cpp similarity index 100% rename from unittest/testcfg/pollingsequence/PollingSequenceFactory.cpp rename to unittest/user/testcfg/pollingsequence/PollingSequenceFactory.cpp diff --git a/unittest/testcfg/pollingsequence/PollingSequenceFactory.h b/unittest/user/testcfg/pollingsequence/PollingSequenceFactory.h similarity index 100% rename from unittest/testcfg/pollingsequence/PollingSequenceFactory.h rename to unittest/user/testcfg/pollingsequence/PollingSequenceFactory.h diff --git a/unittest/testcfg/returnvalues/classIds.h b/unittest/user/testcfg/returnvalues/classIds.h similarity index 100% rename from unittest/testcfg/returnvalues/classIds.h rename to unittest/user/testcfg/returnvalues/classIds.h diff --git a/unittest/testcfg/testcfg.mk b/unittest/user/testcfg/testcfg.mk similarity index 100% rename from unittest/testcfg/testcfg.mk rename to unittest/user/testcfg/testcfg.mk diff --git a/unittest/testcfg/tmtc/apid.h b/unittest/user/testcfg/tmtc/apid.h similarity index 100% rename from unittest/testcfg/tmtc/apid.h rename to unittest/user/testcfg/tmtc/apid.h diff --git a/unittest/testcfg/tmtc/pusIds.h b/unittest/user/testcfg/tmtc/pusIds.h similarity index 100% rename from unittest/testcfg/tmtc/pusIds.h rename to unittest/user/testcfg/tmtc/pusIds.h diff --git a/unittest/testtemplate/TestTemplate.cpp b/unittest/user/testtemplate/TestTemplate.cpp similarity index 100% rename from unittest/testtemplate/TestTemplate.cpp rename to unittest/user/testtemplate/TestTemplate.cpp diff --git a/unittest/user/unittest/core/CMakeLists.txt b/unittest/user/unittest/core/CMakeLists.txt new file mode 100644 index 00000000..d78f45f1 --- /dev/null +++ b/unittest/user/unittest/core/CMakeLists.txt @@ -0,0 +1,7 @@ +target_sources(${TARGET_NAME} PRIVATE + CatchDefinitions.cpp + CatchFactory.cpp + CatchRunner.cpp + CatchSetup.cpp + printChar.cpp +) diff --git a/unittest/core/CatchDefinitions.cpp b/unittest/user/unittest/core/CatchDefinitions.cpp similarity index 100% rename from unittest/core/CatchDefinitions.cpp rename to unittest/user/unittest/core/CatchDefinitions.cpp diff --git a/unittest/core/CatchDefinitions.h b/unittest/user/unittest/core/CatchDefinitions.h similarity index 100% rename from unittest/core/CatchDefinitions.h rename to unittest/user/unittest/core/CatchDefinitions.h diff --git a/unittest/core/CatchFactory.cpp b/unittest/user/unittest/core/CatchFactory.cpp similarity index 100% rename from unittest/core/CatchFactory.cpp rename to unittest/user/unittest/core/CatchFactory.cpp diff --git a/unittest/core/CatchFactory.h b/unittest/user/unittest/core/CatchFactory.h similarity index 100% rename from unittest/core/CatchFactory.h rename to unittest/user/unittest/core/CatchFactory.h diff --git a/unittest/core/CatchRunner.cpp b/unittest/user/unittest/core/CatchRunner.cpp similarity index 100% rename from unittest/core/CatchRunner.cpp rename to unittest/user/unittest/core/CatchRunner.cpp diff --git a/unittest/core/CatchSetup.cpp b/unittest/user/unittest/core/CatchSetup.cpp similarity index 100% rename from unittest/core/CatchSetup.cpp rename to unittest/user/unittest/core/CatchSetup.cpp diff --git a/unittest/core/core.mk b/unittest/user/unittest/core/core.mk similarity index 100% rename from unittest/core/core.mk rename to unittest/user/unittest/core/core.mk diff --git a/unittest/core/printChar.cpp b/unittest/user/unittest/core/printChar.cpp similarity index 100% rename from unittest/core/printChar.cpp rename to unittest/user/unittest/core/printChar.cpp diff --git a/unittest/core/printChar.h b/unittest/user/unittest/core/printChar.h similarity index 100% rename from unittest/core/printChar.h rename to unittest/user/unittest/core/printChar.h diff --git a/unittest/unlockRealtime.sh b/unittest/user/unlockRealtime.sh similarity index 100% rename from unittest/unlockRealtime.sh rename to unittest/user/unlockRealtime.sh From d8d2f207e172ec8fd4f20104112f38fe176231b9 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Sun, 27 Dec 2020 14:20:26 +0100 Subject: [PATCH 2/5] cleaned up includes --- unittest/tests/container/TestDynamicFifo.cpp | 6 +++--- unittest/tests/container/TestFifo.cpp | 6 +++--- unittest/tests/container/TestFixedMap.cpp | 4 ++-- unittest/tests/osal/TestMessageQueue.cpp | 4 ++-- unittest/tests/serialize/TestSerialBufferAdapter.cpp | 2 +- unittest/tests/serialize/TestSerialLinkedPacket.cpp | 2 +- unittest/tests/serialize/TestSerialization.cpp | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/unittest/tests/container/TestDynamicFifo.cpp b/unittest/tests/container/TestDynamicFifo.cpp index 759fcc66..2b572d52 100644 --- a/unittest/tests/container/TestDynamicFifo.cpp +++ b/unittest/tests/container/TestDynamicFifo.cpp @@ -1,6 +1,6 @@ -#include "../../../container/DynamicFIFO.h" -#include "../../../container/FIFO.h" -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include +#include +#include #include #include diff --git a/unittest/tests/container/TestFifo.cpp b/unittest/tests/container/TestFifo.cpp index f7bfb1de..fbcd40cc 100644 --- a/unittest/tests/container/TestFifo.cpp +++ b/unittest/tests/container/TestFifo.cpp @@ -1,6 +1,6 @@ -#include "../../../container/DynamicFIFO.h" -#include "../../../container/FIFO.h" -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include +#include +#include #include #include diff --git a/unittest/tests/container/TestFixedMap.cpp b/unittest/tests/container/TestFixedMap.cpp index f93065b6..297171ca 100644 --- a/unittest/tests/container/TestFixedMap.cpp +++ b/unittest/tests/container/TestFixedMap.cpp @@ -1,5 +1,5 @@ -#include "../../../container/FixedMap.h" -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include +#include #include #include diff --git a/unittest/tests/osal/TestMessageQueue.cpp b/unittest/tests/osal/TestMessageQueue.cpp index 5360974f..e33b7240 100644 --- a/unittest/tests/osal/TestMessageQueue.cpp +++ b/unittest/tests/osal/TestMessageQueue.cpp @@ -1,5 +1,5 @@ -#include "../../../ipc/MessageQueueIF.h" -#include "../../../ipc/QueueFactory.h" +#include +#include #include #include diff --git a/unittest/tests/serialize/TestSerialBufferAdapter.cpp b/unittest/tests/serialize/TestSerialBufferAdapter.cpp index 778f857e..1938746d 100644 --- a/unittest/tests/serialize/TestSerialBufferAdapter.cpp +++ b/unittest/tests/serialize/TestSerialBufferAdapter.cpp @@ -1,4 +1,4 @@ -#include "../../../serialize/SerialBufferAdapter.h" +#include #include #include diff --git a/unittest/tests/serialize/TestSerialLinkedPacket.cpp b/unittest/tests/serialize/TestSerialLinkedPacket.cpp index 83bdf857..b90ae9f8 100644 --- a/unittest/tests/serialize/TestSerialLinkedPacket.cpp +++ b/unittest/tests/serialize/TestSerialLinkedPacket.cpp @@ -1,7 +1,7 @@ #include "TestSerialLinkedPacket.h" #include -#include "../../../globalfunctions/arrayprinter.h" +#include #include #include diff --git a/unittest/tests/serialize/TestSerialization.cpp b/unittest/tests/serialize/TestSerialization.cpp index 2877d09a..3de581ec 100644 --- a/unittest/tests/serialize/TestSerialization.cpp +++ b/unittest/tests/serialize/TestSerialization.cpp @@ -1,4 +1,4 @@ -#include "../../../serialize/SerializeAdapter.h" +#include #include #include From f60f02c5b84033a63b94b80925ed2f8e1a64953d Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Sun, 27 Dec 2020 14:53:37 +0100 Subject: [PATCH 3/5] updated readme --- unittest/README.md | 62 +++---------- unittest/user/CMakeLists.txt | 166 ++++++++++++++++++++++++++++++++++- 2 files changed, 176 insertions(+), 52 deletions(-) diff --git a/unittest/README.md b/unittest/README.md index 8a787c07..d6a4bb85 100644 --- a/unittest/README.md +++ b/unittest/README.md @@ -1,59 +1,19 @@ ## FSFW Testing -This repository contains testing and unit testing components. -[Catch2](https://github.com/catchorg/Catch2) has been used as a framework, -and these unit tests can only be run on a linux host machine. -The makefile with default settings creates the unit test binary which can be -run in the terminal or in eclipse. +This folder contains testing and unit testing components. ### Instructions -To run the fsfw unittests in the project, perform following steps: +The easiest way to run the unittest contained in this folder is to follow +the steps in the [test repository](https://egit.irs.uni-stuttgart.de/fsfw/fsfw_tests). +This is recommended even if the goal is to set up a custom test repository to have +a starting point. -1. Copy the testcfg folder the project root (folder containing the FSFW). -2. There is a makefile inside the testcfg folder which can be used to have - a starting point to compile the unit tests. Copy that Makefile to the project - root -3. Create a folder named catch2 (can have other name which requires Makefile - adaption) and copy the Catch2 header files there (NOTE: CMake support - not enabled yet!) +To set up a custom test repository or project, following steps can be performed: + +1. Copy the user folder content into the project root. +2. Clone [Catch2](https://github.com/catchorg/Catch2) in the project root. +3. Use the `CMakeLists.txt` as a starting point to add tests and build the test + executable. -### Eclipse CDT settings - -The default eclipse terminal has issues displaying the colors used -when running the unit test binary by catch2. To fix this issue, -install the ANSI Escape In Console package from the eclipse marketplace. - -### GCOV integration - -GCOV has been integrated as a code coverage tool. -It can be enabled by adding `GCOV=1` to the build process as an additional argument. -Coverage data will be provided in form of .gcno and .gcda files. -These can be displayed in eclipse by looking -for a .gcno or .gcda file in the \_obj folder, double-clicking it -and picking the right source-binary. This will generate -information about which lines of a file have run, provided it is open in -eclipse. - -### LCOV integration - -The files generated by GCOV can also be processed by the tool LCOV. -On ubuntu, the tool can be installed with the following command: - -```sh -sudo apt-get install lcov -```` - -After that, the tool can be run by building the unit tests with `GCOV=1`, -running them at least one time and then executing the `lcov.sh` script. - -### Adding unit tests - -The catch unit tests are located in unittest/testfw. To add new unit tests, -add them to the UnitTestCatch.cpp file or add a new source file which -includes catch.hpp. - -For writing basics tests, the [assertion documentation](https://github.com/catchorg/Catch2/blob/master/docs/assertions.md#top) -or the existing examples are a good guideliens. -For more advanced tests, refer to the [catch2 documentation](https://github.com/catchorg/Catch2/blob/master/docs/Readme.md#top). diff --git a/unittest/user/CMakeLists.txt b/unittest/user/CMakeLists.txt index ad6d4787..6ec314c3 100644 --- a/unittest/user/CMakeLists.txt +++ b/unittest/user/CMakeLists.txt @@ -1 +1,165 @@ -add_subdirectory(core) +################################################################################ +# CMake support for the Flight Software Framework Tests +# +# Developed in an effort to replace Make with a modern build system. +# +# Author: R. Mueller +################################################################################ + +################################################################################ +# Pre-Project preparation +################################################################################ +cmake_minimum_required(VERSION 3.13) + +# set(CMAKE_VERBOSE TRUE) + +set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildsystem/cmake") + +# Tests can be built with the Host OSAL or with the Linux OSAL. +if(NOT OS_FSFW) + set(OS_FSFW host CACHE STRING "OS for the FSFW.") +endif() + +option(CUSTOM_UNITTEST_RUNNER + "Specify whether custom main or Catch2 main is used" TRUE +) + +# Perform steps like loading toolchain files where applicable. +#include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake) +#pre_project_config() + +# Project Name +project(fsfw_tests C CXX) + +################################################################################ +# Pre-Sources preparation +################################################################################ + +# Specify the C++ standard +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +# Set names and variables +set(TARGET_NAME ${CMAKE_PROJECT_NAME}) +if(CUSTOM_UNITTEST_RUNNER) + set(CATCH2_TARGET Catch2) +else() + set(CATCH2_TARGET Catch2WithMain) +endif() +set(LIB_FSFW_NAME fsfw) + +# Set path names +set(FSFW_PATH fsfw) +set(CATCH2_PATH Catch2) +set(FSFW_TESTS_PATH fsfw/unittest) +set(TEST_SETUP_PATH unittest) + +# Analyse different OS and architecture/target options and +# determine BSP_PATH + +# FreeRTOS +if(${OS_FSFW} STREQUAL linux) + add_definitions(-DUNIX -DLINUX) + find_package(Threads REQUIRED) +# Hosted +else() + if(WIN32) + add_definitions(-DWIN32) + elseif(UNIX) + find_package(Threads REQUIRED) + add_definitions(-DUNIX -DLINUX) + endif() +endif() + +set(FSFW_CONFIG_PATH testcfg) + +################################################################################ +# Executable and Sources +################################################################################ + +# Add executable +add_executable(${TARGET_NAME}) + +# Add subdirectories +add_subdirectory(${FSFW_PATH}) +add_subdirectory(${CATCH2_PATH}) +add_subdirectory(${FSFW_CONFIG_PATH}) +add_subdirectory(${FSFW_TESTS_PATH}) +add_subdirectory(${TEST_SETUP_PATH}) + +################################################################################ +# Post-Sources preparation +################################################################################ + +# Add libraries for all sources. +target_link_libraries(${TARGET_NAME} PRIVATE + ${LIB_FSFW_NAME} + ${CATCH2_TARGET} +) + +# Add include paths for all sources. +target_include_directories(${TARGET_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${FSFW_CONFIG_PATH} +) + +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(WARNING_FLAGS + -Wall + -Wextra + -Wshadow=local + -Wimplicit-fallthrough=1 + -Wno-unused-parameter + -Wno-psabi + ) + + # Remove unused sections. + target_compile_options(${TARGET_NAME} PRIVATE + "-ffunction-sections" + "-fdata-sections" + ) + + # Removed unused sections. + target_link_options(${TARGET_NAME} PRIVATE + "-Wl,--gc-sections" + ) + +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + set(COMPILER_FLAGS "/permissive-") +endif() + +if(CMAKE_VERBOSE) + message(STATUS "Warning flags: ${WARNING_FLAGS}") +endif() + + +# Compile options for all sources. +target_compile_options(${TARGET_NAME} PRIVATE + $<$:${WARNING_FLAGS} ${COMPILER_FLAGS}> + $<$:${WARNING_FLAGS} ${COMPILER_FLAGS}> + ${ABI_FLAGS} +) + +if(NOT CMAKE_SIZE) + set(CMAKE_SIZE size) + if(WIN32) + set(FILE_SUFFIX ".exe") + endif() +endif() + +add_custom_command( + TARGET ${TARGET_NAME} + POST_BUILD + COMMAND echo "Build directory: ${CMAKE_BINARY_DIR}" + COMMAND echo "Target OSAL: ${OS_FSFW}" + COMMAND echo "Target Build Type: ${CMAKE_BUILD_TYPE}" + COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX} +) + +include (${CMAKE_CURRENT_SOURCE_DIR}/buildsystem/cmake/BuildType.cmake) +set_build_type() + + + + + From 254b1437e978f7f17a57a07876f3ac7668898ef0 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 27 Dec 2020 15:15:51 +0100 Subject: [PATCH 4/5] repaired windows unittests --- unittest/internal/osal/IntTestMq.cpp | 6 +++--- unittest/internal/osal/IntTestMutex.cpp | 6 +++--- unittest/internal/osal/IntTestSemaphore.cpp | 11 ++++++----- unittest/internal/serialize/IntTestSerialization.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/unittest/internal/osal/IntTestMq.cpp b/unittest/internal/osal/IntTestMq.cpp index 9917285f..fc8e963e 100644 --- a/unittest/internal/osal/IntTestMq.cpp +++ b/unittest/internal/osal/IntTestMq.cpp @@ -1,8 +1,8 @@ #include "IntTestMq.h" -#include "../UnittDefinitions.h" +#include -#include "../../../ipc/MessageQueueIF.h" -#include "../../../ipc/QueueFactory.h" +#include +#include #include diff --git a/unittest/internal/osal/IntTestMutex.cpp b/unittest/internal/osal/IntTestMutex.cpp index d2f8b962..3316de74 100644 --- a/unittest/internal/osal/IntTestMutex.cpp +++ b/unittest/internal/osal/IntTestMutex.cpp @@ -1,10 +1,10 @@ #include "IntTestMutex.h" -#include "../../../ipc/MutexFactory.h" -#include "../UnittDefinitions.h" +#include +#include #if defined(hosted) -#include "../../osal/hosted/Mutex.h" +#include #include #include #endif diff --git a/unittest/internal/osal/IntTestSemaphore.cpp b/unittest/internal/osal/IntTestSemaphore.cpp index 6d2719d5..5a82f78c 100644 --- a/unittest/internal/osal/IntTestSemaphore.cpp +++ b/unittest/internal/osal/IntTestSemaphore.cpp @@ -1,10 +1,11 @@ #include "IntTestSemaphore.h" -#include "../UnittDefinitions.h" +#include -#include "../../../tasks/SemaphoreFactory.h" -#include "../../../serviceinterface/ServiceInterfaceStream.h" -#include "../../../timemanager/Stopwatch.h" +#include +#include +#include +#include void testsemaph::testBinSemaph() { std::string id = "[BinSemaphore]"; @@ -138,7 +139,7 @@ void testsemaph::testCountingSemaphImplementation(SemaphoreIF* countingSemaph, // attempt to take when count is 0, measure time result = countingSemaph->acquire(SemaphoreIF::TimeoutType::WAITING, 10); dur_millis_t time = stopwatch.stop(); - if(abs(time - 10) > 1) { + if(std::abs(static_cast(time - 10)) > 1) { unitt::put_error(id); } } diff --git a/unittest/internal/serialize/IntTestSerialization.cpp b/unittest/internal/serialize/IntTestSerialization.cpp index 793661c5..69d82942 100644 --- a/unittest/internal/serialize/IntTestSerialization.cpp +++ b/unittest/internal/serialize/IntTestSerialization.cpp @@ -1,9 +1,9 @@ #include "IntTestSerialization.h" -#include "../UnittDefinitions.h" +#include -#include "../../../serialize/SerializeElement.h" -#include "../../../serialize/SerialBufferAdapter.h" -#include "../../../serialize/SerializeIF.h" +#include +#include +#include #include From f9bcc835d7e170c97b153422ea80f2a2306dbe16 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Mon, 28 Dec 2020 01:17:03 +0100 Subject: [PATCH 5/5] include updated --- unittest/tests/container/TestFixedArrayList.cpp | 4 ++-- unittest/tests/container/TestFixedOrderedMultimap.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/unittest/tests/container/TestFixedArrayList.cpp b/unittest/tests/container/TestFixedArrayList.cpp index b2baa3e7..1a85f30d 100644 --- a/unittest/tests/container/TestFixedArrayList.cpp +++ b/unittest/tests/container/TestFixedArrayList.cpp @@ -1,5 +1,5 @@ -#include "../../../container/FixedArrayList.h" -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include +#include #include #include diff --git a/unittest/tests/container/TestFixedOrderedMultimap.cpp b/unittest/tests/container/TestFixedOrderedMultimap.cpp index b337a9c8..a47d6efb 100644 --- a/unittest/tests/container/TestFixedOrderedMultimap.cpp +++ b/unittest/tests/container/TestFixedOrderedMultimap.cpp @@ -1,5 +1,5 @@ -#include "../../../container/FixedOrderedMultimap.h" -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include +#include #include #include