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

summaryrefslogtreecommitdiffhomepage
path: root/tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake
diff options
context:
space:
mode:
authorLeitwolf112026-10-25 02:37:35 +0300
committerLeitwolf112026-10-25 02:37:35 +0300
commit126dc333564cb72b5115d9a9242d66694694b6d0 (patch)
tree0bce4462b2e190c39b3e1c5f697e3e4abd1a5e2a /tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake
parent13f81a480a93807c14dddb5abdb97355ced4d4c5 (diff)
downloadcatch3-126dc333564cb72b5115d9a9242d66694694b6d0.tar.gz
Give Catch3 its own build names and headers
Catch2 compatibility means the API tests are written in: the macros, such as TEST_CASE and REQUIRE, and the Catch:: namespace. It does not mean Catch2's build names or header paths. find_package(Catch2) found Catch3, and a project using both frameworks met two packages, two sets of targets, two Catch.cmake modules and two catch2/ header trees with the same names. Build names: - CMake: project and package Catch3, targets Catch3::Catch3 and Catch3::Catch3WithMain, libraries Catch3 and Catch3Main, options CATCH3_*, lib/cmake/Catch3 with Catch3Config, and pkg-config catch3 and catch3-with-main. The version is Catch3's, 0.3.0, compatible within a minor version. - The CMake scripts are Catch3.cmake (catch3_discover_tests), Catch3AddTests.cmake and Catch3ShardTests.cmake (catch3_add_sharded_tests); the helpers they define at ctest time have a catch3_ prefix. ParseAndAddCatchTests.cmake, deprecated upstream, is gone. - Bazel //:catch3 and //:catch3_main, Meson catch3 and catch3-with-main (with override_dependency), Xmake catch3 and catch3_main, Premake Catch3 and Catch3WithMain. Visual Studio projects get GUIDs of their own. - The Progmasoft::Catch3 target and package are gone: property testing and snapshots are part of Catch3::Catch3. Their sources now build with the library's warning flags, so property failures are built field by field (no missing initializers) and the default property name is a thread-local pointer to the name its scope owns (no global destructor). Headers: the engine moved from src/catch2 to src/Progmasoft/Catch3 with Progmasoft names, so <catch2/catch_test_macros.hpp> is <Progmasoft/Catch3/TestMacros.hpp>, <catch2/matchers/catch_matchers_string.hpp> is <Progmasoft/Catch3/Matchers/String.hpp>, and interface headers are named after their interface, such as Interfaces/IConfig.hpp. Include guards became #pragma once. The installed headers go to include/Progmasoft. src/Progmasoft/Context.cpp is StrategyContext.cpp, so no two sources share a file name. tools/scripts/upstreamFiles.txt lists the files that come from Catch2. The license check expects BSL-1.0 on them and Progmasoft's header on the rest of src/Progmasoft; the convenience-header check, the amalgamation script and the surrogate tests take the engine's headers from it. The amalgamated files are regenerated. The header-guard workflow checks for #pragma once instead of checkguard. Documents, the README and the release notes describe the new names.
Diffstat (limited to 'tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake')
-rw-r--r--tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake28
1 files changed, 14 insertions, 14 deletions
diff --git a/tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake b/tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake
index c64b4f52..693979ad 100644
--- a/tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake
+++ b/tests/TestScripts/DiscoverTests/TestDecomposeJsonArray.cmake
@@ -1,37 +1,37 @@
# SPDX-License-Identifier: BSL-1.0
-# Unit tests for `split_json_array` helper in `extras/CatchAddTests.cmake`.
+# Unit tests for `catch3_split_json_array` helper in `extras/Catch3AddTests.cmake`.
#
# Yes, we are at the stage where the script helpers need unit tests.
#
# Run as
-# cmake -DCATCH_ADD_TESTS_SCRIPT=/path/to/extras/CatchAddTests.cmake \
+# cmake -DCATCH3_ADD_TESTS_SCRIPT=/path/to/extras/Catch3AddTests.cmake \
# -P TestDecomposeJsonArray.cmake
cmake_minimum_required(VERSION 3.19)
-if(NOT DEFINED CATCH_ADD_TESTS_SCRIPT)
- message(FATAL_ERROR "Missing argument `CATCH_ADD_TESTS_SCRIPT`")
+if(NOT DEFINED CATCH3_ADD_TESTS_SCRIPT)
+ message(FATAL_ERROR "Missing argument `CATCH3_ADD_TESTS_SCRIPT`")
endif()
-if(NOT EXISTS "${CATCH_ADD_TESTS_SCRIPT}")
- message(FATAL_ERROR "Cannot find CatchAddTests.cmake at '${CATCH_ADD_TESTS_SCRIPT}'")
+if(NOT EXISTS "${CATCH3_ADD_TESTS_SCRIPT}")
+ message(FATAL_ERROR "Cannot find Catch3AddTests.cmake at '${CATCH3_ADD_TESTS_SCRIPT}'")
endif()
# Pull in the helper functions. Without `TEST_EXECUTABLE` being defined,
-# `catch_discover_tests_impl` is not called.
-include("${CATCH_ADD_TESTS_SCRIPT}")
+# `catch3_discover_tests_impl` is not called.
+include("${CATCH3_ADD_TESTS_SCRIPT}")
set(_failures 0)
# Parses out test names from provided listings and returns them through `out_var`.
# Semicolons in test names are escaped as `@SEMI@`.
function(decomposed_names listing_var out_var)
- split_json_array(${listing_var} elements)
+ catch3_split_json_array(${listing_var} elements)
set(names "")
foreach(element IN LISTS elements)
- magic_unescape_chars(element)
+ catch3_magic_unescape_chars(element)
string(JSON name ERROR_VARIABLE err GET "${element}" "name")
if(NOT err STREQUAL "NOTFOUND")
set(${out_var} "PARSE-ERROR" PARENT_SCOPE)
@@ -62,9 +62,9 @@ endfunction()
# Assert that the tags in one decomposed element are preserved exactly.
# Semicolons in expected tags have to be escaped as `@SEMI@`.
function(expect_tags description listing_var element_index expected_tags)
- split_json_array(${listing_var} elements)
+ catch3_split_json_array(${listing_var} elements)
list(GET elements ${element_index} element)
- magic_unescape_chars(element)
+ catch3_magic_unescape_chars(element)
string(JSON tags ERROR_VARIABLE err GET "${element}" "tags")
if(NOT err STREQUAL "NOTFOUND")
@@ -109,7 +109,7 @@ function(make_listing out_var)
set(${out_var} "[\n${objects}]" PARENT_SCOPE)
endfunction()
-message(STATUS "Running split_json_array correctness tests")
+message(STATUS "Running catch3_split_json_array correctness tests")
# There are 2 main difficulties in the array decomposition that we need
# to check for:
@@ -191,4 +191,4 @@ if(_failures GREATER 0)
message(FATAL_ERROR "${_failures} decomposition test(s) failed")
endif()
-message(STATUS "All split_json_array correctness tests passed")
+message(STATUS "All catch3_split_json_array correctness tests passed")