Skip to content

Commit

Permalink
Testing more C++ standards.
Browse files Browse the repository at this point in the history
  • Loading branch information
FranckRJ committed Apr 2, 2023
1 parent 74d196f commit 91e5ad1
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 17 deletions.
36 changes: 29 additions & 7 deletions .github/workflows/ci_linux_clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,56 @@ jobs:
matrix:
config:
- {
name: "Ubuntu 20.04 Clang 10 Debug",
name: "Ubuntu 20.04 Clang 10",
os: ubuntu-20.04,
build_type: Debug,
cc: "clang-10", cxx: "clang++-10"
}
- {
name: "Ubuntu 20.04 Clang 11 Debug",
name: "Ubuntu 20.04 Clang 11",
os: ubuntu-20.04,
build_type: Debug,
cc: "clang-11", cxx: "clang++-11"
}
- {
name: "Ubuntu 20.04 Clang 12 Debug",
name: "Ubuntu 20.04 Clang 12",
os: ubuntu-20.04,
build_type: Debug,
cc: "clang-12", cxx: "clang++-12"
}
- {
name: "Ubuntu 22.04 Clang 13 Debug",
name: "Ubuntu 22.04 Clang 13",
os: ubuntu-22.04,
build_type: Debug,
cc: "clang-13", cxx: "clang++-13"
}
- {
name: "Ubuntu 22.04 Clang 14 Debug",
name: "Ubuntu 22.04 Clang 14 C++11",
os: ubuntu-22.04,
build_type: Debug,
cc: "clang-14", cxx: "clang++-14"
cc: "clang-14", cxx: "clang++-14",
cxx_standard: 11
}
- {
name: "Ubuntu 22.04 Clang 14 C++14",
os: ubuntu-22.04,
build_type: Debug,
cc: "clang-14", cxx: "clang++-14",
cxx_standard: 14
}
- {
name: "Ubuntu 22.04 Clang 14 C++17",
os: ubuntu-22.04,
build_type: Debug,
cc: "clang-14", cxx: "clang++-14",
cxx_standard: 17
}
- {
name: "Ubuntu 22.04 Clang 14 C++20",
os: ubuntu-22.04,
build_type: Debug,
cc: "clang-14", cxx: "clang++-14",
cxx_standard: 20
}
steps:
- uses: actions/checkout@v2
Expand All @@ -53,7 +75,7 @@ jobs:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DENABLE_TESTING=ON
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DENABLE_TESTING=ON -DOVERRIDE_CXX_STANDARD_FOR_TESTS=${{ matrix.config.cxx_standard }}
cmake --build build -j
- name: Run tests
run: |
Expand Down
34 changes: 28 additions & 6 deletions .github/workflows/ci_linux_gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,50 @@ jobs:
matrix:
config:
- {
name: "Ubuntu 20.04 GCC 9 Debug",
name: "Ubuntu 20.04 GCC 9",
os: ubuntu-20.04,
build_type: Debug,
cc: "gcc-9", cxx: "g++-9"
}
- {
name: "Ubuntu 20.04 GCC 10 Debug",
name: "Ubuntu 20.04 GCC 10",
os: ubuntu-20.04,
build_type: Debug,
cc: "gcc-10", cxx: "g++-10"
}
- {
name: "Ubuntu 22.04 GCC 11 Debug",
name: "Ubuntu 22.04 GCC 11",
os: ubuntu-22.04,
build_type: Debug,
cc: "gcc-11", cxx: "g++-11"
}
- {
name: "Ubuntu 22.04 GCC 12 Debug",
name: "Ubuntu 22.04 GCC 12 C++11",
os: ubuntu-22.04,
build_type: Debug,
cc: "gcc-12", cxx: "g++-12"
cc: "gcc-12", cxx: "g++-12",
cxx_standard: 11
}
- {
name: "Ubuntu 22.04 GCC 12 C++14",
os: ubuntu-22.04,
build_type: Debug,
cc: "gcc-12", cxx: "g++-12",
cxx_standard: 14
}
- {
name: "Ubuntu 22.04 GCC 12 C++17",
os: ubuntu-22.04,
build_type: Debug,
cc: "gcc-12", cxx: "g++-12",
cxx_standard: 17
}
- {
name: "Ubuntu 22.04 GCC 12 C++20",
os: ubuntu-22.04,
build_type: Debug,
cc: "gcc-12", cxx: "g++-12",
cxx_standard: 20
}
steps:
- uses: actions/checkout@v2
Expand All @@ -47,7 +69,7 @@ jobs:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DENABLE_TESTING=ON
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DENABLE_TESTING=ON -DOVERRIDE_CXX_STANDARD_FOR_TESTS=${{ matrix.config.cxx_standard }}
cmake --build build -j
- name: Run tests
run: |
Expand Down
33 changes: 29 additions & 4 deletions .github/workflows/ci_windows_msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,49 @@ jobs:
matrix:
config:
- {
name: "Windows 2019 MSVC 2019 Win32 Debug",
name: "Windows 2019 MSVC 2019 Win32",
os: windows-2019,
build_type: Debug,
generator: "Visual Studio 16 2019",
architecture: "Win32"
}
- {
name: "Windows 2022 MSVC 2022 Win32 Debug",
name: "Windows 2022 MSVC 2022 Win32 C++11",
os: windows-2022,
build_type: Debug,
generator: "Visual Studio 17 2022",
architecture: "Win32"
architecture: "Win32",
cxx_standard: 11
}
- {
name: "Windows 2022 MSVC 2022 Win32 C++14",
os: windows-2022,
build_type: Debug,
generator: "Visual Studio 17 2022",
architecture: "Win32",
cxx_standard: 14
}
- {
name: "Windows 2022 MSVC 2022 Win32 C++17",
os: windows-2022,
build_type: Debug,
generator: "Visual Studio 17 2022",
architecture: "Win32",
cxx_standard: 17
}
- {
name: "Windows 2022 MSVC 2022 Win32 C++20",
os: windows-2022,
build_type: Debug,
generator: "Visual Studio 17 2022",
architecture: "Win32",
cxx_standard: 20
}
steps:
- uses: actions/checkout@v2
- name: Build project
run: |
cmake -S . -B build -G "${{ matrix.config.generator }}" -A ${{ matrix.config.architecture }} -DENABLE_TESTING=ON
cmake -S . -B build -G "${{ matrix.config.generator }}" -A ${{ matrix.config.architecture }} -DENABLE_TESTING=ON -DOVERRIDE_CXX_STANDARD_FOR_TESTS=${{ matrix.config.cxx_standard }}
cmake --build build --config ${{ matrix.config.build_type }} -j
- name: Run tests
run: |
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ project(FakeIt VERSION 2.3.2 LANGUAGES CXX)

option(ENABLE_COVERAGE "Enable coverage reporting for gcc/clang." OFF)
option(ENABLE_TESTING "Enable build of tests." OFF)
option(OVERRIDE_CXX_STANDARD_FOR_TESTS "Override the C++ standard used for building tests." "")

# Directory containing main targets of FakeIt.
add_subdirectory(include)
Expand Down
5 changes: 5 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ elseif(MSVC)
target_compile_options(FakeIt_tests PRIVATE /W3 /sdl /Od)
endif()

if(OVERRIDE_CXX_STANDARD_FOR_TESTS)
set_target_properties(FakeIt_tests PROPERTIES CXX_STANDARD ${OVERRIDE_CXX_STANDARD_FOR_TESTS})
message(STATUS "Building tests in C++${OVERRIDE_CXX_STANDARD_FOR_TESTS}.")
endif()

if(ENABLE_COVERAGE)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang$")
target_compile_options(FakeIt_tests PRIVATE --coverage)
Expand Down

0 comments on commit 91e5ad1

Please sign in to comment.