From 3ff7ab07ac83e36e1e0f56aa789a69e511ad78d0 Mon Sep 17 00:00:00 2001 From: Matthijs van der Burgh Date: Sat, 4 Mar 2023 21:06:01 +0100 Subject: [PATCH] Make sure tests are run in CI (#1170) * Test(CMake) set NAME and COMMAND in add_test * (CMake) add enable_testing() * (CMake) move cmake_dependent_option up, before using them * (CMake) use YAML_CPP_MAIN_PROJECT in cmake_dependent_option * (CMake) log values regarding tests * (CMake) always find CTest, but don't enable tests * (CMAKE)(temp) fix logging * (actions) set YAML_CPP_BUILD_TESTS for tests * (actions) provide YAML_CPP_BUILD_TESTS to ctest * (actions) set -DYAML_CPP_BUILD_TESTS at build * (actions) don't fail false * (actions) build tests in Test step * (actions) run tests verbose * (CMake) remove temp logging * (actions) split building from running tests * (actions) ctest Debug * (actions) ctest Debug * Remove enable_testing --- .github/workflows/build.yml | 15 ++++++++++++--- CMakeLists.txt | 18 +++++++----------- test/CMakeLists.txt | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf06817..a408a9d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,6 +9,7 @@ permissions: read-all jobs: cmake-build: strategy: + fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] build: [static, shared] @@ -22,6 +23,7 @@ jobs: generator: "MinGW Makefiles" env: YAML_BUILD_SHARED_LIBS: ${{ matrix.build == 'shared' && 'ON' || 'OFF' }} + YAML_CPP_BUILD_TESTS: 'ON' CMAKE_GENERATOR: >- ${{format(matrix.generator != 'Default Generator' && '-G "{0}"' || '', matrix.generator)}} runs-on: ${{ matrix.os }} @@ -36,10 +38,17 @@ jobs: run: | cmake ${{ env.CMAKE_GENERATOR }} -S "${{ github.workspace }}" -B build -DYAML_BUILD_SHARED_LIBS=${{ env.YAML_BUILD_SHARED_LIBS }} cd build && cmake --build . --parallel ${{ steps.cpu-cores.outputs.count }} - - - name: Test + + - name: Build Tests shell: bash - run: cd build && ctest --output-on-failure + run: | + cmake ${{ env.CMAKE_GENERATOR }} -S "${{ github.workspace }}" -B build -DYAML_BUILD_SHARED_LIBS=${{ env.YAML_BUILD_SHARED_LIBS }} -DYAML_CPP_BUILD_TESTS=${{ env.YAML_CPP_BUILD_TESTS }} + cd build && cmake --build . --parallel ${{ steps.cpu-cores.outputs.count }} + + - name: Run Tests + shell: bash + run: | + cd build && ctest -C Debug --output-on-failure --verbose bazel-build: strategy: diff --git a/CMakeLists.txt b/CMakeLists.txt index 42e3bf7..6ef6e8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,27 +18,23 @@ include(CMakePackageConfigHelpers) include(CMakeDependentOption) include(CheckCXXCompilerFlag) include(GNUInstallDirs) +include(CTest) option(YAML_CPP_BUILD_CONTRIB "Enable yaml-cpp contrib in library" ON) option(YAML_CPP_BUILD_TOOLS "Enable parse tools" ON) option(YAML_BUILD_SHARED_LIBS "Build yaml-cpp shared library" ${BUILD_SHARED_LIBS}) option(YAML_CPP_INSTALL "Enable generation of yaml-cpp install targets" ${YAML_CPP_MAIN_PROJECT}) option(YAML_CPP_FORMAT_SOURCE "Format source" ON) - -if (YAML_CPP_BUILD_TESTS) - include(CTest) -endif() - -if (YAML_CPP_FORMAT_SOURCE) - find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) -endif() - cmake_dependent_option(YAML_CPP_BUILD_TESTS - "Enable yaml-cpp tests" ON - "BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) + "Enable yaml-cpp tests" OFF + "BUILD_TESTING;YAML_CPP_MAIN_PROJECT" OFF) cmake_dependent_option(YAML_MSVC_SHARED_RT "MSVC: Build yaml-cpp with shared runtime libs (/MD)" ON "CMAKE_SYSTEM_NAME MATCHES Windows" OFF) + +if (YAML_CPP_FORMAT_SOURCE) + find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format) +endif() if (YAML_BUILD_SHARED_LIBS) set(yaml-cpp-type SHARED) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6735d35..351b03f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -46,7 +46,7 @@ if (NOT DEFINED CMAKE_CXX_STANDARD) endif() -add_test(yaml-cpp::test yaml-cpp-tests) +add_test(NAME yaml-cpp::test COMMAND yaml-cpp-tests) if (build-windows-dll) add_custom_command(