diff --git a/CMakeLists.txt b/CMakeLists.txt index bb3d48b83..1fdbb4ebb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ if(FSFW_BUILD_UNITTESTS) FetchContent_Declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v3.0.0-preview3 + GIT_TAG v3.0.0-preview4 ) FetchContent_MakeAvailable(Catch2) @@ -90,7 +90,7 @@ set(FSFW_CORE_INC_PATH "inc") set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux rtems freertos) -# Configure Files +# For configure files target_include_directories(${LIB_FSFW_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) @@ -152,13 +152,8 @@ else() set(OS_FSFW "host") endif() -if(FSFW_BUILD_UNITTESTS OR FSFW_BUILD_DOCS) - configure_file(src/fsfw/FSFW.h.in fsfw/FSFW.h) - configure_file(src/fsfw/FSFWVersion.h.in fsfw/FSFWVersion.h) -else() - configure_file(src/fsfw/FSFW.h.in FSFW.h) - configure_file(src/fsfw/FSFWVersion.h.in FSFWVersion.h) -endif() +configure_file(src/fsfw/FSFW.h.in fsfw/FSFW.h) +configure_file(src/fsfw/FSFWVersion.h.in fsfw/FSFWVersion.h) message(STATUS "Compiling FSFW for the ${FSFW_OS_NAME} operating system.") diff --git a/automation/Dockerfile b/automation/Dockerfile index 93a4fe7db..a530a671f 100644 --- a/automation/Dockerfile +++ b/automation/Dockerfile @@ -5,4 +5,10 @@ RUN apt-get --yes upgrade #tzdata is a dependency, won't install otherwise ARG DEBIAN_FRONTEND=noninteractive -RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano +RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano iputils-ping + +RUN git clone https://github.com/catchorg/Catch2.git && \ + cd Catch2 && \ + git checkout v3.0.0-preview4 && \ + cmake -Bbuild -H. -DBUILD_TESTING=OFF && \ + cmake --build build/ --target install diff --git a/automation/Jenkinsfile b/automation/Jenkinsfile index d4a8e2ab8..dae2da2cb 100644 --- a/automation/Jenkinsfile +++ b/automation/Jenkinsfile @@ -1,28 +1,23 @@ pipeline { - agent any environment { - BUILDDIR = 'build-unittests' + BUILDDIR = 'build-tests' + } + agent { + dockerfile { + dir 'automation' + //force docker to redownload base image and rebuild all steps instead of caching them + //this way, we always get an up to date docker image one each build + additionalBuildArgs '--no-cache --pull' + reuseNode true + } } stages { - stage('Create Docker') { - agent { - dockerfile { - dir 'automation' - additionalBuildArgs '--no-cache' - reuseNode true - } - } + stage('Clean') { steps { sh 'rm -rf $BUILDDIR' } } stage('Configure') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_UNITTESTS=ON ..' @@ -30,12 +25,6 @@ pipeline { } } stage('Build') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake --build . -j' @@ -43,12 +32,6 @@ pipeline { } } stage('Unittests') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake --build . -- fsfw-tests_coverage -j' @@ -56,12 +39,6 @@ pipeline { } } stage('Valgrind') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests' diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e4670807b..ed2f2522e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,12 +7,3 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ) add_subdirectory(fsfw) - -# Configure File - -target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_BINARY_DIR} -) -target_include_directories(${LIB_FSFW_NAME} INTERFACE - ${CMAKE_CURRENT_BINARY_DIR} -) diff --git a/tests/src/fsfw_tests/unit/hal/testCommandExecutor.cpp b/tests/src/fsfw_tests/unit/hal/testCommandExecutor.cpp index 0c8253895..a72477f00 100644 --- a/tests/src/fsfw_tests/unit/hal/testCommandExecutor.cpp +++ b/tests/src/fsfw_tests/unit/hal/testCommandExecutor.cpp @@ -59,7 +59,11 @@ TEST_CASE( "Command Executor" , "[cmd-exec]") { REQUIRE(outputBuffer.getAvailableReadData() == 12); uint8_t readBuffer[32]; REQUIRE(outputBuffer.readData(readBuffer, 12) == HasReturnvaluesIF::RETURN_OK); - CHECK(strcmp(reinterpret_cast(readBuffer), "Hello World\n") == 0); + std::string readString(reinterpret_cast(readBuffer)); + std::string cmpString = "Hello World\n"; + //int cmpResult = strcmp(reinterpret_cast(readBuffer), cmpString.c_str()); + int cmpResult = (readString == cmpString); + CHECK(cmpResult); outputBuffer.deleteData(12, true); // Test more complex command result = cmdExecutor.load("ping -c 1 localhost", false, false);