diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ed5f5bc..3b72173 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -22,7 +22,10 @@ jobs: ctest --verbose --test-dir build -C Release Ubuntu: - runs-on: ubuntu-latest + strategy: + matrix: + runner: [ubuntu-latest, ubuntu-24.04-arm] + runs-on: ${{ matrix.runner }} steps: - name: Checkout code uses: actions/checkout@v5 @@ -44,7 +47,7 @@ jobs: ctest --verbose --test-dir build-system-gtest MacOS: - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout code uses: actions/checkout@v5 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8e09f0c..35b9bd2 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,6 +11,14 @@ else() URL_HASH SHA1=0ac421f2ec11af38b0fff0f1992184032731a8bc ) FetchContent_MakeAvailable(googletest) + + # GoogleTest v1.14.0+ requires C++17 + # Set C++ standard on GoogleTest targets to match our tests + set_target_properties(gtest gtest_main PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + ) endif() set(TEST_SOURCES @@ -29,6 +37,12 @@ endif() add_executable(tests ${TEST_SOURCES}) +set_target_properties(tests PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF +) + add_test(NAME tests COMMAND tests) target_link_libraries(tests PRIVATE ${PROJECT_NAME} GTest::gtest_main)