mirror of
https://github.com/catchorg/Catch2.git
synced 2025-04-27 11:25:43 +02:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8039e3ea1e | ||
![]() |
1d3bfb324d | ||
![]() |
5c97a8583d | ||
![]() |
8cfca70ae8 | ||
![]() |
6aac11e17d | ||
![]() |
ec571515c8 | ||
![]() |
edb6f80867 | ||
![]() |
25b86ef3fd | ||
![]() |
4c8671cfbb | ||
![]() |
5b3b228603 |
@ -1,8 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
project(PackageTest CXX)
|
project(PackageTest LANGUAGES CXX)
|
||||||
|
|
||||||
find_package(Catch2 CONFIG REQUIRED)
|
find_package(Catch2 CONFIG REQUIRED)
|
||||||
|
|
||||||
add_executable(test_package test_package.cpp)
|
add_executable(test_package test_package.cpp)
|
||||||
target_link_libraries(test_package Catch2::Catch2WithMain)
|
target_link_libraries(test_package Catch2::Catch2WithMain)
|
||||||
target_compile_features(test_package PRIVATE cxx_std_14)
|
|
||||||
|
1
.github/workflows/linux-bazel-builds.yml
vendored
1
.github/workflows/linux-bazel-builds.yml
vendored
@ -7,6 +7,7 @@ jobs:
|
|||||||
name: Linux Ubuntu 22.04 Bazel build <GCC 11.2.0>
|
name: Linux Ubuntu 22.04 Bazel build <GCC 11.2.0>
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
compilation_mode: [fastbuild, dbg, opt]
|
compilation_mode: [fastbuild, dbg, opt]
|
||||||
|
|
||||||
|
1
.github/workflows/linux-meson-builds.yml
vendored
1
.github/workflows/linux-meson-builds.yml
vendored
@ -7,6 +7,7 @@ jobs:
|
|||||||
name: meson ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
|
name: meson ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
cxx:
|
cxx:
|
||||||
- g++-11
|
- g++-11
|
||||||
|
57
.github/workflows/linux-other-builds.yml
vendored
57
.github/workflows/linux-other-builds.yml
vendored
@ -8,65 +8,66 @@ on: [push, pull_request]
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: ${{matrix.build_description}}, ${{matrix.cxx}}, C++${{matrix.std}} ${{matrix.build_type}}
|
name: ${{matrix.build_description}}, ${{matrix.cxx}}, C++${{matrix.std}} ${{matrix.build_type}}
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
# We add builds one by one in this case, because there are no
|
# We add builds one by one in this case, because there are no
|
||||||
# dimensions that are shared across the builds
|
# dimensions that are shared across the builds
|
||||||
include:
|
include:
|
||||||
|
|
||||||
# Single surrogate header build
|
# Single surrogate header build
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_description: Surrogates build
|
build_description: Surrogates build
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 14
|
std: 14
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
cmake_configurations: -DCATCH_BUILD_SURROGATES=ON
|
cmake_configurations: -DCATCH_BUILD_SURROGATES=ON
|
||||||
|
|
||||||
# Extras and examples with gcc-7
|
# Extras and examples with gcc-11
|
||||||
- cxx: g++-7
|
- cxx: g++-11
|
||||||
build_description: Extras + Examples
|
build_description: Extras + Examples
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 14
|
std: 14
|
||||||
other_pkgs: g++-7
|
other_pkgs: g++-11
|
||||||
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
||||||
- cxx: g++-7
|
- cxx: g++-11
|
||||||
build_description: Extras + Examples
|
build_description: Extras + Examples
|
||||||
build_type: Release
|
build_type: Release
|
||||||
std: 14
|
std: 14
|
||||||
other_pkgs: g++-7
|
other_pkgs: g++-11
|
||||||
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
||||||
|
|
||||||
# Extras and examples with Clang-10
|
# Extras and examples with Clang-14
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_description: Extras + Examples
|
build_description: Extras + Examples
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 17
|
std: 17
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_description: Extras + Examples
|
build_description: Extras + Examples
|
||||||
build_type: Release
|
build_type: Release
|
||||||
std: 17
|
std: 17
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
||||||
|
|
||||||
# Configure tests with Clang-10
|
# Configure tests with Clang-14
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_description: CMake configuration tests
|
build_description: CMake configuration tests
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 14
|
std: 14
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
cmake_configurations: -DCATCH_ENABLE_CONFIGURE_TESTS=ON
|
cmake_configurations: -DCATCH_ENABLE_CONFIGURE_TESTS=ON
|
||||||
|
|
||||||
# Valgrind test Clang-10
|
# Valgrind test Clang-14
|
||||||
- cxx: clang++-10
|
# - cxx: clang++-14
|
||||||
build_description: Valgrind tests
|
# build_description: Valgrind tests
|
||||||
build_type: Debug
|
# build_type: Debug
|
||||||
std: 14
|
# std: 14
|
||||||
other_pkgs: clang-10 valgrind
|
# other_pkgs: clang-14 valgrind
|
||||||
cmake_configurations: -DMEMORYCHECK_COMMAND=`which valgrind` -DMEMORYCHECK_COMMAND_OPTIONS="-q --track-origins=yes --leak-check=full --num-callers=50 --show-leak-kinds=definite --error-exitcode=1"
|
# cmake_configurations: -DMEMORYCHECK_COMMAND=`which valgrind` -DMEMORYCHECK_COMMAND_OPTIONS="-q --track-origins=yes --leak-check=full --num-callers=50 --show-leak-kinds=definite --error-exitcode=1"
|
||||||
other_ctest_args: -T memcheck -LE uses-python
|
# other_ctest_args: -T memcheck -LE uses-python
|
||||||
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -85,7 +86,7 @@ jobs:
|
|||||||
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
|
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
|
||||||
# This is important
|
# This is important
|
||||||
run: |
|
run: |
|
||||||
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
cmake -Bbuild -S$GITHUB_WORKSPACE \
|
||||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||||
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
||||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||||
@ -99,10 +100,8 @@ jobs:
|
|||||||
run: ninja
|
run: ninja
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
|
||||||
CTEST_OUTPUT_ON_FAILURE: 1
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: ctest -C ${{matrix.build_type}} -j `nproc` ${{matrix.other_ctest_args}}
|
run: ctest -C ${{matrix.build_type}} -j `nproc` ${{matrix.other_ctest_args}} --output-on-failure
|
||||||
clang-tidy:
|
clang-tidy:
|
||||||
name: clang-tidy ${{matrix.version}}, ${{matrix.build_description}}, C++${{matrix.std}} ${{matrix.build_type}}
|
name: clang-tidy ${{matrix.version}}, ${{matrix.build_description}}, C++${{matrix.std}} ${{matrix.build_type}}
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@ -134,7 +133,7 @@ jobs:
|
|||||||
clangtidy="clang-tidy-${{matrix.version}};-use-color"
|
clangtidy="clang-tidy-${{matrix.version}};-use-color"
|
||||||
# Use a dummy compiler/linker/ar/ranlib to effectively disable the
|
# Use a dummy compiler/linker/ar/ranlib to effectively disable the
|
||||||
# compilation and only run clang-tidy.
|
# compilation and only run clang-tidy.
|
||||||
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
cmake -Bbuild -S$GITHUB_WORKSPACE \
|
||||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||||
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
||||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||||
|
77
.github/workflows/linux-simple-builds.yml
vendored
77
.github/workflows/linux-simple-builds.yml
vendored
@ -5,28 +5,29 @@ on: [push, pull_request]
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
|
name: ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
cxx:
|
cxx:
|
||||||
- g++-5
|
|
||||||
- g++-6
|
|
||||||
- g++-7
|
- g++-7
|
||||||
- g++-8
|
- g++-8
|
||||||
- g++-9
|
- g++-9
|
||||||
- g++-10
|
- g++-10
|
||||||
|
- g++-11
|
||||||
|
- g++-12
|
||||||
- clang++-6.0
|
- clang++-6.0
|
||||||
- clang++-7
|
- clang++-7
|
||||||
- clang++-8
|
- clang++-8
|
||||||
- clang++-9
|
- clang++-9
|
||||||
- clang++-10
|
- clang++-10
|
||||||
|
- clang++-11
|
||||||
|
- clang++-12
|
||||||
|
- clang++-13
|
||||||
|
- clang++-14
|
||||||
build_type: [Debug, Release]
|
build_type: [Debug, Release]
|
||||||
std: [14]
|
std: [14]
|
||||||
include:
|
include:
|
||||||
- cxx: g++-5
|
|
||||||
other_pkgs: g++-5
|
|
||||||
- cxx: g++-6
|
|
||||||
other_pkgs: g++-6
|
|
||||||
- cxx: g++-7
|
- cxx: g++-7
|
||||||
other_pkgs: g++-7
|
other_pkgs: g++-7
|
||||||
- cxx: g++-8
|
- cxx: g++-8
|
||||||
@ -35,6 +36,10 @@ jobs:
|
|||||||
other_pkgs: g++-9
|
other_pkgs: g++-9
|
||||||
- cxx: g++-10
|
- cxx: g++-10
|
||||||
other_pkgs: g++-10
|
other_pkgs: g++-10
|
||||||
|
- cxx: g++-11
|
||||||
|
other_pkgs: g++-11
|
||||||
|
- cxx: g++-12
|
||||||
|
other_pkgs: g++-12
|
||||||
- cxx: clang++-6.0
|
- cxx: clang++-6.0
|
||||||
other_pkgs: clang-6.0
|
other_pkgs: clang-6.0
|
||||||
- cxx: clang++-7
|
- cxx: clang++-7
|
||||||
@ -45,51 +50,47 @@ jobs:
|
|||||||
other_pkgs: clang-9
|
other_pkgs: clang-9
|
||||||
- cxx: clang++-10
|
- cxx: clang++-10
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-10
|
||||||
# Clang 6 + C++17
|
- cxx: clang++-11
|
||||||
# does not work with the default libstdc++ version thanks
|
other_pkgs: clang-11
|
||||||
# to a disagreement on variant implementation.
|
- cxx: clang++-12
|
||||||
# - cxx: clang++-6.0
|
other_pkgs: clang-12
|
||||||
# build_type: Debug
|
- cxx: clang++-13
|
||||||
# std: 17
|
other_pkgs: clang-13
|
||||||
# other_pkgs: clang-6.0
|
- cxx: clang++-14
|
||||||
# - cxx: clang++-6.0
|
other_pkgs: clang-14
|
||||||
# build_type: Release
|
# Clang 14 + C++17
|
||||||
# std: 17
|
- cxx: clang++-14
|
||||||
# other_pkgs: clang-6.0
|
|
||||||
# Clang 10 + C++17
|
|
||||||
- cxx: clang++-10
|
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 17
|
std: 17
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_type: Release
|
build_type: Release
|
||||||
std: 17
|
std: 17
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 20
|
std: 20
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
- cxx: clang++-10
|
- cxx: clang++-14
|
||||||
build_type: Release
|
build_type: Release
|
||||||
std: 20
|
std: 20
|
||||||
other_pkgs: clang-10
|
other_pkgs: clang-14
|
||||||
- cxx: g++-10
|
- cxx: g++-11
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
std: 20
|
std: 20
|
||||||
other_pkgs: g++-10
|
other_pkgs: g++-11
|
||||||
- cxx: g++-10
|
- cxx: g++-11
|
||||||
build_type: Release
|
build_type: Release
|
||||||
std: 20
|
std: 20
|
||||||
other_pkgs: g++-10
|
other_pkgs: g++-11
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Add repositories for older GCC
|
- name: Add repositories for older compilers
|
||||||
run: |
|
run: |
|
||||||
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ bionic main'
|
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ focal main'
|
||||||
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ bionic universe'
|
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ focal universe'
|
||||||
if: ${{ matrix.cxx == 'g++-5' || matrix.cxx == 'g++-6' }}
|
|
||||||
|
|
||||||
- name: Prepare environment
|
- name: Prepare environment
|
||||||
run: |
|
run: |
|
||||||
@ -104,7 +105,7 @@ jobs:
|
|||||||
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
|
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
|
||||||
# This is important
|
# This is important
|
||||||
run: |
|
run: |
|
||||||
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
cmake -Bbuild -S$GITHUB_WORKSPACE \
|
||||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||||
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
||||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||||
@ -117,7 +118,5 @@ jobs:
|
|||||||
run: ninja
|
run: ninja
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
|
||||||
CTEST_OUTPUT_ON_FAILURE: 1
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: ctest -C ${{matrix.build_type}} -j `nproc`
|
run: ctest -C ${{matrix.build_type}} -j `nproc` --output-on-failure
|
||||||
|
7
.github/workflows/mac-builds-m1.yml
vendored
7
.github/workflows/mac-builds-m1.yml
vendored
@ -6,6 +6,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
cxx:
|
cxx:
|
||||||
- clang++
|
- clang++
|
||||||
@ -25,7 +26,7 @@ jobs:
|
|||||||
CXX: ${{matrix.cxx}}
|
CXX: ${{matrix.cxx}}
|
||||||
CXXFLAGS: ${{matrix.cxxflags}}
|
CXXFLAGS: ${{matrix.cxxflags}}
|
||||||
run: |
|
run: |
|
||||||
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
cmake -Bbuild -S$GITHUB_WORKSPACE \
|
||||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||||
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
||||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||||
@ -38,7 +39,5 @@ jobs:
|
|||||||
run: make -j `sysctl -n hw.ncpu`
|
run: make -j `sysctl -n hw.ncpu`
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
|
||||||
CTEST_OUTPUT_ON_FAILURE: 1
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: ctest -C ${{matrix.build_type}} -j `sysctl -n hw.ncpu`
|
run: ctest -C ${{matrix.build_type}} -j `sysctl -n hw.ncpu` --output-on-failure
|
||||||
|
7
.github/workflows/mac-builds.yml
vendored
7
.github/workflows/mac-builds.yml
vendored
@ -10,6 +10,7 @@ jobs:
|
|||||||
# the Intel based images for free to OSS projects.
|
# the Intel based images for free to OSS projects.
|
||||||
runs-on: macos-13
|
runs-on: macos-13
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
cxx:
|
cxx:
|
||||||
- clang++
|
- clang++
|
||||||
@ -29,7 +30,7 @@ jobs:
|
|||||||
CXX: ${{matrix.cxx}}
|
CXX: ${{matrix.cxx}}
|
||||||
CXXFLAGS: ${{matrix.cxxflags}}
|
CXXFLAGS: ${{matrix.cxxflags}}
|
||||||
run: |
|
run: |
|
||||||
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
cmake -Bbuild -S$GITHUB_WORKSPACE \
|
||||||
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
||||||
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
||||||
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
||||||
@ -42,7 +43,5 @@ jobs:
|
|||||||
run: make -j `sysctl -n hw.ncpu`
|
run: make -j `sysctl -n hw.ncpu`
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
|
||||||
CTEST_OUTPUT_ON_FAILURE: 1
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
run: ctest -C ${{matrix.build_type}} -j `sysctl -n hw.ncpu`
|
run: ctest -C ${{matrix.build_type}} -j `sysctl -n hw.ncpu` --output-on-failure
|
||||||
|
@ -5,7 +5,7 @@ on: [push, pull_request]
|
|||||||
jobs:
|
jobs:
|
||||||
conan_builds:
|
conan_builds:
|
||||||
name: Conan ${{matrix.conan_version}}
|
name: Conan ${{matrix.conan_version}}
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
conan_version:
|
conan_version:
|
||||||
|
2
.github/workflows/validate-header-guards.yml
vendored
2
.github/workflows/validate-header-guards.yml
vendored
@ -5,7 +5,7 @@ on: [push, pull_request]
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
# Set the type of machine to run on
|
# Set the type of machine to run on
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
|
5
.github/workflows/windows-simple-builds.yml
vendored
5
.github/workflows/windows-simple-builds.yml
vendored
@ -7,6 +7,7 @@ jobs:
|
|||||||
name: ${{matrix.os}}, ${{matrix.std}}, ${{matrix.build_type}}, ${{matrix.platform}}
|
name: ${{matrix.os}}, ${{matrix.std}}, ${{matrix.build_type}}, ${{matrix.platform}}
|
||||||
runs-on: ${{matrix.os}}
|
runs-on: ${{matrix.os}}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [windows-2019, windows-2022]
|
os: [windows-2019, windows-2022]
|
||||||
platform: [Win32, x64]
|
platform: [Win32, x64]
|
||||||
@ -31,7 +32,5 @@ jobs:
|
|||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
env:
|
run: ctest -C ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS% --output-on-failure
|
||||||
CTEST_OUTPUT_ON_FAILURE: 1
|
|
||||||
run: ctest -C ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
|
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
@PACKAGE_INIT@
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
|
||||||
# Avoid repeatedly including the targets
|
# Avoid repeatedly including the targets
|
||||||
if(NOT TARGET Catch2::Catch2)
|
if(NOT TARGET Catch2::Catch2)
|
||||||
# Provide path for scripts
|
# Provide path for scripts
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#
|
#
|
||||||
# For detailed docs look into docs/configuration.md
|
# For detailed docs look into docs/configuration.md
|
||||||
|
|
||||||
|
|
||||||
macro(AddOverridableConfigOption OptionBaseName)
|
macro(AddOverridableConfigOption OptionBaseName)
|
||||||
option(CATCH_CONFIG_${OptionBaseName} "Read docs/configuration.md for details" OFF)
|
option(CATCH_CONFIG_${OptionBaseName} "Read docs/configuration.md for details" OFF)
|
||||||
option(CATCH_CONFIG_NO_${OptionBaseName} "Read docs/configuration.md for details" OFF)
|
option(CATCH_CONFIG_NO_${OptionBaseName} "Read docs/configuration.md for details" OFF)
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
function(add_cxx_flag_if_supported_to_targets flagname targets)
|
function(add_cxx_flag_if_supported_to_targets flagname targets)
|
||||||
string(MAKE_C_IDENTIFIER ${flagname} flag_identifier )
|
string(MAKE_C_IDENTIFIER ${flagname} flag_identifier)
|
||||||
check_cxx_compiler_flag("${flagname}" HAVE_FLAG_${flag_identifier})
|
check_cxx_compiler_flag("${flagname}" HAVE_FLAG_${flag_identifier})
|
||||||
|
|
||||||
if (HAVE_FLAG_${flag_identifier})
|
if(HAVE_FLAG_${flag_identifier})
|
||||||
foreach(target ${targets})
|
foreach(target ${targets})
|
||||||
target_compile_options(${target} PRIVATE ${flagname})
|
target_compile_options(${target} PRIVATE ${flagname})
|
||||||
endforeach()
|
endforeach()
|
||||||
@ -24,25 +24,24 @@ function(add_warnings_to_targets targets)
|
|||||||
LIST(LENGTH targets TARGETS_LEN)
|
LIST(LENGTH targets TARGETS_LEN)
|
||||||
# For now we just assume 2 possibilities: msvc and msvc-like compilers,
|
# For now we just assume 2 possibilities: msvc and msvc-like compilers,
|
||||||
# and other.
|
# and other.
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
foreach(target ${targets})
|
foreach(target ${targets})
|
||||||
# Force MSVC to consider everything as encoded in utf-8
|
# Force MSVC to consider everything as encoded in utf-8
|
||||||
target_compile_options( ${target} PRIVATE /utf-8 )
|
target_compile_options(${target} PRIVATE /utf-8)
|
||||||
# Enable Werror equivalent
|
# Enable Werror equivalent
|
||||||
if (CATCH_ENABLE_WERROR)
|
if(CATCH_ENABLE_WERROR)
|
||||||
target_compile_options( ${target} PRIVATE /WX )
|
target_compile_options(${target} PRIVATE /WX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# MSVC is currently handled specially
|
# MSVC is currently handled specially
|
||||||
if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
|
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||||
STRING(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # override default warning level
|
STRING(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # override default warning level
|
||||||
target_compile_options( ${target} PRIVATE /w44265 /w44061 /w44062 /w45038 )
|
target_compile_options(${target} PRIVATE /w44265 /w44061 /w44062 /w45038)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
set(CHECKED_WARNING_FLAGS
|
set(CHECKED_WARNING_FLAGS
|
||||||
"-Wabsolute-value"
|
"-Wabsolute-value"
|
||||||
"-Wall"
|
"-Wall"
|
||||||
@ -103,10 +102,10 @@ function(add_warnings_to_targets targets)
|
|||||||
add_cxx_flag_if_supported_to_targets(${warning} "${targets}")
|
add_cxx_flag_if_supported_to_targets(${warning} "${targets}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if (CATCH_ENABLE_WERROR)
|
if(CATCH_ENABLE_WERROR)
|
||||||
foreach(target ${targets})
|
foreach(target ${targets})
|
||||||
# Enable Werror equivalent
|
# Enable Werror equivalent
|
||||||
target_compile_options( ${target} PRIVATE -Werror )
|
target_compile_options(${target} PRIVATE -Werror)
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@ -26,11 +26,10 @@ cmake_dependent_option(CATCH_BUILD_SURROGATES "Enable generating and building su
|
|||||||
cmake_dependent_option(CATCH_ENABLE_CONFIGURE_TESTS "Enable CMake configuration tests. WARNING: VERY EXPENSIVE" OFF "CATCH_DEVELOPMENT_BUILD" OFF)
|
cmake_dependent_option(CATCH_ENABLE_CONFIGURE_TESTS "Enable CMake configuration tests. WARNING: VERY EXPENSIVE" OFF "CATCH_DEVELOPMENT_BUILD" OFF)
|
||||||
cmake_dependent_option(CATCH_ENABLE_CMAKE_HELPER_TESTS "Enable CMake helper tests. WARNING: VERY EXPENSIVE" OFF "CATCH_DEVELOPMENT_BUILD" OFF)
|
cmake_dependent_option(CATCH_ENABLE_CMAKE_HELPER_TESTS "Enable CMake helper tests. WARNING: VERY EXPENSIVE" OFF "CATCH_DEVELOPMENT_BUILD" OFF)
|
||||||
|
|
||||||
|
|
||||||
# Catch2's build breaks if done in-tree. You probably should not build
|
# Catch2's build breaks if done in-tree. You probably should not build
|
||||||
# things in tree anyway, but we can allow projects that include Catch2
|
# things in tree anyway, but we can allow projects that include Catch2
|
||||||
# as a subproject to build in-tree as long as it is not in our tree.
|
# as a subproject to build in-tree as long as it is not in our tree.
|
||||||
if (CMAKE_BINARY_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
if(CMAKE_BINARY_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||||
message(FATAL_ERROR "Building in-source is not supported! Create a build dir and remove ${CMAKE_SOURCE_DIR}/CMakeCache.txt")
|
message(FATAL_ERROR "Building in-source is not supported! Create a build dir and remove ${CMAKE_SOURCE_DIR}/CMakeCache.txt")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ project(Catch2
|
|||||||
# Then we also add path that we use to configure the project, but is of
|
# Then we also add path that we use to configure the project, but is of
|
||||||
# no use to top level projects.
|
# no use to top level projects.
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/extras")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/extras")
|
||||||
if (NOT NOT_SUBPROJECT)
|
if(NOT NOT_SUBPROJECT)
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
|
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
|
||||||
@ -70,7 +69,6 @@ if(CATCH_TEST_USE_WMAIN)
|
|||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:wmainCRTStartup")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ENTRY:wmainCRTStartup")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Basic paths
|
# Basic paths
|
||||||
set(CATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
set(CATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
set(SOURCES_DIR ${CATCH_DIR}/src/catch2)
|
set(SOURCES_DIR ${CATCH_DIR}/src/catch2)
|
||||||
@ -80,9 +78,9 @@ set(SELF_TEST_DIR ${CATCH_DIR}/tests/SelfTest)
|
|||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
# Build tests only if requested
|
# Build tests only if requested
|
||||||
if (BUILD_TESTING AND CATCH_BUILD_TESTING AND NOT_SUBPROJECT)
|
if(BUILD_TESTING AND CATCH_BUILD_TESTING AND NOT_SUBPROJECT)
|
||||||
find_package(PythonInterp 3 REQUIRED)
|
find_package(PythonInterp 3 REQUIRED)
|
||||||
if (NOT PYTHONINTERP_FOUND)
|
if(NOT PYTHONINTERP_FOUND)
|
||||||
message(FATAL_ERROR "Python not found, but required for tests")
|
message(FATAL_ERROR "Python not found, but required for tests")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_FOLDER "tests")
|
set(CMAKE_FOLDER "tests")
|
||||||
@ -104,14 +102,14 @@ if(CATCH_BUILD_FUZZERS)
|
|||||||
add_subdirectory(fuzzing)
|
add_subdirectory(fuzzing)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CATCH_DEVELOPMENT_BUILD)
|
if(CATCH_DEVELOPMENT_BUILD)
|
||||||
add_warnings_to_targets("${CATCH_WARNING_TARGETS}")
|
add_warnings_to_targets("${CATCH_WARNING_TARGETS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Only perform the installation steps when Catch is not being used as
|
# Only perform the installation steps when Catch is not being used as
|
||||||
# a subproject via `add_subdirectory`, or the destinations will break,
|
# a subproject via `add_subdirectory`, or the destinations will break,
|
||||||
# see https://github.com/catchorg/Catch2/issues/1373
|
# see https://github.com/catchorg/Catch2/issues/1373
|
||||||
if (NOT_SUBPROJECT)
|
if(NOT_SUBPROJECT)
|
||||||
configure_package_config_file(
|
configure_package_config_file(
|
||||||
${CMAKE_CURRENT_LIST_DIR}/CMake/Catch2Config.cmake.in
|
${CMAKE_CURRENT_LIST_DIR}/CMake/Catch2Config.cmake.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/Catch2Config.cmake
|
${CMAKE_CURRENT_BINARY_DIR}/Catch2Config.cmake
|
||||||
@ -192,7 +190,5 @@ if (NOT_SUBPROJECT)
|
|||||||
|
|
||||||
set(CPACK_PACKAGE_CONTACT "https://github.com/catchorg/Catch2/")
|
set(CPACK_PACKAGE_CONTACT "https://github.com/catchorg/Catch2/")
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
include( CPack )
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"displayName": "Basic development build",
|
"displayName": "Basic development build",
|
||||||
"description": "Enables development build with basic tests that are cheap to build and run",
|
"description": "Enables development build with basic tests that are cheap to build and run",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
||||||
"CATCH_DEVELOPMENT_BUILD": "ON"
|
"CATCH_DEVELOPMENT_BUILD": "ON"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
11
MAINTAINERS.md
Normal file
11
MAINTAINERS.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a id="top"></a>
|
||||||
|
# Catch2 Maintainers
|
||||||
|
|
||||||
|
## Current
|
||||||
|
|
||||||
|
* Chris Thrasher ([@christhrasher](https://github.com/ChrisThrasher)), gpg key: 56FB686C9DFC8E2C
|
||||||
|
* Martin Hořeňovský ([@horenmar](https://github.com/horenmar)), gpg key: E29C46F3B8A7502860793B7DECC9C20E314B2360
|
||||||
|
|
||||||
|
## Retired
|
||||||
|
|
||||||
|
* Phil Nash ([@philsquared](https://github.com/philsquared))
|
@ -21,7 +21,10 @@ The "Generators" `TEST_CASE` will be entered 3 times, and the value of
|
|||||||
`i` will be 1, 3, and 5 in turn. `GENERATE`s can also be used multiple
|
`i` will be 1, 3, and 5 in turn. `GENERATE`s can also be used multiple
|
||||||
times at the same scope, in which case the result will be a cartesian
|
times at the same scope, in which case the result will be a cartesian
|
||||||
product of all elements in the generators. This means that in the snippet
|
product of all elements in the generators. This means that in the snippet
|
||||||
below, the test case will be run 6 (2\*3) times.
|
below, the test case will be run 6 (2\*3) times. The `GENERATE` macro
|
||||||
|
is defined in the `catch_generators.hpp` header, so compiling
|
||||||
|
the code examples below also requires
|
||||||
|
`#include <catch2/generators/catch_generators.hpp>`.
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
TEST_CASE("Generators") {
|
TEST_CASE("Generators") {
|
||||||
@ -103,7 +106,7 @@ a test case,
|
|||||||
* 2 fundamental generators
|
* 2 fundamental generators
|
||||||
* `SingleValueGenerator<T>` -- contains only single element
|
* `SingleValueGenerator<T>` -- contains only single element
|
||||||
* `FixedValuesGenerator<T>` -- contains multiple elements
|
* `FixedValuesGenerator<T>` -- contains multiple elements
|
||||||
* 5 generic generators that modify other generators
|
* 5 generic generators that modify other generators (defined in `catch2/generators/catch_generators_adapters.hpp`)
|
||||||
* `FilterGenerator<T, Predicate>` -- filters out elements from a generator
|
* `FilterGenerator<T, Predicate>` -- filters out elements from a generator
|
||||||
for which the predicate returns "false"
|
for which the predicate returns "false"
|
||||||
* `TakeGenerator<T>` -- takes first `n` elements from a generator
|
* `TakeGenerator<T>` -- takes first `n` elements from a generator
|
||||||
@ -111,11 +114,11 @@ a test case,
|
|||||||
* `MapGenerator<T, U, Func>` -- returns the result of applying `Func`
|
* `MapGenerator<T, U, Func>` -- returns the result of applying `Func`
|
||||||
on elements from a different generator
|
on elements from a different generator
|
||||||
* `ChunkGenerator<T>` -- returns chunks (inside `std::vector`) of n elements from a generator
|
* `ChunkGenerator<T>` -- returns chunks (inside `std::vector`) of n elements from a generator
|
||||||
* 4 specific purpose generators
|
* 4 specific purpose generators (defined in `catch2/generators/catch_generators_random.hpp`)
|
||||||
* `RandomIntegerGenerator<Integral>` -- generates random Integrals from range
|
* `RandomIntegerGenerator<Integral>` -- generates random Integrals from range
|
||||||
* `RandomFloatGenerator<Float>` -- generates random Floats from range
|
* `RandomFloatGenerator<Float>` -- generates random Floats from range
|
||||||
* `RangeGenerator<T>(first, last)` -- generates all values inside a `[first, last)` arithmetic range
|
* `RangeGenerator<T>(first, last)` -- generates all values inside a `[first, last)` arithmetic range (defined in `catch2/generators/catch_generators_range.hpp`)
|
||||||
* `IteratorGenerator<T>` -- copies and returns values from an iterator range
|
* `IteratorGenerator<T>` -- copies and returns values from an iterator range (defined in `catch2/generators/catch_generators_range.hpp`)
|
||||||
|
|
||||||
> `ChunkGenerator<T>`, `RandomIntegerGenerator<Integral>`, `RandomFloatGenerator<Float>` and `RangeGenerator<T>` were introduced in Catch2 2.7.0.
|
> `ChunkGenerator<T>`, `RandomIntegerGenerator<Integral>`, `RandomFloatGenerator<Float>` and `RangeGenerator<T>` were introduced in Catch2 2.7.0.
|
||||||
|
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
cmake_minimum_required( VERSION 3.16 )
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(Catch2Examples LANGUAGES CXX)
|
||||||
project( Catch2Examples LANGUAGES CXX )
|
|
||||||
|
|
||||||
message( STATUS "Examples included" )
|
|
||||||
|
|
||||||
|
message(STATUS "Examples included")
|
||||||
|
|
||||||
# Some one-offs first:
|
# Some one-offs first:
|
||||||
# 1) Tests and main in one file
|
# 1) Tests and main in one file
|
||||||
add_executable( 010-TestCase
|
add_executable(010-TestCase
|
||||||
010-TestCase.cpp
|
010-TestCase.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# 2) Tests and main across two files
|
# 2) Tests and main across two files
|
||||||
add_executable( 020-MultiFile
|
add_executable(020-MultiFile
|
||||||
020-TestCase-1.cpp
|
020-TestCase-1.cpp
|
||||||
020-TestCase-2.cpp
|
020-TestCase-2.cpp
|
||||||
)
|
)
|
||||||
@ -24,7 +22,7 @@ target_link_libraries(231-Cfg_OutputStreams Catch2_buildall_interface)
|
|||||||
target_compile_definitions(231-Cfg_OutputStreams PUBLIC CATCH_CONFIG_NOSTDOUT)
|
target_compile_definitions(231-Cfg_OutputStreams PUBLIC CATCH_CONFIG_NOSTDOUT)
|
||||||
|
|
||||||
# These examples use the standard separate compilation
|
# These examples use the standard separate compilation
|
||||||
set( SOURCES_IDIOMATIC_EXAMPLES
|
set(SOURCES_IDIOMATIC_EXAMPLES
|
||||||
030-Asn-Require-Check.cpp
|
030-Asn-Require-Check.cpp
|
||||||
100-Fix-Section.cpp
|
100-Fix-Section.cpp
|
||||||
110-Fix-ClassFixture.cpp
|
110-Fix-ClassFixture.cpp
|
||||||
@ -39,12 +37,11 @@ set( SOURCES_IDIOMATIC_EXAMPLES
|
|||||||
311-Gen-CustomCapture.cpp
|
311-Gen-CustomCapture.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
string( REPLACE ".cpp" "" BASENAMES_IDIOMATIC_EXAMPLES "${SOURCES_IDIOMATIC_EXAMPLES}" )
|
string(REPLACE ".cpp" "" BASENAMES_IDIOMATIC_EXAMPLES "${SOURCES_IDIOMATIC_EXAMPLES}")
|
||||||
set( TARGETS_IDIOMATIC_EXAMPLES ${BASENAMES_IDIOMATIC_EXAMPLES} )
|
set(TARGETS_IDIOMATIC_EXAMPLES ${BASENAMES_IDIOMATIC_EXAMPLES})
|
||||||
|
|
||||||
|
foreach(name ${TARGETS_IDIOMATIC_EXAMPLES})
|
||||||
foreach( name ${TARGETS_IDIOMATIC_EXAMPLES} )
|
add_executable(${name} ${name}.cpp)
|
||||||
add_executable( ${name} ${name}.cpp )
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(ALL_EXAMPLE_TARGETS
|
set(ALL_EXAMPLE_TARGETS
|
||||||
@ -53,10 +50,9 @@ set(ALL_EXAMPLE_TARGETS
|
|||||||
020-MultiFile
|
020-MultiFile
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach( name ${ALL_EXAMPLE_TARGETS} )
|
foreach(name ${ALL_EXAMPLE_TARGETS})
|
||||||
target_link_libraries( ${name} Catch2WithMain )
|
target_link_libraries(${name} Catch2WithMain)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
||||||
list(APPEND CATCH_WARNING_TARGETS ${ALL_EXAMPLE_TARGETS})
|
list(APPEND CATCH_WARNING_TARGETS ${ALL_EXAMPLE_TARGETS})
|
||||||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
||||||
|
@ -165,7 +165,7 @@ function(catch_discover_tests TARGET)
|
|||||||
${ARGN}
|
${ARGN}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (${CMAKE_VERSION} VERSION_LESS "3.19")
|
if(${CMAKE_VERSION} VERSION_LESS "3.19")
|
||||||
message(FATAL_ERROR "This script requires JSON support from CMake version 3.19 or greater.")
|
message(FATAL_ERROR "This script requires JSON support from CMake version 3.19 or greater.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -187,7 +187,7 @@ function(catch_discover_tests TARGET)
|
|||||||
endif()
|
endif()
|
||||||
set(_DISCOVERY_MODE ${CMAKE_CATCH_DISCOVER_TESTS_DISCOVERY_MODE})
|
set(_DISCOVERY_MODE ${CMAKE_CATCH_DISCOVER_TESTS_DISCOVERY_MODE})
|
||||||
endif()
|
endif()
|
||||||
if (NOT _DISCOVERY_MODE MATCHES "^(POST_BUILD|PRE_TEST)$")
|
if(NOT _DISCOVERY_MODE MATCHES "^(POST_BUILD|PRE_TEST)$")
|
||||||
message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
|
message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ function(catch_discover_tests TARGET)
|
|||||||
TARGET ${TARGET}
|
TARGET ${TARGET}
|
||||||
PROPERTY CROSSCOMPILING_EMULATOR
|
PROPERTY CROSSCOMPILING_EMULATOR
|
||||||
)
|
)
|
||||||
if (NOT _SKIP_IS_FAILURE)
|
if(NOT _SKIP_IS_FAILURE)
|
||||||
set(_PROPERTIES ${_PROPERTIES} SKIP_RETURN_CODE 4)
|
set(_PROPERTIES ${_PROPERTIES} SKIP_RETURN_CODE 4)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ function(catch_discover_tests_impl)
|
|||||||
|
|
||||||
# Parse JSON output for list of tests/class names/tags
|
# Parse JSON output for list of tests/class names/tags
|
||||||
string(JSON version GET "${listing_output}" "version")
|
string(JSON version GET "${listing_output}" "version")
|
||||||
if (NOT version STREQUAL "1")
|
if(NOT version STREQUAL "1")
|
||||||
message(FATAL_ERROR "Unsupported catch output version: '${version}'")
|
message(FATAL_ERROR "Unsupported catch output version: '${version}'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -186,11 +186,11 @@ function(catch_discover_tests_impl)
|
|||||||
${properties}
|
${properties}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (add_tags)
|
if(add_tags)
|
||||||
string(JSON num_tags LENGTH "${test_tags}")
|
string(JSON num_tags LENGTH "${test_tags}")
|
||||||
math(EXPR num_tags "${num_tags} - 1")
|
math(EXPR num_tags "${num_tags} - 1")
|
||||||
set(tag_list "")
|
set(tag_list "")
|
||||||
if (num_tags GREATER_EQUAL "0")
|
if(num_tags GREATER_EQUAL "0")
|
||||||
foreach(tag_idx RANGE ${num_tags})
|
foreach(tag_idx RANGE ${num_tags})
|
||||||
string(JSON a_tag GET "${test_tags}" "${tag_idx}")
|
string(JSON a_tag GET "${test_tags}" "${tag_idx}")
|
||||||
# Catch2's tags can contain semicolons, which are list element separators
|
# Catch2's tags can contain semicolons, which are list element separators
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# * REPORTER - reporter spec to use for tests
|
# * REPORTER - reporter spec to use for tests
|
||||||
# * TEST_SPEC - test spec used for filtering tests
|
# * TEST_SPEC - test spec used for filtering tests
|
||||||
function(catch_add_sharded_tests TARGET)
|
function(catch_add_sharded_tests TARGET)
|
||||||
if (${CMAKE_VERSION} VERSION_LESS "3.10.0")
|
if(${CMAKE_VERSION} VERSION_LESS "3.10.0")
|
||||||
message(FATAL_ERROR "add_sharded_catch_tests only supports CMake versions 3.10.0 and up")
|
message(FATAL_ERROR "add_sharded_catch_tests only supports CMake versions 3.10.0 and up")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ function(catch_add_sharded_tests TARGET)
|
|||||||
${ARGN}
|
${ARGN}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (NOT DEFINED _SHARD_COUNT)
|
if(NOT DEFINED _SHARD_COUNT)
|
||||||
set(_SHARD_COUNT 2)
|
set(_SHARD_COUNT 2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -61,8 +61,6 @@ function(catch_add_sharded_tests TARGET)
|
|||||||
-P "${shard_impl_script_file}"
|
-P "${shard_impl_script_file}"
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,10 +25,10 @@ if(NOT EXISTS "${TEST_BINARY}")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(other_args "")
|
set(other_args "")
|
||||||
if (TEST_SPEC)
|
if(TEST_SPEC)
|
||||||
set(other_args "${other_args} ${TEST_SPEC}")
|
set(other_args "${other_args} ${TEST_SPEC}")
|
||||||
endif()
|
endif()
|
||||||
if (REPORTER_SPEC)
|
if(REPORTER_SPEC)
|
||||||
set(other_args "${other_args} --reporter ${REPORTER_SPEC}")
|
set(other_args "${other_args} --reporter ${REPORTER_SPEC}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
# #
|
# #
|
||||||
#==================================================================================================#
|
#==================================================================================================#
|
||||||
|
|
||||||
if (CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.8)
|
if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.8)
|
||||||
message(FATAL_ERROR "ParseAndAddCatchTests requires CMake 2.8.8 or newer")
|
message(FATAL_ERROR "ParseAndAddCatchTests requires CMake 2.8.8 or newer")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget)
|
|||||||
if("${TestType}" STREQUAL "SCENARIO")
|
if("${TestType}" STREQUAL "SCENARIO")
|
||||||
set(Name "Scenario: ${Name}")
|
set(Name "Scenario: ${Name}")
|
||||||
endif()
|
endif()
|
||||||
if(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME AND "${TestType}" MATCHES "(CATCH_)?TEST_CASE_METHOD" AND TestFixture )
|
if(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME AND "${TestType}" MATCHES "(CATCH_)?TEST_CASE_METHOD" AND TestFixture)
|
||||||
set(CTestName "${TestFixture}:${Name}")
|
set(CTestName "${TestFixture}:${Name}")
|
||||||
else()
|
else()
|
||||||
set(CTestName "${Name}")
|
set(CTestName "${Name}")
|
||||||
@ -234,8 +234,6 @@ function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget)
|
|||||||
APPEND
|
APPEND
|
||||||
PROPERTY ParseAndAddCatchTests_TESTS "${CTestName}")
|
PROPERTY ParseAndAddCatchTests_TESTS "${CTestName}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -15,6 +15,6 @@ target_compile_features(fuzzhelper PUBLIC cxx_std_17)
|
|||||||
target_link_options(fuzzhelper PUBLIC "-fsanitize=fuzzer")
|
target_link_options(fuzzhelper PUBLIC "-fsanitize=fuzzer")
|
||||||
|
|
||||||
foreach(fuzzer TestSpecParser XmlWriter textflow)
|
foreach(fuzzer TestSpecParser XmlWriter textflow)
|
||||||
add_executable(fuzz_${fuzzer} fuzz_${fuzzer}.cpp)
|
add_executable(fuzz_${fuzzer} fuzz_${fuzzer}.cpp)
|
||||||
target_link_libraries(fuzz_${fuzzer} PRIVATE fuzzhelper)
|
target_link_libraries(fuzz_${fuzzer} PRIVATE fuzzhelper)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -40,7 +40,6 @@ set(BENCHMARK_SOURCES
|
|||||||
)
|
)
|
||||||
set(BENCHMARK_FILES ${BENCHMARK_HEADERS} ${BENCHMARK_SOURCES})
|
set(BENCHMARK_FILES ${BENCHMARK_HEADERS} ${BENCHMARK_SOURCES})
|
||||||
|
|
||||||
|
|
||||||
set(IMPL_HEADERS
|
set(IMPL_HEADERS
|
||||||
"${PROJECT_BINARY_DIR}/generated-includes/catch2/catch_user_config.hpp"
|
"${PROJECT_BINARY_DIR}/generated-includes/catch2/catch_user_config.hpp"
|
||||||
${SOURCES_DIR}/catch_user_config.hpp.in
|
${SOURCES_DIR}/catch_user_config.hpp.in
|
||||||
@ -348,25 +347,23 @@ source_group("generated headers"
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(Catch2 ${ALL_FILES})
|
add_library(Catch2 ${ALL_FILES})
|
||||||
if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
|
if(CATCH_ENABLE_REPRODUCIBLE_BUILD)
|
||||||
add_build_reproducibility_settings(Catch2)
|
add_build_reproducibility_settings(Catch2)
|
||||||
endif()
|
endif()
|
||||||
add_library(Catch2::Catch2 ALIAS Catch2)
|
add_library(Catch2::Catch2 ALIAS Catch2)
|
||||||
|
|
||||||
if (ANDROID)
|
if(ANDROID)
|
||||||
target_link_libraries(Catch2 PRIVATE log)
|
target_link_libraries(Catch2 PRIVATE log)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(Catch2 PROPERTIES
|
set_target_properties(Catch2 PROPERTIES
|
||||||
DEBUG_POSTFIX "d"
|
DEBUG_POSTFIX "d"
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${PROJECT_VERSION}
|
||||||
SOVERSION ${PROJECT_VERSION})
|
SOVERSION ${PROJECT_VERSION}
|
||||||
|
)
|
||||||
|
|
||||||
# require C++14
|
# require C++14
|
||||||
target_compile_features(Catch2
|
target_compile_features(Catch2 PUBLIC cxx_std_14)
|
||||||
PUBLIC
|
|
||||||
cxx_std_14
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
"${SOURCES_DIR}/catch_user_config.hpp.in"
|
"${SOURCES_DIR}/catch_user_config.hpp.in"
|
||||||
@ -384,7 +381,7 @@ target_include_directories(Catch2
|
|||||||
add_library(Catch2WithMain
|
add_library(Catch2WithMain
|
||||||
${SOURCES_DIR}/internal/catch_main.cpp
|
${SOURCES_DIR}/internal/catch_main.cpp
|
||||||
)
|
)
|
||||||
if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
|
if(CATCH_ENABLE_REPRODUCIBLE_BUILD)
|
||||||
add_build_reproducibility_settings(Catch2WithMain)
|
add_build_reproducibility_settings(Catch2WithMain)
|
||||||
endif()
|
endif()
|
||||||
add_library(Catch2::Catch2WithMain ALIAS Catch2WithMain)
|
add_library(Catch2::Catch2WithMain ALIAS Catch2WithMain)
|
||||||
@ -397,7 +394,7 @@ set_target_properties(Catch2WithMain
|
|||||||
)
|
)
|
||||||
set_target_properties(Catch2WithMain PROPERTIES DEBUG_POSTFIX "d")
|
set_target_properties(Catch2WithMain PROPERTIES DEBUG_POSTFIX "d")
|
||||||
|
|
||||||
if (NOT_SUBPROJECT)
|
if(NOT_SUBPROJECT)
|
||||||
# create and install an export set for catch target as Catch2::Catch
|
# create and install an export set for catch target as Catch2::Catch
|
||||||
install(
|
install(
|
||||||
TARGETS
|
TARGETS
|
||||||
@ -413,7 +410,6 @@ if (NOT_SUBPROJECT)
|
|||||||
${CMAKE_INSTALL_BINDIR}
|
${CMAKE_INSTALL_BINDIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
install(
|
install(
|
||||||
EXPORT
|
EXPORT
|
||||||
Catch2Targets
|
Catch2Targets
|
||||||
@ -437,7 +433,7 @@ endif()
|
|||||||
# Some tests require a full recompilation of Catch2 lib with different
|
# Some tests require a full recompilation of Catch2 lib with different
|
||||||
# compilation flags. They can link against this target to recompile all
|
# compilation flags. They can link against this target to recompile all
|
||||||
# the sources into the binary.
|
# the sources into the binary.
|
||||||
if (CATCH_BUILD_EXAMPLES OR CATCH_BUILD_EXTRA_TESTS)
|
if(CATCH_BUILD_EXAMPLES OR CATCH_BUILD_EXTRA_TESTS)
|
||||||
add_library(Catch2_buildall_interface INTERFACE)
|
add_library(Catch2_buildall_interface INTERFACE)
|
||||||
target_sources(Catch2_buildall_interface INTERFACE
|
target_sources(Catch2_buildall_interface INTERFACE
|
||||||
${ALL_FILES}
|
${ALL_FILES}
|
||||||
@ -450,31 +446,24 @@ if (CATCH_BUILD_EXAMPLES OR CATCH_BUILD_EXTRA_TESTS)
|
|||||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/generated-includes>
|
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/generated-includes>
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||||
)
|
)
|
||||||
target_compile_definitions(Catch2_buildall_interface
|
target_compile_definitions(Catch2_buildall_interface INTERFACE CATCH_CONFIG_STATIC)
|
||||||
INTERFACE
|
target_compile_features(Catch2_buildall_interface INTERFACE cxx_std_14)
|
||||||
CATCH_CONFIG_STATIC
|
|
||||||
)
|
|
||||||
target_compile_features(Catch2_buildall_interface
|
|
||||||
INTERFACE
|
|
||||||
cxx_std_14
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND CATCH_WARNING_TARGETS Catch2 Catch2WithMain)
|
list(APPEND CATCH_WARNING_TARGETS Catch2 Catch2WithMain)
|
||||||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
||||||
|
|
||||||
|
|
||||||
# We still do not support building dynamic library with hidden visibility
|
# We still do not support building dynamic library with hidden visibility
|
||||||
# so we want to check & warn users if they do this. However, we won't abort
|
# so we want to check & warn users if they do this. However, we won't abort
|
||||||
# the configuration step so that we don't have to also provide an override.
|
# the configuration step so that we don't have to also provide an override.
|
||||||
if (BUILD_SHARED_LIBS)
|
if(BUILD_SHARED_LIBS)
|
||||||
set_target_properties(Catch2 Catch2WithMain
|
set_target_properties(Catch2 Catch2WithMain
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
WINDOWS_EXPORT_ALL_SYMBOLS ON
|
WINDOWS_EXPORT_ALL_SYMBOLS ON
|
||||||
)
|
)
|
||||||
|
|
||||||
get_target_property(_VisPreset Catch2 CXX_VISIBILITY_PRESET)
|
get_target_property(_VisPreset Catch2 CXX_VISIBILITY_PRESET)
|
||||||
if (NOT MSVC AND _VisPreset STREQUAL "hidden")
|
if(NOT MSVC AND _VisPreset STREQUAL "hidden")
|
||||||
set_target_properties(Catch2 Catch2WithMain
|
set_target_properties(Catch2 Catch2WithMain
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
CXX_VISIBILITY_PRESET "default"
|
CXX_VISIBILITY_PRESET "default"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
include(CatchMiscFunctions)
|
include(CatchMiscFunctions)
|
||||||
|
|
||||||
if (CATCH_BUILD_SURROGATES)
|
if(CATCH_BUILD_SURROGATES)
|
||||||
message(STATUS "Configuring targets for surrogate TUs")
|
message(STATUS "Configuring targets for surrogate TUs")
|
||||||
|
|
||||||
# If the folder does not exist before we ask for output redirect to
|
# If the folder does not exist before we ask for output redirect to
|
||||||
@ -11,11 +11,9 @@ if (CATCH_BUILD_SURROGATES)
|
|||||||
# Returns the path to the generated file.
|
# Returns the path to the generated file.
|
||||||
function(createSurrogateFileTarget sourceHeader pathToFile)
|
function(createSurrogateFileTarget sourceHeader pathToFile)
|
||||||
set(pathPrefix ${PROJECT_SOURCE_DIR}/src)
|
set(pathPrefix ${PROJECT_SOURCE_DIR}/src)
|
||||||
|
|
||||||
file(RELATIVE_PATH includePath ${pathPrefix} ${sourceHeader})
|
file(RELATIVE_PATH includePath ${pathPrefix} ${sourceHeader})
|
||||||
|
|
||||||
get_filename_component(basicFileName "${sourceHeader}" NAME_WE)
|
get_filename_component(basicFileName "${sourceHeader}" NAME_WE)
|
||||||
|
|
||||||
set(surrogateFilePath ${CMAKE_CURRENT_BINARY_DIR}/surrogates/surrogate_${basicFileName}.cpp)
|
set(surrogateFilePath ${CMAKE_CURRENT_BINARY_DIR}/surrogates/surrogate_${basicFileName}.cpp)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
@ -41,10 +39,9 @@ if (CATCH_BUILD_SURROGATES)
|
|||||||
set(${OutArg} ${AllHeaders} PARENT_SCOPE)
|
set(${OutArg} ${AllHeaders} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
ExtractCatch2Headers(mainHeaders)
|
ExtractCatch2Headers(mainHeaders)
|
||||||
|
|
||||||
if (NOT mainHeaders)
|
if(NOT mainHeaders)
|
||||||
message(FATAL_ERROR "No headers in the main target were detected. Something is broken.")
|
message(FATAL_ERROR "No headers in the main target were detected. Something is broken.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -53,12 +50,10 @@ if (CATCH_BUILD_SURROGATES)
|
|||||||
list(APPEND surrogateFiles ${pathToGeneratedFile})
|
list(APPEND surrogateFiles ${pathToGeneratedFile})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
||||||
add_executable(Catch2SurrogateTarget
|
add_executable(Catch2SurrogateTarget
|
||||||
${surrogateFiles}
|
${surrogateFiles}
|
||||||
)
|
)
|
||||||
target_link_libraries(Catch2SurrogateTarget PRIVATE Catch2WithMain)
|
target_link_libraries(Catch2SurrogateTarget PRIVATE Catch2WithMain)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
####
|
####
|
||||||
@ -66,13 +61,10 @@ endif()
|
|||||||
# We need to disable <UseFullPaths> property, but CMake doesn't support it
|
# We need to disable <UseFullPaths> property, but CMake doesn't support it
|
||||||
# until 3.13 (not yet released)
|
# until 3.13 (not yet released)
|
||||||
####
|
####
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
configure_file(${CATCH_DIR}/tools/misc/SelfTest.vcxproj.user
|
configure_file(${CATCH_DIR}/tools/misc/SelfTest.vcxproj.user ${CMAKE_BINARY_DIR}/tests COPYONLY)
|
||||||
${CMAKE_BINARY_DIR}/tests
|
|
||||||
COPYONLY)
|
|
||||||
endif() #Temporary workaround
|
endif() #Temporary workaround
|
||||||
|
|
||||||
|
|
||||||
# define the sources of the self test
|
# define the sources of the self test
|
||||||
# Please keep these ordered alphabetically
|
# Please keep these ordered alphabetically
|
||||||
set(TEST_SOURCES
|
set(TEST_SOURCES
|
||||||
@ -134,7 +126,7 @@ set(TEST_SOURCES
|
|||||||
${SELF_TEST_DIR}/UsageTests/VariadicMacros.tests.cpp
|
${SELF_TEST_DIR}/UsageTests/VariadicMacros.tests.cpp
|
||||||
${SELF_TEST_DIR}/UsageTests/MatchersRanges.tests.cpp
|
${SELF_TEST_DIR}/UsageTests/MatchersRanges.tests.cpp
|
||||||
${SELF_TEST_DIR}/UsageTests/Matchers.tests.cpp
|
${SELF_TEST_DIR}/UsageTests/Matchers.tests.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(TEST_HEADERS
|
set(TEST_HEADERS
|
||||||
${SELF_TEST_DIR}/helpers/parse_test_spec.hpp
|
${SELF_TEST_DIR}/helpers/parse_test_spec.hpp
|
||||||
@ -142,7 +134,6 @@ set(TEST_HEADERS
|
|||||||
${SELF_TEST_DIR}/helpers/type_with_lit_0_comparisons.hpp
|
${SELF_TEST_DIR}/helpers/type_with_lit_0_comparisons.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# Specify the headers, too, so CLion recognises them as project files
|
# Specify the headers, too, so CLion recognises them as project files
|
||||||
set(HEADERS
|
set(HEADERS
|
||||||
${TOP_LEVEL_HEADERS}
|
${TOP_LEVEL_HEADERS}
|
||||||
@ -154,22 +145,22 @@ set(HEADERS
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Provide some groupings for IDEs
|
# Provide some groupings for IDEs
|
||||||
#SOURCE_GROUP("benchmark" FILES ${BENCHMARK_HEADERS} ${BENCHMARK_SOURCES})
|
#source_group("benchmark" FILES ${BENCHMARK_HEADERS} ${BENCHMARK_SOURCES})
|
||||||
#SOURCE_GROUP("Tests" FILES ${TEST_SOURCES})
|
#source_group("Tests" FILES ${TEST_SOURCES})
|
||||||
|
|
||||||
include(CTest)
|
include(CTest)
|
||||||
|
|
||||||
add_executable(SelfTest ${TEST_SOURCES} ${TEST_HEADERS})
|
add_executable(SelfTest ${TEST_SOURCES} ${TEST_HEADERS})
|
||||||
target_include_directories(SelfTest PRIVATE ${SELF_TEST_DIR})
|
target_include_directories(SelfTest PRIVATE ${SELF_TEST_DIR})
|
||||||
target_link_libraries(SelfTest PRIVATE Catch2WithMain)
|
target_link_libraries(SelfTest PRIVATE Catch2WithMain)
|
||||||
if (BUILD_SHARED_LIBS AND WIN32)
|
if(BUILD_SHARED_LIBS AND WIN32)
|
||||||
add_custom_command(TARGET SelfTest PRE_LINK
|
add_custom_command(TARGET SelfTest PRE_LINK
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Catch2>
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Catch2>
|
||||||
$<TARGET_FILE:Catch2WithMain> $<TARGET_FILE_DIR:SelfTest>
|
$<TARGET_FILE:Catch2WithMain> $<TARGET_FILE_DIR:SelfTest>
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CATCH_ENABLE_COVERAGE)
|
if(CATCH_ENABLE_COVERAGE)
|
||||||
set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
|
set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
|
||||||
find_package(codecov)
|
find_package(codecov)
|
||||||
add_coverage(SelfTest)
|
add_coverage(SelfTest)
|
||||||
@ -219,7 +210,6 @@ set_tests_properties(List::Tags::XmlOutput PROPERTIES
|
|||||||
FAIL_REGULAR_EXPRESSION "[0-9]+ tags"
|
FAIL_REGULAR_EXPRESSION "[0-9]+ tags"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_test(NAME List::Reporters::Output COMMAND $<TARGET_FILE:SelfTest> --list-reporters)
|
add_test(NAME List::Reporters::Output COMMAND $<TARGET_FILE:SelfTest> --list-reporters)
|
||||||
set_tests_properties(List::Reporters::Output PROPERTIES PASS_REGULAR_EXPRESSION "Available reporters:")
|
set_tests_properties(List::Reporters::Output PROPERTIES PASS_REGULAR_EXPRESSION "Available reporters:")
|
||||||
add_test(NAME List::Reporters::ExitCode COMMAND $<TARGET_FILE:SelfTest> --list-reporters)
|
add_test(NAME List::Reporters::ExitCode COMMAND $<TARGET_FILE:SelfTest> --list-reporters)
|
||||||
@ -447,7 +437,6 @@ set_tests_properties("Benchmarking::SkipBenchmarkMacros"
|
|||||||
FAIL_REGULAR_EXPRESSION "benchmark name"
|
FAIL_REGULAR_EXPRESSION "benchmark name"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_test(NAME "Benchmarking::FailureReporting::OptimizedOut"
|
add_test(NAME "Benchmarking::FailureReporting::OptimizedOut"
|
||||||
COMMAND
|
COMMAND
|
||||||
$<TARGET_FILE:SelfTest> "Failing benchmarks" -c "empty" -r xml
|
$<TARGET_FILE:SelfTest> "Failing benchmarks" -c "empty" -r xml
|
||||||
@ -510,7 +499,7 @@ set_tests_properties("ErrorHandling::InvalidTestSpecExitsEarly"
|
|||||||
FAIL_REGULAR_EXPRESSION "No tests ran"
|
FAIL_REGULAR_EXPRESSION "No tests ran"
|
||||||
)
|
)
|
||||||
|
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
set(_NullFile "NUL")
|
set(_NullFile "NUL")
|
||||||
else()
|
else()
|
||||||
set(_NullFile "/dev/null")
|
set(_NullFile "/dev/null")
|
||||||
@ -519,7 +508,7 @@ endif()
|
|||||||
# This test checks that there is nothing written out from the process,
|
# This test checks that there is nothing written out from the process,
|
||||||
# but if CMake is running the tests under Valgrind or similar tool, then
|
# but if CMake is running the tests under Valgrind or similar tool, then
|
||||||
# that will write its own output to stdout and the test would fail.
|
# that will write its own output to stdout and the test would fail.
|
||||||
if (NOT MEMORYCHECK_COMMAND)
|
if(NOT MEMORYCHECK_COMMAND)
|
||||||
add_test(NAME "MultiReporter::CapturingReportersDontPropagateStdOut"
|
add_test(NAME "MultiReporter::CapturingReportersDontPropagateStdOut"
|
||||||
COMMAND
|
COMMAND
|
||||||
$<TARGET_FILE:SelfTest> "Sends stuff to stdout and stderr"
|
$<TARGET_FILE:SelfTest> "Sends stuff to stdout and stderr"
|
||||||
@ -608,10 +597,9 @@ set_tests_properties("Reporters::JUnit::NamespacesAreNormalized"
|
|||||||
PASS_REGULAR_EXPRESSION "testcase classname=\"SelfTest(\.exe)?\\.A\\.B\\.TestClass\""
|
PASS_REGULAR_EXPRESSION "testcase classname=\"SelfTest(\.exe)?\\.A\\.B\\.TestClass\""
|
||||||
)
|
)
|
||||||
|
|
||||||
if (CATCH_ENABLE_CONFIGURE_TESTS)
|
if(CATCH_ENABLE_CONFIGURE_TESTS)
|
||||||
foreach(testName "DefaultReporter" "Disable" "DisableStringification"
|
foreach(testName "DefaultReporter" "Disable" "DisableStringification"
|
||||||
"ExperimentalRedirect")
|
"ExperimentalRedirect")
|
||||||
|
|
||||||
add_test(NAME "CMakeConfig::${testName}"
|
add_test(NAME "CMakeConfig::${testName}"
|
||||||
COMMAND
|
COMMAND
|
||||||
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_LIST_DIR}/TestScripts/testConfigure${testName}.py" "${CATCH_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
|
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_LIST_DIR}/TestScripts/testConfigure${testName}.py" "${CATCH_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
@ -621,11 +609,10 @@ if (CATCH_ENABLE_CONFIGURE_TESTS)
|
|||||||
COST 240
|
COST 240
|
||||||
LABELS "uses-python"
|
LABELS "uses-python"
|
||||||
)
|
)
|
||||||
|
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CATCH_ENABLE_CMAKE_HELPER_TESTS)
|
if(CATCH_ENABLE_CMAKE_HELPER_TESTS)
|
||||||
add_test(NAME "CMakeHelper::DiscoverTests"
|
add_test(NAME "CMakeHelper::DiscoverTests"
|
||||||
COMMAND
|
COMMAND
|
||||||
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_LIST_DIR}/TestScripts/DiscoverTests/VerifyRegistration.py" "${CATCH_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
|
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_LIST_DIR}/TestScripts/DiscoverTests/VerifyRegistration.py" "${CATCH_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
@ -637,7 +624,7 @@ if (CATCH_ENABLE_CMAKE_HELPER_TESTS)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach (reporterName # "Automake" - the simple .trs format does not support any kind of comments/metadata
|
foreach(reporterName # "Automake" - the simple .trs format does not support any kind of comments/metadata
|
||||||
"compact"
|
"compact"
|
||||||
"console"
|
"console"
|
||||||
"JUnit"
|
"JUnit"
|
||||||
@ -646,14 +633,13 @@ foreach (reporterName # "Automake" - the simple .trs format does not support any
|
|||||||
# "TeamCity" - does not seem to support test suite-level metadata/comments
|
# "TeamCity" - does not seem to support test suite-level metadata/comments
|
||||||
"XML"
|
"XML"
|
||||||
"JSON")
|
"JSON")
|
||||||
|
|
||||||
add_test(NAME "Reporters:Filters:${reporterName}"
|
add_test(NAME "Reporters:Filters:${reporterName}"
|
||||||
COMMAND
|
COMMAND
|
||||||
$<TARGET_FILE:SelfTest> [comparisons][string-case] "CaseInsensitiveLess is case insensitive"
|
$<TARGET_FILE:SelfTest> [comparisons][string-case] "CaseInsensitiveLess is case insensitive"
|
||||||
--reporter ${reporterName}
|
--reporter ${reporterName}
|
||||||
)
|
)
|
||||||
# Different regex for these two reporters, because the commas end up xml-escaped
|
# Different regex for these two reporters, because the commas end up xml-escaped
|
||||||
if (reporterName MATCHES "JUnit|XML")
|
if(reporterName MATCHES "JUnit|XML")
|
||||||
set(testCaseNameFormat ""CaseInsensitiveLess is case insensitive"")
|
set(testCaseNameFormat ""CaseInsensitiveLess is case insensitive"")
|
||||||
elseif(reporterName MATCHES "JSON")
|
elseif(reporterName MATCHES "JSON")
|
||||||
set(testCaseNameFormat "\\\\\"CaseInsensitiveLess is case insensitive\\\\\"")
|
set(testCaseNameFormat "\\\\\"CaseInsensitiveLess is case insensitive\\\\\"")
|
||||||
@ -675,9 +661,7 @@ foreach (reporterName # "Automake" - the simple .trs format does not support any
|
|||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "18181818"
|
PASS_REGULAR_EXPRESSION "18181818"
|
||||||
)
|
)
|
||||||
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
||||||
list(APPEND CATCH_WARNING_TARGETS SelfTest)
|
list(APPEND CATCH_WARNING_TARGETS SelfTest)
|
||||||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
||||||
|
@ -1,12 +1,7 @@
|
|||||||
#
|
cmake_minimum_required(VERSION 3.16)
|
||||||
# Build extra tests.
|
project(Catch2ExtraTests LANGUAGES CXX)
|
||||||
#
|
|
||||||
|
|
||||||
cmake_minimum_required( VERSION 3.16 )
|
message(STATUS "Extra tests included")
|
||||||
|
|
||||||
project( Catch2ExtraTests LANGUAGES CXX )
|
|
||||||
|
|
||||||
message( STATUS "Extra tests included" )
|
|
||||||
|
|
||||||
add_test(
|
add_test(
|
||||||
NAME TestShardingIntegration
|
NAME TestShardingIntegration
|
||||||
@ -21,8 +16,7 @@ add_test(
|
|||||||
NAME TestSharding::OverlyLargeShardIndex
|
NAME TestSharding::OverlyLargeShardIndex
|
||||||
COMMAND $<TARGET_FILE:SelfTest> --shard-index 5 --shard-count 5
|
COMMAND $<TARGET_FILE:SelfTest> --shard-index 5 --shard-count 5
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(TestSharding::OverlyLargeShardIndex
|
||||||
TestSharding::OverlyLargeShardIndex
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "The shard count \\(5\\) must be greater than the shard index \\(5\\)"
|
PASS_REGULAR_EXPRESSION "The shard count \\(5\\) must be greater than the shard index \\(5\\)"
|
||||||
)
|
)
|
||||||
@ -31,8 +25,7 @@ set_tests_properties(
|
|||||||
# they have non-trivial execution time, so they are categorized as
|
# they have non-trivial execution time, so they are categorized as
|
||||||
# extra tests, so that they are run less.
|
# extra tests, so that they are run less.
|
||||||
add_test(NAME MinDuration::SimpleThreshold COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.950 [min_duration_test])
|
add_test(NAME MinDuration::SimpleThreshold COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.950 [min_duration_test])
|
||||||
set_tests_properties(
|
set_tests_properties(MinDuration::SimpleThreshold
|
||||||
MinDuration::SimpleThreshold
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "s: sleep_for_1000ms"
|
PASS_REGULAR_EXPRESSION "s: sleep_for_1000ms"
|
||||||
FAIL_REGULAR_EXPRESSION "sleep_for_100ms"
|
FAIL_REGULAR_EXPRESSION "sleep_for_100ms"
|
||||||
@ -43,8 +36,7 @@ set_tests_properties(
|
|||||||
# -d yes overrides the threshold, so we should see the faster test even
|
# -d yes overrides the threshold, so we should see the faster test even
|
||||||
# with a ridiculous high min duration threshold
|
# with a ridiculous high min duration threshold
|
||||||
add_test(NAME MinDuration::DurationOverrideYes COMMAND $<TARGET_FILE:SelfTest> --min-duration 1.0 -d yes [min_duration_test])
|
add_test(NAME MinDuration::DurationOverrideYes COMMAND $<TARGET_FILE:SelfTest> --min-duration 1.0 -d yes [min_duration_test])
|
||||||
set_tests_properties(
|
set_tests_properties(MinDuration::DurationOverrideYes
|
||||||
MinDuration::DurationOverrideYes
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "s: sleep_for_100ms"
|
PASS_REGULAR_EXPRESSION "s: sleep_for_100ms"
|
||||||
)
|
)
|
||||||
@ -52,27 +44,24 @@ set_tests_properties(
|
|||||||
# -d no overrides the threshold, so we should never see any tests even
|
# -d no overrides the threshold, so we should never see any tests even
|
||||||
# with ridiculously low min duration threshold
|
# with ridiculously low min duration threshold
|
||||||
add_test(NAME MinDuration::DurationOverrideNo COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.0001 -d no [min_duration_test])
|
add_test(NAME MinDuration::DurationOverrideNo COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.0001 -d no [min_duration_test])
|
||||||
set_tests_properties(
|
set_tests_properties(MinDuration::DurationOverrideNo
|
||||||
MinDuration::DurationOverrideNo
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
FAIL_REGULAR_EXPRESSION "sleep_for_250ms"
|
FAIL_REGULAR_EXPRESSION "sleep_for_250ms"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# ------------ end of duration reporting tests
|
# ------------ end of duration reporting tests
|
||||||
|
|
||||||
# define folders used:
|
# define folders used:
|
||||||
set( TESTS_DIR ${CATCH_DIR}/tests/ExtraTests )
|
set(TESTS_DIR ${CATCH_DIR}/tests/ExtraTests)
|
||||||
|
|
||||||
add_executable(PrefixedMacros ${TESTS_DIR}/X01-PrefixedMacros.cpp)
|
add_executable(PrefixedMacros ${TESTS_DIR}/X01-PrefixedMacros.cpp)
|
||||||
target_compile_definitions( PrefixedMacros PRIVATE CATCH_CONFIG_PREFIX_ALL CATCH_CONFIG_RUNTIME_STATIC_REQUIRE )
|
target_compile_definitions(PrefixedMacros PRIVATE CATCH_CONFIG_PREFIX_ALL CATCH_CONFIG_RUNTIME_STATIC_REQUIRE)
|
||||||
# Macro configuration does not touch the compiled parts, so we can link
|
# Macro configuration does not touch the compiled parts, so we can link
|
||||||
# it against the main library
|
# it against the main library
|
||||||
target_link_libraries( PrefixedMacros Catch2WithMain )
|
target_link_libraries(PrefixedMacros Catch2WithMain)
|
||||||
|
|
||||||
add_test(NAME CATCH_CONFIG_PREFIX_ALL COMMAND PrefixedMacros -s)
|
add_test(NAME CATCH_CONFIG_PREFIX_ALL COMMAND PrefixedMacros -s)
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_PREFIX_ALL
|
||||||
CATCH_CONFIG_PREFIX_ALL
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "CATCH_"
|
PASS_REGULAR_EXPRESSION "CATCH_"
|
||||||
FAIL_REGULAR_EXPRESSION
|
FAIL_REGULAR_EXPRESSION
|
||||||
@ -81,51 +70,47 @@ set_tests_properties(
|
|||||||
" REQUIRE; REQUIRE_FALSE; REQUIRE_THROWS; REQUIRE_THROWS_AS; REQUIRE_THROWS_WITH; REQUIRE_THROWS_MATCHES; REQUIRE_NOTHROW; CHECK; CHECK_FALSE; CHECKED_IF; CHECKED_ELSE; CHECK_NOFAIL; CHECK_THROWS; CHECK_THROWS_AS; CHECK_THROWS_WITH; CHECK_THROWS_MATCHES; CHECK_NOTHROW; REQUIRE_THAT; CHECK_THAT"
|
" REQUIRE; REQUIRE_FALSE; REQUIRE_THROWS; REQUIRE_THROWS_AS; REQUIRE_THROWS_WITH; REQUIRE_THROWS_MATCHES; REQUIRE_NOTHROW; CHECK; CHECK_FALSE; CHECKED_IF; CHECKED_ELSE; CHECK_NOFAIL; CHECK_THROWS; CHECK_THROWS_AS; CHECK_THROWS_WITH; CHECK_THROWS_MATCHES; CHECK_NOTHROW; REQUIRE_THAT; CHECK_THAT"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(DisabledMacros ${TESTS_DIR}/X02-DisabledMacros.cpp)
|
add_executable(DisabledMacros ${TESTS_DIR}/X02-DisabledMacros.cpp)
|
||||||
target_compile_definitions( DisabledMacros PRIVATE CATCH_CONFIG_DISABLE )
|
target_compile_definitions(DisabledMacros PRIVATE CATCH_CONFIG_DISABLE)
|
||||||
# Macro configuration does not touch the compiled parts, so we can link
|
# Macro configuration does not touch the compiled parts, so we can link
|
||||||
# it against the main library
|
# it against the main library
|
||||||
target_link_libraries( DisabledMacros Catch2WithMain )
|
target_link_libraries(DisabledMacros Catch2WithMain)
|
||||||
|
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE-1 COMMAND DisabledMacros -s)
|
add_test(NAME CATCH_CONFIG_DISABLE-1 COMMAND DisabledMacros -s)
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE-1
|
||||||
CATCH_CONFIG_DISABLE-1
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "No tests ran"
|
PASS_REGULAR_EXPRESSION "No tests ran"
|
||||||
FAIL_REGULAR_EXPRESSION "This should not happen"
|
FAIL_REGULAR_EXPRESSION "This should not happen"
|
||||||
)
|
)
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE-2 COMMAND DisabledMacros --list-tests)
|
add_test(NAME CATCH_CONFIG_DISABLE-2 COMMAND DisabledMacros --list-tests)
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE-2
|
||||||
CATCH_CONFIG_DISABLE-2
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "0 test cases"
|
PASS_REGULAR_EXPRESSION "0 test cases"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable( DisabledExceptions-DefaultHandler ${TESTS_DIR}/X03-DisabledExceptions-DefaultHandler.cpp )
|
add_executable(DisabledExceptions-DefaultHandler ${TESTS_DIR}/X03-DisabledExceptions-DefaultHandler.cpp)
|
||||||
add_executable( DisabledExceptions-CustomHandler ${TESTS_DIR}/X04-DisabledExceptions-CustomHandler.cpp )
|
add_executable(DisabledExceptions-CustomHandler ${TESTS_DIR}/X04-DisabledExceptions-CustomHandler.cpp)
|
||||||
|
|
||||||
foreach(target DisabledExceptions-DefaultHandler DisabledExceptions-CustomHandler)
|
foreach(target DisabledExceptions-DefaultHandler DisabledExceptions-CustomHandler)
|
||||||
target_compile_options( ${target}
|
target_compile_options(${target}
|
||||||
PUBLIC
|
PUBLIC
|
||||||
$<$<CXX_COMPILER_ID:MSVC>:/EHs-c-;/D_HAS_EXCEPTIONS=0>
|
$<$<CXX_COMPILER_ID:MSVC>:/EHs-c-;/D_HAS_EXCEPTIONS=0>
|
||||||
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:AppleClang>>:-fno-exceptions>
|
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:AppleClang>>:-fno-exceptions>
|
||||||
)
|
)
|
||||||
target_link_libraries(${target} Catch2_buildall_interface)
|
target_link_libraries(${target} Catch2_buildall_interface)
|
||||||
endforeach()
|
endforeach()
|
||||||
target_compile_definitions( DisabledExceptions-CustomHandler PUBLIC CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER )
|
target_compile_definitions(DisabledExceptions-CustomHandler PUBLIC CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER)
|
||||||
|
|
||||||
|
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-1 COMMAND DisabledExceptions-DefaultHandler "Tests that run")
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-1 COMMAND DisabledExceptions-DefaultHandler "Tests that run")
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE_EXCEPTIONS-1
|
||||||
CATCH_CONFIG_DISABLE_EXCEPTIONS-1
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
||||||
FAIL_REGULAR_EXPRESSION "abort;terminate;fatal"
|
FAIL_REGULAR_EXPRESSION "abort;terminate;fatal"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable( BazelReporter ${TESTS_DIR}/X30-BazelReporter.cpp )
|
add_executable(BazelReporter ${TESTS_DIR}/X30-BazelReporter.cpp)
|
||||||
target_compile_definitions( BazelReporter PRIVATE CATCH_CONFIG_BAZEL_SUPPORT )
|
target_compile_definitions(BazelReporter PRIVATE CATCH_CONFIG_BAZEL_SUPPORT)
|
||||||
target_link_libraries(BazelReporter Catch2_buildall_interface)
|
target_link_libraries(BazelReporter Catch2_buildall_interface)
|
||||||
add_test(NAME CATCH_CONFIG_BAZEL_REPORTER-1
|
add_test(NAME CATCH_CONFIG_BAZEL_REPORTER-1
|
||||||
COMMAND
|
COMMAND
|
||||||
@ -137,7 +122,7 @@ set_tests_properties(CATCH_CONFIG_BAZEL_REPORTER-1
|
|||||||
)
|
)
|
||||||
|
|
||||||
# We must now test this works without the build flag.
|
# We must now test this works without the build flag.
|
||||||
add_executable( BazelReporterNoCatchConfig ${TESTS_DIR}/X30-BazelReporter.cpp )
|
add_executable(BazelReporterNoCatchConfig ${TESTS_DIR}/X30-BazelReporter.cpp)
|
||||||
target_link_libraries(BazelReporterNoCatchConfig Catch2WithMain)
|
target_link_libraries(BazelReporterNoCatchConfig Catch2WithMain)
|
||||||
add_test(NAME NO_CATCH_CONFIG_BAZEL_REPORTER-1
|
add_test(NAME NO_CATCH_CONFIG_BAZEL_REPORTER-1
|
||||||
COMMAND
|
COMMAND
|
||||||
@ -159,7 +144,6 @@ set_tests_properties(BazelEnv::TESTBRIDGE_TEST_ONLY
|
|||||||
PASS_REGULAR_EXPRESSION "All tests passed \\(1 assertion in 1 test case\\)"
|
PASS_REGULAR_EXPRESSION "All tests passed \\(1 assertion in 1 test case\\)"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_test(NAME BazelEnv::Sharding
|
add_test(NAME BazelEnv::Sharding
|
||||||
COMMAND
|
COMMAND
|
||||||
"${PYTHON_EXECUTABLE}" "${CATCH_DIR}/tests/TestScripts/testBazelSharding.py"
|
"${PYTHON_EXECUTABLE}" "${CATCH_DIR}/tests/TestScripts/testBazelSharding.py"
|
||||||
@ -171,82 +155,69 @@ set_tests_properties(BazelEnv::Sharding
|
|||||||
LABELS "uses-python"
|
LABELS "uses-python"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# The default handler on Windows leads to the just-in-time debugger firing,
|
# The default handler on Windows leads to the just-in-time debugger firing,
|
||||||
# which makes this test unsuitable for CI and headless runs, as it opens
|
# which makes this test unsuitable for CI and headless runs, as it opens
|
||||||
# up an interactive dialog.
|
# up an interactive dialog.
|
||||||
if (NOT WIN32)
|
if(NOT WIN32)
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-2 COMMAND DisabledExceptions-DefaultHandler "Tests that abort")
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-2 COMMAND DisabledExceptions-DefaultHandler "Tests that abort")
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE_EXCEPTIONS-2
|
||||||
CATCH_CONFIG_DISABLE_EXCEPTIONS-2
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "Catch will terminate"
|
PASS_REGULAR_EXPRESSION "Catch will terminate"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-3 COMMAND DisabledExceptions-CustomHandler "Tests that run")
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-3 COMMAND DisabledExceptions-CustomHandler "Tests that run")
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE_EXCEPTIONS-3
|
||||||
CATCH_CONFIG_DISABLE_EXCEPTIONS-3
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
||||||
FAIL_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
FAIL_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-4 COMMAND DisabledExceptions-CustomHandler "Tests that abort")
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-4 COMMAND DisabledExceptions-CustomHandler "Tests that abort")
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE_EXCEPTIONS-4
|
||||||
CATCH_CONFIG_DISABLE_EXCEPTIONS-4
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
PASS_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(DeferredStaticChecks ${TESTS_DIR}/X05-DeferredStaticChecks.cpp)
|
add_executable(DeferredStaticChecks ${TESTS_DIR}/X05-DeferredStaticChecks.cpp)
|
||||||
target_link_libraries(DeferredStaticChecks PRIVATE Catch2WithMain)
|
target_link_libraries(DeferredStaticChecks PRIVATE Catch2WithMain)
|
||||||
target_compile_definitions(DeferredStaticChecks PRIVATE "CATCH_CONFIG_RUNTIME_STATIC_REQUIRE")
|
target_compile_definitions(DeferredStaticChecks PRIVATE "CATCH_CONFIG_RUNTIME_STATIC_REQUIRE")
|
||||||
|
|
||||||
add_test(NAME DeferredStaticChecks COMMAND DeferredStaticChecks -r compact)
|
add_test(NAME DeferredStaticChecks COMMAND DeferredStaticChecks -r compact)
|
||||||
set_tests_properties(
|
set_tests_properties(DeferredStaticChecks
|
||||||
DeferredStaticChecks
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "test cases: 1 \\| 1 failed\nassertions: 3 \\| 3 failed"
|
PASS_REGULAR_EXPRESSION "test cases: 1 \\| 1 failed\nassertions: 3 \\| 3 failed"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp)
|
add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp)
|
||||||
target_compile_definitions( FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier )
|
target_compile_definitions(FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier)
|
||||||
target_link_libraries( FallbackStringifier Catch2WithMain )
|
target_link_libraries(FallbackStringifier Catch2WithMain)
|
||||||
|
|
||||||
add_test(NAME FallbackStringifier COMMAND FallbackStringifier -r compact -s)
|
add_test(NAME FallbackStringifier COMMAND FallbackStringifier -r compact -s)
|
||||||
set_tests_properties(
|
set_tests_properties(FallbackStringifier
|
||||||
FallbackStringifier
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "foo{} for: { !!! }"
|
PASS_REGULAR_EXPRESSION "foo{} for: { !!! }"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(DisableStringification ${TESTS_DIR}/X11-DisableStringification.cpp)
|
add_executable(DisableStringification ${TESTS_DIR}/X11-DisableStringification.cpp)
|
||||||
target_compile_definitions( DisableStringification PRIVATE CATCH_CONFIG_DISABLE_STRINGIFICATION )
|
target_compile_definitions(DisableStringification PRIVATE CATCH_CONFIG_DISABLE_STRINGIFICATION)
|
||||||
target_link_libraries(DisableStringification Catch2WithMain)
|
target_link_libraries(DisableStringification Catch2WithMain)
|
||||||
add_test(NAME CATCH_CONFIG_DISABLE_STRINGIFICATION COMMAND DisableStringification -r compact -s)
|
add_test(NAME CATCH_CONFIG_DISABLE_STRINGIFICATION COMMAND DisableStringification -r compact -s)
|
||||||
set_tests_properties(
|
set_tests_properties(CATCH_CONFIG_DISABLE_STRINGIFICATION
|
||||||
CATCH_CONFIG_DISABLE_STRINGIFICATION
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"
|
PASS_REGULAR_EXPRESSION "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"
|
||||||
FAIL_REGULAR_EXPRESSION "Hidden{} == Hidden{}"
|
FAIL_REGULAR_EXPRESSION "Hidden{} == Hidden{}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# This test touches windows.h, so it should only be compiled under msvc
|
# This test touches windows.h, so it should only be compiled under msvc
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
# This test fails if it does not compile and succeeds otherwise
|
# This test fails if it does not compile and succeeds otherwise
|
||||||
add_executable(WindowsHeader ${TESTS_DIR}/X90-WindowsHeaderInclusion.cpp)
|
add_executable(WindowsHeader ${TESTS_DIR}/X90-WindowsHeaderInclusion.cpp)
|
||||||
target_link_libraries( WindowsHeader Catch2WithMain )
|
target_link_libraries(WindowsHeader Catch2WithMain)
|
||||||
add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact)
|
add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact)
|
||||||
list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES} WindowsHeader)
|
list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES} WindowsHeader)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_executable(PartialTestCaseEvents ${TESTS_DIR}/X21-PartialTestCaseEvents.cpp)
|
add_executable(PartialTestCaseEvents ${TESTS_DIR}/X21-PartialTestCaseEvents.cpp)
|
||||||
target_link_libraries(PartialTestCaseEvents PRIVATE Catch2WithMain)
|
target_link_libraries(PartialTestCaseEvents PRIVATE Catch2WithMain)
|
||||||
add_test(
|
add_test(
|
||||||
@ -264,22 +235,19 @@ add_test(
|
|||||||
NAME BenchmarksInCumulativeReporter
|
NAME BenchmarksInCumulativeReporter
|
||||||
COMMAND BenchmarksInCumulativeReporter --reporter testReporter
|
COMMAND BenchmarksInCumulativeReporter --reporter testReporter
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(BenchmarksInCumulativeReporter
|
||||||
BenchmarksInCumulativeReporter
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "1\n2\n3\n4\n5\n"
|
PASS_REGULAR_EXPRESSION "1\n2\n3\n4\n5\n"
|
||||||
COST 30
|
COST 30
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(CasingInReporterNames ${TESTS_DIR}/X23-CasingInReporterNames.cpp)
|
add_executable(CasingInReporterNames ${TESTS_DIR}/X23-CasingInReporterNames.cpp)
|
||||||
target_link_libraries(CasingInReporterNames PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(CasingInReporterNames PRIVATE Catch2::Catch2WithMain)
|
||||||
add_test(
|
add_test(
|
||||||
NAME Reporters::registration-is-case-preserving
|
NAME Reporters::registration-is-case-preserving
|
||||||
COMMAND CasingInReporterNames --list-reporters
|
COMMAND CasingInReporterNames --list-reporters
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::registration-is-case-preserving
|
||||||
Reporters::registration-is-case-preserving
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "testReporterCASED"
|
PASS_REGULAR_EXPRESSION "testReporterCASED"
|
||||||
)
|
)
|
||||||
@ -287,8 +255,7 @@ add_test(
|
|||||||
NAME Reporters::selection-is-case-insensitive
|
NAME Reporters::selection-is-case-insensitive
|
||||||
COMMAND CasingInReporterNames -r testReportercased
|
COMMAND CasingInReporterNames -r testReportercased
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::selection-is-case-insensitive
|
||||||
Reporters::selection-is-case-insensitive
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "TestReporter constructed"
|
PASS_REGULAR_EXPRESSION "TestReporter constructed"
|
||||||
)
|
)
|
||||||
@ -300,15 +267,13 @@ add_test(
|
|||||||
COMMAND CapturedStdoutInTestCaseEvents
|
COMMAND CapturedStdoutInTestCaseEvents
|
||||||
--reporter test-reporter
|
--reporter test-reporter
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::CapturedStdOutInEvents
|
||||||
Reporters::CapturedStdOutInEvents
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "X27 - TestReporter constructed"
|
PASS_REGULAR_EXPRESSION "X27 - TestReporter constructed"
|
||||||
FAIL_REGULAR_EXPRESSION "X27 ERROR"
|
FAIL_REGULAR_EXPRESSION "X27 ERROR"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
if (MSVC)
|
|
||||||
set(_NullFile "NUL")
|
set(_NullFile "NUL")
|
||||||
else()
|
else()
|
||||||
set(_NullFile "/dev/null")
|
set(_NullFile "/dev/null")
|
||||||
@ -320,7 +285,7 @@ target_link_libraries(ListenerStdoutCaptureInMultireporter PRIVATE Catch2::Catch
|
|||||||
# This test checks that there is nothing written out from the process,
|
# This test checks that there is nothing written out from the process,
|
||||||
# but if CMake is running the tests under Valgrind or similar tool, then
|
# but if CMake is running the tests under Valgrind or similar tool, then
|
||||||
# that will write its own output to stdout and the test would fail.
|
# that will write its own output to stdout and the test would fail.
|
||||||
if (NOT MEMORYCHECK_COMMAND)
|
if(NOT MEMORYCHECK_COMMAND)
|
||||||
add_test(
|
add_test(
|
||||||
NAME MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
|
NAME MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
|
||||||
COMMAND ListenerStdoutCaptureInMultireporter
|
COMMAND ListenerStdoutCaptureInMultireporter
|
||||||
@ -328,15 +293,13 @@ if (NOT MEMORYCHECK_COMMAND)
|
|||||||
--reporter junit::out=${_NullFile}
|
--reporter junit::out=${_NullFile}
|
||||||
)
|
)
|
||||||
|
|
||||||
set_tests_properties(
|
set_tests_properties(MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
|
||||||
MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "X24 - NonCapturingListener initialized"
|
PASS_REGULAR_EXPRESSION "X24 - NonCapturingListener initialized"
|
||||||
FAIL_REGULAR_EXPRESSION "X24 - FooBarBaz"
|
FAIL_REGULAR_EXPRESSION "X24 - FooBarBaz"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_executable(ListenerCanAskForCapturedStdout ${TESTS_DIR}/X25-ListenerCanAskForCapturedStdout.cpp)
|
add_executable(ListenerCanAskForCapturedStdout ${TESTS_DIR}/X25-ListenerCanAskForCapturedStdout.cpp)
|
||||||
target_link_libraries(ListenerCanAskForCapturedStdout PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(ListenerCanAskForCapturedStdout PRIVATE Catch2::Catch2WithMain)
|
||||||
add_test(
|
add_test(
|
||||||
@ -345,8 +308,7 @@ add_test(
|
|||||||
--reporter compact::out=${_NullFile}
|
--reporter compact::out=${_NullFile}
|
||||||
--reporter console::out=${_NullFile}
|
--reporter console::out=${_NullFile}
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(MultiReporter::CapturingListenerCausesStdoutCapture
|
||||||
MultiReporter::CapturingListenerCausesStdoutCapture
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "CapturingListener initialized"
|
PASS_REGULAR_EXPRESSION "CapturingListener initialized"
|
||||||
FAIL_REGULAR_EXPRESSION "X25 - ERROR"
|
FAIL_REGULAR_EXPRESSION "X25 - ERROR"
|
||||||
@ -359,8 +321,7 @@ add_test(
|
|||||||
COMMAND ReporterPreferencesForPassingAssertionsIsRespected
|
COMMAND ReporterPreferencesForPassingAssertionsIsRespected
|
||||||
--reporter test-reporter
|
--reporter test-reporter
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::PreferencesForPassingAssertionsIsRespected
|
||||||
Reporters::PreferencesForPassingAssertionsIsRespected
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
|
PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
|
||||||
FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
|
FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
|
||||||
@ -371,8 +332,7 @@ add_test(
|
|||||||
--reporter test-reporter
|
--reporter test-reporter
|
||||||
--reporter console::out=${_NullFile}
|
--reporter console::out=${_NullFile}
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(MultiReporter::PreferencesForPassingAssertionsIsRespected
|
||||||
MultiReporter::PreferencesForPassingAssertionsIsRespected
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
|
PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
|
||||||
FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
|
FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
|
||||||
@ -384,8 +344,7 @@ add_test(
|
|||||||
NAME ListenersGetEventsBeforeReporters
|
NAME ListenersGetEventsBeforeReporters
|
||||||
COMMAND ListenersGetEventsBeforeReporters --reporter test-reporter
|
COMMAND ListenersGetEventsBeforeReporters --reporter test-reporter
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(ListenersGetEventsBeforeReporters
|
||||||
ListenersGetEventsBeforeReporters
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "X28 - TestReporter constructed"
|
PASS_REGULAR_EXPRESSION "X28 - TestReporter constructed"
|
||||||
FAIL_REGULAR_EXPRESSION "X28 - ERROR"
|
FAIL_REGULAR_EXPRESSION "X28 - ERROR"
|
||||||
@ -398,21 +357,18 @@ add_test(
|
|||||||
COMMAND CustomArgumentsForReporters
|
COMMAND CustomArgumentsForReporters
|
||||||
--reporter "test-reporter::Xa b=c 1::Xz:e = 1234"
|
--reporter "test-reporter::Xa b=c 1::Xz:e = 1234"
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(CustomArgumentsForReporters
|
||||||
CustomArgumentsForReporters
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "Xa b=c 1::Xz:e = 1234"
|
PASS_REGULAR_EXPRESSION "Xa b=c 1::Xz:e = 1234"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(DuplicatedTestCases-SameNameAndTags ${TESTS_DIR}/X31-DuplicatedTestCases.cpp)
|
add_executable(DuplicatedTestCases-SameNameAndTags ${TESTS_DIR}/X31-DuplicatedTestCases.cpp)
|
||||||
target_link_libraries(DuplicatedTestCases-SameNameAndTags PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(DuplicatedTestCases-SameNameAndTags PRIVATE Catch2::Catch2WithMain)
|
||||||
add_test(
|
add_test(
|
||||||
NAME DuplicatedTestCases::SameNameAndTags
|
NAME DuplicatedTestCases::SameNameAndTags
|
||||||
COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameAndTags>
|
COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameAndTags>
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(DuplicatedTestCases::SameNameAndTags
|
||||||
DuplicatedTestCases::SameNameAndTags
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "error: .* already defined\\."
|
PASS_REGULAR_EXPRESSION "error: .* already defined\\."
|
||||||
)
|
)
|
||||||
@ -423,8 +379,7 @@ add_test(
|
|||||||
NAME DuplicatedTestCases::SameNameDifferentTags
|
NAME DuplicatedTestCases::SameNameDifferentTags
|
||||||
COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameDifferentTags>
|
COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameDifferentTags>
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(DuplicatedTestCases::SameNameDifferentTags
|
||||||
DuplicatedTestCases::SameNameDifferentTags
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
|
FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
|
||||||
)
|
)
|
||||||
@ -435,8 +390,7 @@ add_test(
|
|||||||
NAME DuplicatedTestCases::DuplicatedTestCaseMethods
|
NAME DuplicatedTestCases::DuplicatedTestCaseMethods
|
||||||
COMMAND $<TARGET_FILE:DuplicatedTestCases-DuplicatedTestCaseMethods>
|
COMMAND $<TARGET_FILE:DuplicatedTestCases-DuplicatedTestCaseMethods>
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(DuplicatedTestCases::DuplicatedTestCaseMethods
|
||||||
DuplicatedTestCases::DuplicatedTestCaseMethods
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "error: .* already defined\\."
|
PASS_REGULAR_EXPRESSION "error: .* already defined\\."
|
||||||
)
|
)
|
||||||
@ -447,21 +401,18 @@ add_test(
|
|||||||
NAME DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
|
NAME DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
|
||||||
COMMAND $<TARGET_FILE:DuplicatedTestCases-DifferentFixtures>
|
COMMAND $<TARGET_FILE:DuplicatedTestCases-DifferentFixtures>
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
|
||||||
DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
|
FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(DuplicatedReporters ${TESTS_DIR}/X35-DuplicatedReporterNames.cpp)
|
add_executable(DuplicatedReporters ${TESTS_DIR}/X35-DuplicatedReporterNames.cpp)
|
||||||
target_link_libraries(DuplicatedReporters PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(DuplicatedReporters PRIVATE Catch2::Catch2WithMain)
|
||||||
add_test(
|
add_test(
|
||||||
NAME Reporters::RegistrationErrorsAreCaught
|
NAME Reporters::RegistrationErrorsAreCaught
|
||||||
COMMAND $<TARGET_FILE:DuplicatedReporters>
|
COMMAND $<TARGET_FILE:DuplicatedReporters>
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::RegistrationErrorsAreCaught
|
||||||
Reporters::RegistrationErrorsAreCaught
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "Errors occurred during startup!"
|
PASS_REGULAR_EXPRESSION "Errors occurred during startup!"
|
||||||
)
|
)
|
||||||
@ -472,8 +423,7 @@ add_test(
|
|||||||
NAME Reporters::CrashInJunitReporter
|
NAME Reporters::CrashInJunitReporter
|
||||||
COMMAND ${CMAKE_COMMAND} -E env $<TARGET_FILE:ReportingCrashWithJunitReporter> --reporter JUnit
|
COMMAND ${CMAKE_COMMAND} -E env $<TARGET_FILE:ReportingCrashWithJunitReporter> --reporter JUnit
|
||||||
)
|
)
|
||||||
set_tests_properties(
|
set_tests_properties(Reporters::CrashInJunitReporter
|
||||||
Reporters::CrashInJunitReporter
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "</testsuites>"
|
PASS_REGULAR_EXPRESSION "</testsuites>"
|
||||||
LABELS "uses-signals"
|
LABELS "uses-signals"
|
||||||
@ -493,8 +443,7 @@ add_test(
|
|||||||
#add_executable(DebugBreakMacros ${TESTS_DIR}/X12-CustomDebugBreakMacro.cpp)
|
#add_executable(DebugBreakMacros ${TESTS_DIR}/X12-CustomDebugBreakMacro.cpp)
|
||||||
#target_link_libraries(DebugBreakMacros Catch2)
|
#target_link_libraries(DebugBreakMacros Catch2)
|
||||||
#add_test(NAME DebugBreakMacros COMMAND DebugBreakMacros --break)
|
#add_test(NAME DebugBreakMacros COMMAND DebugBreakMacros --break)
|
||||||
#set_tests_properties(
|
#set_tests_properties(DebugBreakMacros
|
||||||
# DebugBreakMacros
|
|
||||||
# PROPERTIES
|
# PROPERTIES
|
||||||
# PASS_REGULAR_EXPRESSION "Pretty please, break into debugger"
|
# PASS_REGULAR_EXPRESSION "Pretty please, break into debugger"
|
||||||
#)
|
#)
|
||||||
@ -521,7 +470,6 @@ add_test(
|
|||||||
COMMAND $<TARGET_FILE:NoTests> --list-listeners
|
COMMAND $<TARGET_FILE:NoTests> --list-listeners
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_executable(AllSkipped ${TESTS_DIR}/X93-AllSkipped.cpp)
|
add_executable(AllSkipped ${TESTS_DIR}/X93-AllSkipped.cpp)
|
||||||
target_link_libraries(AllSkipped PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(AllSkipped PRIVATE Catch2::Catch2WithMain)
|
||||||
|
|
||||||
@ -534,7 +482,7 @@ set_tests_properties(TestSpecs::SkippingAllTestsFails
|
|||||||
WILL_FAIL ON
|
WILL_FAIL ON
|
||||||
)
|
)
|
||||||
|
|
||||||
set( EXTRA_TEST_BINARIES
|
set(EXTRA_TEST_BINARIES
|
||||||
AllSkipped
|
AllSkipped
|
||||||
PrefixedMacros
|
PrefixedMacros
|
||||||
DisabledMacros
|
DisabledMacros
|
||||||
@ -557,7 +505,6 @@ list(FILTER EXTRA_TEST_BINARIES EXCLUDE REGEX "DisabledExceptions.*")
|
|||||||
list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES})
|
list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES})
|
||||||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
|
||||||
|
|
||||||
|
|
||||||
# This sets up a one-off executable that compiles against the amalgamated
|
# This sets up a one-off executable that compiles against the amalgamated
|
||||||
# files, and then runs it for a super simple check that the amalgamated
|
# files, and then runs it for a super simple check that the amalgamated
|
||||||
# files are usable.
|
# files are usable.
|
||||||
@ -570,8 +517,7 @@ target_include_directories(AmalgamatedTestCompilation PRIVATE ${CATCH_DIR}/extra
|
|||||||
target_compile_features(AmalgamatedTestCompilation PRIVATE cxx_std_14)
|
target_compile_features(AmalgamatedTestCompilation PRIVATE cxx_std_14)
|
||||||
|
|
||||||
add_test(NAME AmalgamatedFileTest COMMAND AmalgamatedTestCompilation)
|
add_test(NAME AmalgamatedFileTest COMMAND AmalgamatedTestCompilation)
|
||||||
set_tests_properties(
|
set_tests_properties(AmalgamatedFileTest
|
||||||
AmalgamatedFileTest
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "All tests passed \\(14 assertions in 3 test cases\\)"
|
PASS_REGULAR_EXPRESSION "All tests passed \\(14 assertions in 3 test cases\\)"
|
||||||
)
|
)
|
||||||
|
@ -15,7 +15,7 @@ import subprocess
|
|||||||
def configure_and_build(source_path: str, project_path: str, options: List[Tuple[str, str]]):
|
def configure_and_build(source_path: str, project_path: str, options: List[Tuple[str, str]]):
|
||||||
base_configure_cmd = ['cmake',
|
base_configure_cmd = ['cmake',
|
||||||
'-B{}'.format(project_path),
|
'-B{}'.format(project_path),
|
||||||
'-H{}'.format(source_path),
|
'-S{}'.format(source_path),
|
||||||
'-DCMAKE_BUILD_TYPE=Debug',
|
'-DCMAKE_BUILD_TYPE=Debug',
|
||||||
'-DCATCH_DEVELOPMENT_BUILD=ON']
|
'-DCATCH_DEVELOPMENT_BUILD=ON']
|
||||||
for option, value in options:
|
for option, value in options:
|
||||||
|
@ -1,24 +1,18 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(discover-tests-test LANGUAGES CXX)
|
||||||
|
|
||||||
project(discover-tests-test
|
add_executable(tests register-tests.cpp)
|
||||||
LANGUAGES CXX
|
|
||||||
)
|
|
||||||
|
|
||||||
add_executable(tests
|
|
||||||
register-tests.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_subdirectory(${CATCH2_PATH} catch2-build)
|
add_subdirectory(${CATCH2_PATH} catch2-build)
|
||||||
target_link_libraries(tests PRIVATE Catch2::Catch2WithMain)
|
target_link_libraries(tests PRIVATE Catch2::Catch2WithMain)
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
include(Catch)
|
include(Catch)
|
||||||
set(extra_args)
|
set(extra_args)
|
||||||
if (CMAKE_VERSION GREATER_EQUAL 3.27)
|
if(CMAKE_VERSION GREATER_EQUAL 3.27)
|
||||||
list(APPEND extra_args
|
list(APPEND extra_args
|
||||||
DL_PATHS "${CMAKE_CURRENT_LIST_DIR};${CMAKE_CURRENT_LIST_DIR}/.."
|
DL_PATHS "${CMAKE_CURRENT_LIST_DIR};${CMAKE_CURRENT_LIST_DIR}/.."
|
||||||
)
|
)
|
||||||
endif ()
|
endif()
|
||||||
catch_discover_tests(
|
catch_discover_tests(
|
||||||
tests
|
tests
|
||||||
ADD_TAGS_AS_LABELS
|
ADD_TAGS_AS_LABELS
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(CatchCoverageHelper LANGUAGES CXX)
|
||||||
project(CatchCoverageHelper)
|
|
||||||
|
|
||||||
add_executable(CoverageHelper coverage-helper.cpp)
|
add_executable(CoverageHelper coverage-helper.cpp)
|
||||||
set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11)
|
set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD 11)
|
||||||
set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON)
|
set_property(TARGET CoverageHelper PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||||
set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF)
|
set_property(TARGET CoverageHelper PROPERTY CXX_EXTENSIONS OFF)
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
target_compile_options( CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062 )
|
target_compile_options(CoverageHelper PRIVATE /W4 /w44265 /WX /w44061 /w44062)
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,14 +8,14 @@ SETLOCAL EnableDelayedExpansion
|
|||||||
if "%CONFIGURATION%"=="Debug" (
|
if "%CONFIGURATION%"=="Debug" (
|
||||||
if "%coverage%"=="1" (
|
if "%coverage%"=="1" (
|
||||||
@REM # coverage needs to build the special helper as well as the main
|
@REM # coverage needs to build the special helper as well as the main
|
||||||
cmake -Htools/misc -Bbuild-misc -A%PLATFORM% || exit /b !ERRORLEVEL!
|
cmake -Stools/misc -Bbuild-misc -A%PLATFORM% || exit /b !ERRORLEVEL!
|
||||||
cmake --build build-misc || exit /b !ERRORLEVEL!
|
cmake --build build-misc || exit /b !ERRORLEVEL!
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_ENABLE_CONFIGURE_TESTS=%configure_tests% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
cmake -S. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DMEMORYCHECK_COMMAND=build-misc\Debug\CoverageHelper.exe -DMEMORYCHECK_COMMAND_OPTIONS=--sep-- -DMEMORYCHECK_TYPE=Valgrind -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_ENABLE_CONFIGURE_TESTS=%configure_tests% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
||||||
) else (
|
) else (
|
||||||
@REM # We know that coverage is 0
|
@REM # We know that coverage is 0
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_BUILD_SURROGATES=%surrogates% -DCATCH_DEVELOPMENT_BUILD=ON -DCATCH_ENABLE_CONFIGURE_TESTS=%configure_tests% || exit /b !ERRORLEVEL!
|
cmake -S. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_BUILD_EXAMPLES=%examples% -DCATCH_BUILD_EXTRA_TESTS=%examples% -DCATCH_BUILD_SURROGATES=%surrogates% -DCATCH_DEVELOPMENT_BUILD=ON -DCATCH_ENABLE_CONFIGURE_TESTS=%configure_tests% || exit /b !ERRORLEVEL!
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if "%CONFIGURATION%"=="Release" (
|
if "%CONFIGURATION%"=="Release" (
|
||||||
cmake -H. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
cmake -S. -BBuild -A%PLATFORM% -DCATCH_TEST_USE_WMAIN=%wmain% -DCATCH_DEVELOPMENT_BUILD=ON || exit /b !ERRORLEVEL!
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user