Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorLeitwolf2026-10-25 10:31:36 +0300
committerGitHub2026-10-25 10:31:36 +0300
commitd2e3e074bb2e1b8ffd9fc990d0b87667ea602f58 (patch)
tree0bce4462b2e190c39b3e1c5f697e3e4abd1a5e2a /tests
parent13f81a480a93807c14dddb5abdb97355ced4d4c5 (diff)
parent126dc333564cb72b5115d9a9242d66694694b6d0 (diff)
downloadcatch3-d2e3e074bb2e1b8ffd9fc990d0b87667ea602f58.tar.gz
Merge pull request #18 from Progmasoft/build/catch3-identity
Give Catch3 its own build names and headers
Diffstat (limited to 'tests')
-rw-r--r--tests/BUILD.bazel12
-rw-r--r--tests/CMakeLists.txt53
-rw-r--r--tests/ExtraTests/CMakeLists.txt64
-rw-r--r--tests/ExtraTests/X01-PrefixedMacros.cpp6
-rw-r--r--tests/ExtraTests/X02-DisabledMacros.cpp8
-rw-r--r--tests/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp8
-rw-r--r--tests/ExtraTests/X04-DisabledExceptions-CustomHandler.cpp2
-rw-r--r--tests/ExtraTests/X05-DeferredStaticChecks.cpp4
-rw-r--r--tests/ExtraTests/X06-MixingClearedAndUnclearedMessages.cpp2
-rw-r--r--tests/ExtraTests/X07-FastCompileMacros.cpp2
-rw-r--r--tests/ExtraTests/X10-FallbackStringifier.cpp2
-rw-r--r--tests/ExtraTests/X11-DisableStringification.cpp2
-rw-r--r--tests/ExtraTests/X12-CustomDebugBreakMacro.cpp26
-rw-r--r--tests/ExtraTests/X20-AssertionStartingEventGoesBeforeAssertionIsEvaluated.cpp8
-rw-r--r--tests/ExtraTests/X21-PartialTestCaseEvents.cpp10
-rw-r--r--tests/ExtraTests/X24-ListenerStdoutCaptureInMultireporter.cpp6
-rw-r--r--tests/ExtraTests/X25-ListenerCanAskForCapturedStdout.cpp6
-rw-r--r--tests/ExtraTests/X27-CapturedStdoutInTestCaseEvents.cpp10
-rw-r--r--tests/ExtraTests/X28-ListenersGetEventsBeforeReporters.cpp6
-rw-r--r--tests/ExtraTests/X30-BazelReporter.cpp2
-rw-r--r--tests/ExtraTests/X31-DuplicatedTestCases.cpp2
-rw-r--r--tests/ExtraTests/X32-DuplicatedTestCasesDifferentTags.cpp2
-rw-r--r--tests/ExtraTests/X33-DuplicatedTestCaseMethods.cpp2
-rw-r--r--tests/ExtraTests/X34-DuplicatedTestCaseMethodsDifferentFixtures.cpp2
-rw-r--r--tests/ExtraTests/X36-ReportingCrashWithJunitReporter.cpp2
-rw-r--r--tests/ExtraTests/X37-ReportingInvalidTestCaseTags.cpp2
-rw-r--r--tests/ExtraTests/X40-QuickExit.cpp2
-rw-r--r--tests/ExtraTests/X90-WindowsHeaderInclusion.cpp2
-rw-r--r--tests/ExtraTests/X93-AllSkipped.cpp2
-rw-r--r--tests/ExtraTests/X94-ThreadSafetyTests.cpp2
-rw-r--r--tests/ExtraTests/X95-InfiniteGenerators.cpp4
-rw-r--r--tests/Progmasoft/BUILD.bazel9
-rw-r--r--tests/Progmasoft/Results.tests.cpp2
-rw-r--r--tests/Progmasoft/Runner.tests.cpp4
-rw-r--r--tests/Progmasoft/RunnerAnalysis.tests.cpp6
-rw-r--r--tests/Progmasoft/RunnerFixture.cpp2
-rw-r--r--tests/Progmasoft/RunnerFixtureClient.hpp2
-rw-r--r--tests/Progmasoft/RunnerOptions.tests.cpp6
-rw-r--r--tests/Progmasoft/RunnerOutput.tests.cpp4
-rw-r--r--tests/Progmasoft/RunnerPlanner.tests.cpp4
-rw-r--r--tests/Progmasoft/RunnerUnits.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/Algorithms.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/AssertionHandler.tests.cpp2
-rw-r--r--tests/SelfTest/IntrospectiveTests/Details.tests.cpp10
-rw-r--r--tests/SelfTest/IntrospectiveTests/FloatingPoint.tests.cpp8
-rw-r--r--tests/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp14
-rw-r--r--tests/SelfTest/IntrospectiveTests/Integer.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp16
-rw-r--r--tests/SelfTest/IntrospectiveTests/Parse.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/PartTracker.tests.cpp8
-rw-r--r--tests/SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp20
-rw-r--r--tests/SelfTest/IntrospectiveTests/String.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/StringManip.tests.cpp6
-rw-r--r--tests/SelfTest/IntrospectiveTests/Tag.tests.cpp10
-rw-r--r--tests/SelfTest/IntrospectiveTests/TestCaseInfoHasher.tests.cpp6
-rw-r--r--tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp18
-rw-r--r--tests/SelfTest/IntrospectiveTests/TestSpecParser.tests.cpp10
-rw-r--r--tests/SelfTest/IntrospectiveTests/ToString.tests.cpp10
-rw-r--r--tests/SelfTest/IntrospectiveTests/Traits.tests.cpp4
-rw-r--r--tests/SelfTest/IntrospectiveTests/UniquePtr.tests.cpp4
-rw-r--r--tests/SelfTest/TestRegistrations.cpp10
-rw-r--r--tests/SelfTest/TimingTests/Sleep.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/Approx.tests.cpp4
-rw-r--r--tests/SelfTest/UsageTests/BDD.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/Benchmark.tests.cpp8
-rw-r--r--tests/SelfTest/UsageTests/Class.tests.cpp4
-rw-r--r--tests/SelfTest/UsageTests/Compilation.tests.cpp6
-rw-r--r--tests/SelfTest/UsageTests/Condition.tests.cpp4
-rw-r--r--tests/SelfTest/UsageTests/Decomposition.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/EnumToString.tests.cpp6
-rw-r--r--tests/SelfTest/UsageTests/Exception.tests.cpp6
-rw-r--r--tests/SelfTest/UsageTests/Generators.tests.cpp10
-rw-r--r--tests/SelfTest/UsageTests/Matchers.tests.cpp16
-rw-r--r--tests/SelfTest/UsageTests/MatchersConstexpr.tests.cpp14
-rw-r--r--tests/SelfTest/UsageTests/MatchersRanges.tests.cpp16
-rw-r--r--tests/SelfTest/UsageTests/Message.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/Misc.tests.cpp8
-rw-r--r--tests/SelfTest/UsageTests/Skip.tests.cpp4
-rw-r--r--tests/SelfTest/UsageTests/ToStringByte.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringChrono.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringGeneral.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringOptional.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringPair.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringTuple.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringVariant.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringVector.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/ToStringWhich.tests.cpp2
-rw-r--r--tests/SelfTest/UsageTests/Tricky.tests.cpp6
-rw-r--r--tests/SelfTest/UsageTests/VariadicMacros.tests.cpp2
-rw-r--r--tests/SelfTest/helpers/parse_test_spec.cpp4
-rw-r--r--tests/SelfTest/helpers/parse_test_spec.hpp2
-rw-r--r--tests/SelfTest/helpers/range_test_helpers.hpp2
-rw-r--r--tests/TestScripts/ConfigureTestsCommon.py2
-rw-r--r--tests/TestScripts/DiscoverTests/CMakeLists.txt6
-rw-r--r--tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake28
-rw-r--r--tests/TestScripts/DiscoverTests/TestPrepareCommandFragment.cmake28
-rw-r--r--tests/TestScripts/DiscoverTests/register-tests.cpp2
-rw-r--r--tests/TestScripts/testConfigureDisable.py2
-rw-r--r--tests/meson.build9
99 files changed, 336 insertions, 367 deletions
diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel
index 00c39a7d..1fe8cb2b 100644
--- a/tests/BUILD.bazel
+++ b/tests/BUILD.bazel
@@ -3,7 +3,7 @@ load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
package(default_visibility = ["//visibility:public"])
cc_library(
- name = "catch2_self_test_helper",
+ name = "catch3_self_test_helper",
srcs = ["SelfTest/helpers/parse_test_spec.cpp"],
hdrs = [
"SelfTest/helpers/parse_test_spec.hpp",
@@ -12,12 +12,12 @@ cc_library(
],
includes = ["SelfTest"],
deps = [
- "//:catch2",
+ "//:catch3",
],
)
cc_test(
- name = "catch2_self_test",
+ name = "catch3_self_test",
size = "small",
srcs = [
"SelfTest/IntrospectiveTests/Algorithms.tests.cpp",
@@ -70,8 +70,8 @@ cc_test(
"SelfTest/UsageTests/VariadicMacros.tests.cpp",
],
deps = [
- ":catch2_self_test_helper",
- "//:catch2",
- "//:catch2_main",
+ ":catch3_self_test_helper",
+ "//:catch3",
+ "//:catch3_main",
],
)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 71411b53..5d152378 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,6 +1,6 @@
include(CatchMiscFunctions)
-if(CATCH_BUILD_SURROGATES)
+if(CATCH3_BUILD_SURROGATES)
message(STATUS "Configuring targets for surrogate TUs")
# If the folder does not exist before we ask for output redirect to
@@ -13,7 +13,10 @@ if(CATCH_BUILD_SURROGATES)
set(pathPrefix ${PROJECT_SOURCE_DIR}/src)
file(RELATIVE_PATH includePath ${pathPrefix} ${sourceHeader})
- get_filename_component(basicFileName "${sourceHeader}" NAME_WE)
+ # Headers in different directories may share a name, so the directory
+ # is part of the surrogate's name.
+ string(REGEX REPLACE "\\.hpp$" "" basicFileName "${includePath}")
+ string(REPLACE "/" "_" basicFileName "${basicFileName}")
set(surrogateFilePath ${CMAKE_CURRENT_BINARY_DIR}/surrogates/surrogate_${basicFileName}.cpp)
add_custom_command(
@@ -25,24 +28,26 @@ if(CATCH_BUILD_SURROGATES)
set(${pathToFile} ${surrogateFilePath} PARENT_SCOPE)
endfunction()
- # Extracts all non-helper (e.g. catch_all.hpp) headers from the
- # Catch2 target, and returns them through the argument.
- function(ExtractCatch2Headers OutArg)
- get_target_property(targetSources Catch2 SOURCES)
+ # Extracts all non-helper (e.g. Progmasoft/Catch3/All.hpp) headers from the
+ # Catch3 target, and returns them through the argument.
+ function(ExtractCatch3Headers OutArg)
+ # The engine's headers are the ones that come from Catch2. The other
+ # headers need C++20; the surrogates check the engine's headers at the
+ # language level of the build.
+ file(STRINGS "${CATCH_DIR}/tools/scripts/upstreamFiles.txt" upstreamFiles REGEX "^src/")
+ get_target_property(targetSources Catch3 SOURCES)
foreach(Source ${targetSources})
string(REGEX MATCH "^.*\\.hpp$" isHeader ${Source})
- string(REGEX MATCH "_all.hpp" isAllHeader ${Source})
- # The runner's headers need C++20; the surrogates check Catch2's
- # headers at the language level of the build.
- string(REGEX MATCH "/Progmasoft/" isRunnerHeader ${Source})
- if(isHeader AND NOT isAllHeader AND NOT isRunnerHeader)
+ string(REGEX MATCH "/All\\.hpp$" isAllHeader ${Source})
+ file(RELATIVE_PATH relativeSource "${CATCH_DIR}" "${Source}")
+ if(isHeader AND NOT isAllHeader AND relativeSource IN_LIST upstreamFiles)
list(APPEND AllHeaders ${Source})
endif()
endforeach()
set(${OutArg} ${AllHeaders} PARENT_SCOPE)
endfunction()
- ExtractCatch2Headers(mainHeaders)
+ ExtractCatch3Headers(mainHeaders)
if(NOT mainHeaders)
message(FATAL_ERROR "No headers in the main target were detected. Something is broken.")
@@ -53,10 +58,10 @@ if(CATCH_BUILD_SURROGATES)
list(APPEND surrogateFiles ${pathToGeneratedFile})
endforeach()
- add_executable(Catch2SurrogateTarget
+ add_executable(Catch3SurrogateTarget
${surrogateFiles}
)
- target_link_libraries(Catch2SurrogateTarget PRIVATE Catch2WithMain)
+ target_link_libraries(Catch3SurrogateTarget PRIVATE Catch3WithMain)
endif()
####
@@ -146,7 +151,7 @@ include(CTest)
add_executable(SelfTest ${TEST_SOURCES} ${TEST_HEADERS})
target_include_directories(SelfTest PRIVATE ${SELF_TEST_DIR})
-target_link_libraries(SelfTest PRIVATE Catch2WithMain)
+target_link_libraries(SelfTest PRIVATE Catch3WithMain)
# Exercise the C++20 Progmasoft layer independently so the upstream Catch2
# SelfTest continues to compile at its supported baseline language level.
@@ -165,12 +170,12 @@ add_executable(ProgmasoftSelfTest
Progmasoft/Stateful.tests.cpp
Progmasoft/Strategy.tests.cpp
)
-target_link_libraries(ProgmasoftSelfTest PRIVATE Progmasoft::Catch3 Catch2WithMain)
+target_link_libraries(ProgmasoftSelfTest PRIVATE Catch3WithMain)
target_compile_features(ProgmasoftSelfTest PRIVATE cxx_std_20)
# Tests that misbehave on purpose, for the runner's integration tests.
add_executable(RunnerFixture Progmasoft/RunnerFixture.cpp)
-target_link_libraries(RunnerFixture PRIVATE Catch2WithMain)