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-07-17 14:00:04 +0200
committerMartin Hořeňovský2022-07-17 19:15:20 +0200
commit9c9f35068edaa1290789c56f241fc54e7de0eeb0 (patch)
tree21e6acbce31ac5fcf0145e627bc88ce2e0cec935 /tests
parent1bd233866c5ba1d94fbea34b260685b4b4ecb796 (diff)
downloadcatch3-9c9f35068edaa1290789c56f241fc54e7de0eeb0.tar.gz
Normalize C++ namespace in JUnit's reporter classname field
Closes #2468
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt11
-rw-r--r--tests/SelfTest/UsageTests/Class.tests.cpp16
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index d029e05d..0a605e12 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -553,6 +553,17 @@ set_tests_properties("Colours::ColourModeCanBeExplicitlySetToAnsi"
PASS_REGULAR_EXPRESSION "\\[1\;32mAll tests passed"
)
+add_test(NAME "Reporters::JUnit::NamespacesAreNormalized"
+ COMMAND
+ $<TARGET_FILE:SelfTest>
+ --reporter junit
+ "A TEST_CASE_METHOD testing junit classname normalization"
+)
+set_tests_properties("Reporters::JUnit::NamespacesAreNormalized"
+ PROPERTIES
+ PASS_REGULAR_EXPRESSION "testcase classname=\"SelfTest(\.exe)?\\.A\\.B\\.TestClass\""
+)
+
if (CATCH_ENABLE_CONFIGURE_TESTS)
foreach(testName "DefaultReporter" "Disable" "DisableStringification"
"ExperimentalRedirect")
diff --git a/tests/SelfTest/UsageTests/Class.tests.cpp b/tests/SelfTest/UsageTests/Class.tests.cpp
index 2bdc8d81..6b2ba4cf 100644
--- a/tests/SelfTest/UsageTests/Class.tests.cpp
+++ b/tests/SelfTest/UsageTests/Class.tests.cpp
@@ -114,4 +114,20 @@ namespace Inner
{
REQUIRE(Template_Fixture_2<TestType>{}.m_a.size() < 2);
}
+} // namespace
+
+
+// We want a class in nested namespace so we can test JUnit's classname normalization.
+namespace {
+ namespace A {
+ namespace B {
+ class TestClass {};
+ }
+ }
+} // namespace
+
+TEST_CASE_METHOD( A::B::TestClass,
+ "A TEST_CASE_METHOD testing junit classname normalization",
+ "[class][approvals]" ) {
+ SUCCEED();
}