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

summaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorMartin Hořeňovský2022-10-28 00:16:38 +0200
committerMartin Hořeňovský2022-10-28 13:27:46 +0200
commit3b40cf13eb5f56f83c3c5df4c61227187e3fe15d (patch)
treee142d4127d3638c54b1be2d64ae2ef66c2ac607a /tests
parent223d8d638297454638459f7f6ef7db60b1adae99 (diff)
downloadcatch3-3b40cf13eb5f56f83c3c5df4c61227187e3fe15d.tar.gz
Split out parseTestSpec into test-only helpers
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt8
-rw-r--r--tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp1
-rw-r--r--tests/SelfTest/helpers/parse_test_spec.cpp22
-rw-r--r--tests/SelfTest/helpers/parse_test_spec.hpp15
4 files changed, 45 insertions, 1 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 698e40dd..46d62428 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -101,6 +101,7 @@ set(TEST_SOURCES
${SELF_TEST_DIR}/IntrospectiveTests/Xml.tests.cpp
${SELF_TEST_DIR}/IntrospectiveTests/ToString.tests.cpp
${SELF_TEST_DIR}/IntrospectiveTests/UniquePtr.tests.cpp
+ ${SELF_TEST_DIR}/helpers/parse_test_spec.cpp
${SELF_TEST_DIR}/TimingTests/Sleep.tests.cpp
${SELF_TEST_DIR}/UsageTests/Approx.tests.cpp
${SELF_TEST_DIR}/UsageTests/BDD.tests.cpp
@@ -129,6 +130,10 @@ set(TEST_SOURCES
${SELF_TEST_DIR}/UsageTests/Matchers.tests.cpp
)
+set(TEST_HEADERS
+ ${SELF_TEST_DIR}/helpers/parse_test_spec.hpp
+)
+
# Specify the headers, too, so CLion recognises them as project files
set(HEADERS
@@ -146,7 +151,8 @@ set(HEADERS
include(CTest)
-add_executable(SelfTest ${TEST_SOURCES})
+add_executable(SelfTest ${TEST_SOURCES} ${TEST_HEADERS})
+target_include_directories(SelfTest PRIVATE ${SELF_TEST_DIR})
target_link_libraries(SelfTest PRIVATE Catch2WithMain)
if (BUILD_SHARED_LIBS AND WIN32)
add_custom_command(TARGET SelfTest PRE_LINK
diff --git a/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp b/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp
index 57bb20ba..9c4eb03b 100644
--- a/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp
+++ b/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp
@@ -17,6 +17,7 @@
#include <catch2/generators/catch_generators.hpp>
#include <catch2/internal/catch_compiler_capabilities.hpp>
+#include <helpers/parse_test_spec.hpp>
namespace {
auto fakeTestCase(const char* name, const char* desc = "") { return Catch::makeTestCaseInfo("", { name, desc }, CATCH_INTERNAL_LINEINFO); }
diff --git a/tests/SelfTest/helpers/parse_test_spec.cpp b/tests/SelfTest/helpers/parse_test_spec.cpp
new file mode 100644
index 00000000..2431d524
--- /dev/null
+++ b/tests/SelfTest/helpers/parse_test_spec.cpp
@@ -0,0 +1,22 @@
+
+// Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+
+#include <helpers/parse_test_spec.hpp>
+
+#include <catch2/internal/catch_test_spec_parser.hpp>
+#include <catch2/interfaces/catch_interfaces_tag_alias_registry.hpp>
+
+namespace Catch {
+
+ TestSpec parseTestSpec( std::string const& arg ) {
+ return TestSpecParser( ITagAliasRegistry::get() )
+ .parse( arg )
+ .testSpec();
+ }
+
+} // namespace Catch
diff --git a/tests/SelfTest/helpers/parse_test_spec.hpp b/tests/SelfTest/helpers/parse_test_spec.hpp
new file mode 100644
index 00000000..4cf2a241
--- /dev/null
+++ b/tests/SelfTest/helpers/parse_test_spec.hpp
@@ -0,0 +1,15 @@
+
+// Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+
+#include <catch2/catch_test_spec.hpp>
+
+#include <string>
+
+namespace Catch {
+ TestSpec parseTestSpec( std::string const& arg );
+}