From c6dfeb5e7dc175ca4765e884414dab52736cde9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Wed, 26 Oct 2022 21:03:49 +0200 Subject: [PATCH] Split tests for TestSpec into its own file They also got slapped with the `[approvals]` tag in the process, because we have too many approval tests and want less of them, and these particular tests don't bring much value. Related to #2090 --- tests/CMakeLists.txt | 1 + .../Baselines/automake.sw.approved.txt | 1 - .../Baselines/automake.sw.multi.approved.txt | 1 - .../Baselines/compact.sw.approved.txt | 169 +-- .../Baselines/compact.sw.multi.approved.txt | 169 +-- .../Baselines/console.std.approved.txt | 4 +- .../Baselines/console.sw.approved.txt | 1024 +------------ .../Baselines/console.sw.multi.approved.txt | 1024 +------------ .../Baselines/console.swa4.approved.txt | 20 +- .../SelfTest/Baselines/junit.sw.approved.txt | 37 +- .../Baselines/junit.sw.multi.approved.txt | 37 +- .../Baselines/sonarqube.sw.approved.txt | 43 +- .../Baselines/sonarqube.sw.multi.approved.txt | 43 +- tests/SelfTest/Baselines/tap.sw.approved.txt | 304 +--- .../Baselines/tap.sw.multi.approved.txt | 304 +--- .../Baselines/teamcity.sw.approved.txt | 2 - .../Baselines/teamcity.sw.multi.approved.txt | 2 - tests/SelfTest/Baselines/xml.sw.approved.txt | 1342 +---------------- .../Baselines/xml.sw.multi.approved.txt | 1342 +---------------- .../IntrospectiveTests/CmdLine.tests.cpp | 305 ---- .../IntrospectiveTests/TestSpec.tests.cpp | 327 ++++ 21 files changed, 422 insertions(+), 6079 deletions(-) create mode 100644 tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b6508c23..1fec3914 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -91,6 +91,7 @@ set(TEST_SOURCES ${SELF_TEST_DIR}/IntrospectiveTests/Reporters.tests.cpp ${SELF_TEST_DIR}/IntrospectiveTests/Tag.tests.cpp ${SELF_TEST_DIR}/IntrospectiveTests/TestCaseInfoHasher.tests.cpp + ${SELF_TEST_DIR}/IntrospectiveTests/TestSpec.tests.cpp ${SELF_TEST_DIR}/IntrospectiveTests/TestSpecParser.tests.cpp ${SELF_TEST_DIR}/IntrospectiveTests/TextFlow.tests.cpp ${SELF_TEST_DIR}/IntrospectiveTests/Sharding.tests.cpp diff --git a/tests/SelfTest/Baselines/automake.sw.approved.txt b/tests/SelfTest/Baselines/automake.sw.approved.txt index d3a1b63f..e29de92b 100644 --- a/tests/SelfTest/Baselines/automake.sw.approved.txt +++ b/tests/SelfTest/Baselines/automake.sw.approved.txt @@ -188,7 +188,6 @@ Nor would this :test-result: PASS Our PCG implementation provides expected results for known seeds :test-result: FAIL Output from all sections is reported :test-result: PASS Overloaded comma or address-of operators are not used -:test-result: PASS Parse test names and tags :test-result: PASS Parse uints :test-result: PASS Parsed tags are matched case insensitive :test-result: PASS Parsing sharding-related cli flags diff --git a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt index 8604cde2..3ac53920 100644 --- a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt @@ -186,7 +186,6 @@ :test-result: PASS Our PCG implementation provides expected results for known seeds :test-result: FAIL Output from all sections is reported :test-result: PASS Overloaded comma or address-of operators are not used -:test-result: PASS Parse test names and tags :test-result: PASS Parse uints :test-result: PASS Parsed tags are matched case insensitive :test-result: PASS Parsing sharding-related cli flags diff --git a/tests/SelfTest/Baselines/compact.sw.approved.txt b/tests/SelfTest/Baselines/compact.sw.approved.txt index 0f62c31f..bed38433 100644 --- a/tests/SelfTest/Baselines/compact.sw.approved.txt +++ b/tests/SelfTest/Baselines/compact.sw.approved.txt @@ -22,13 +22,13 @@ This would not be caught previously Nor would this Tricky.tests.cpp:: failed: explicitly with 1 message: '1514' Compilation.tests.cpp:: passed: std::is_same, TypeList>::value for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("spec . char")) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("spec , char")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase(R"(spec \, char)"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec {a} char)")) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec [a] char)")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec \ char)")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase("spec . char")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase("spec , char")) for: true +TestSpec.tests.cpp:: passed: !(spec.matches(*fakeTestCase(R"(spec \, char)"))) for: !false +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec {a} char)")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec [a] char)")) for: true +TestSpec.tests.cpp:: passed: !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) for: !false +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec \ char)")) for: true Generators.tests.cpp:: passed: counter < 7 for: 3 < 7 Generators.tests.cpp:: passed: counter < 7 for: 6 < 7 Generators.tests.cpp:: passed: i != j for: 1 != 3 @@ -1119,157 +1119,6 @@ Matchers.tests.cpp:: passed: ( EvilMatcher(), EvilMatcher() ), Evil Matchers.tests.cpp:: passed: &EvilMatcher(), EvilAddressOfOperatorUsed Matchers.tests.cpp:: passed: EvilMatcher() || ( EvilMatcher() && !EvilMatcher() ) Matchers.tests.cpp:: passed: ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: parseTestSpec( "*a" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: parseTestSpec( "a*" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: parseTestSpec( "*a*" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only hidden", "[.]"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) for: true Parse.tests.cpp:: passed: parseUInt( "0" ) == Optional{ 0 } for: {?} == {?} Parse.tests.cpp:: passed: parseUInt( "100" ) == Optional{ 100 } for: {?} == {?} Parse.tests.cpp:: passed: parseUInt( "4294967295" ) == Optional{ 4294967295 } for: {?} == {?} @@ -2610,7 +2459,7 @@ InternalBenchmark.tests.cpp:: passed: med == 18. for: 18.0 == 18.0 InternalBenchmark.tests.cpp:: passed: q3 == 23. for: 23.0 == 23.0 Misc.tests.cpp:: passed: Misc.tests.cpp:: passed: -test cases: 395 | 305 passed | 83 failed | 7 failed as expected -assertions: 2310 | 2140 passed | 143 failed | 27 failed as expected +test cases: 394 | 304 passed | 83 failed | 7 failed as expected +assertions: 2159 | 1989 passed | 143 failed | 27 failed as expected diff --git a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt index 794af3a5..1ba95db7 100644 --- a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt @@ -20,13 +20,13 @@ This info message starts with a linebreak' with 1 message: ' This warning message starts with a linebreak' Tricky.tests.cpp:: failed: explicitly with 1 message: '1514' Compilation.tests.cpp:: passed: std::is_same, TypeList>::value for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("spec . char")) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("spec , char")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase(R"(spec \, char)"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec {a} char)")) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec [a] char)")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec \ char)")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase("spec . char")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase("spec , char")) for: true +TestSpec.tests.cpp:: passed: !(spec.matches(*fakeTestCase(R"(spec \, char)"))) for: !false +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec {a} char)")) for: true +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec [a] char)")) for: true +TestSpec.tests.cpp:: passed: !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) for: !false +TestSpec.tests.cpp:: passed: spec.matches(*fakeTestCase(R"(spec \ char)")) for: true Generators.tests.cpp:: passed: counter < 7 for: 3 < 7 Generators.tests.cpp:: passed: counter < 7 for: 6 < 7 Generators.tests.cpp:: passed: i != j for: 1 != 3 @@ -1117,157 +1117,6 @@ Matchers.tests.cpp:: passed: ( EvilMatcher(), EvilMatcher() ), Evil Matchers.tests.cpp:: passed: &EvilMatcher(), EvilAddressOfOperatorUsed Matchers.tests.cpp:: passed: EvilMatcher() || ( EvilMatcher() && !EvilMatcher() ) Matchers.tests.cpp:: passed: ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: parseTestSpec( "*a" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: parseTestSpec( "a*" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: parseTestSpec( "*a*" ).matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.hasFilters() == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *tcA ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcB ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcC ) == false for: false == false -CmdLine.tests.cpp:: passed: spec.matches( *tcD ) == true for: true == true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( " aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark " ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches( *fakeTestCase( "aardvark" ) ) for: true -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) for: true -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -CmdLine.tests.cpp:: passed: !(spec.matches(*fakeTestCase("only hidden", "[.]"))) for: !false -CmdLine.tests.cpp:: passed: spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) for: true Parse.tests.cpp:: passed: parseUInt( "0" ) == Optional{ 0 } for: {?} == {?} Parse.tests.cpp:: passed: parseUInt( "100" ) == Optional{ 100 } for: {?} == {?} Parse.tests.cpp:: passed: parseUInt( "4294967295" ) == Optional{ 4294967295 } for: {?} == {?} @@ -2602,7 +2451,7 @@ InternalBenchmark.tests.cpp:: passed: med == 18. for: 18.0 == 18.0 InternalBenchmark.tests.cpp:: passed: q3 == 23. for: 23.0 == 23.0 Misc.tests.cpp:: passed: Misc.tests.cpp:: passed: -test cases: 395 | 305 passed | 83 failed | 7 failed as expected -assertions: 2310 | 2140 passed | 143 failed | 27 failed as expected +test cases: 394 | 304 passed | 83 failed | 7 failed as expected +assertions: 2159 | 1989 passed | 143 failed | 27 failed as expected diff --git a/tests/SelfTest/Baselines/console.std.approved.txt b/tests/SelfTest/Baselines/console.std.approved.txt index 9515b2c6..b7413384 100644 --- a/tests/SelfTest/Baselines/console.std.approved.txt +++ b/tests/SelfTest/Baselines/console.std.approved.txt @@ -1394,6 +1394,6 @@ due to unexpected exception with message: Why would you throw a std::string? =============================================================================== -test cases: 395 | 319 passed | 69 failed | 7 failed as expected -assertions: 2295 | 2140 passed | 128 failed | 27 failed as expected +test cases: 394 | 318 passed | 69 failed | 7 failed as expected +assertions: 2144 | 1989 passed | 128 failed | 27 failed as expected diff --git a/tests/SelfTest/Baselines/console.sw.approved.txt b/tests/SelfTest/Baselines/console.sw.approved.txt index 929c746d..9a539685 100644 --- a/tests/SelfTest/Baselines/console.sw.approved.txt +++ b/tests/SelfTest/Baselines/console.sw.approved.txt @@ -166,20 +166,20 @@ with expansion: ------------------------------------------------------------------------------- #1905 -- test spec parser properly clears internal state between compound tests ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec . char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec , char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase(R"(spec \, char)")) ) with expansion: !false @@ -188,20 +188,20 @@ with expansion: #1912 -- test spec parser handles escaping Various parentheses ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec {a} char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec [a] char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase("differs but has similar tag", "[a]")) ) with expansion: !false @@ -210,10 +210,10 @@ with expansion: #1912 -- test spec parser handles escaping backslash in test name ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec \ char)")) ) with expansion: true @@ -8055,1006 +8055,6 @@ Matchers.tests.cpp:: PASSED: Matchers.tests.cpp:: PASSED: REQUIRE_NOTHROW( ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() ) -------------------------------------------------------------------------------- -Parse test names and tags - Empty test spec should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from empty string should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from just a comma should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from quoted name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "*a" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the end -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "a*" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "*a*" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the end -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at both ends -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends, redundant at start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Just wildcard -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag, two matches -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags, spare separated -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcarded name and tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion, using exclude:, and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - name exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion with tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion, using exclude:, with tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - two wildcarded names -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty quoted name -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - quoted string followed by tag exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Leading and trailing spaces in test spec -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Parse test names and tags - Leading and trailing spaces in test name -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Parse test names and tags - Shortened hide tags are split apart when parsing -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only foo", "[foo]")) ) -with expansion: - !false - -------------------------------------------------------------------------------- -Parse test names and tags - Shortened hide tags also properly handle exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only foo", "[foo]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only hidden", "[.]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) ) -with expansion: - true - ------------------------------------------------------------------------------- Parse uints proper inputs @@ -18518,6 +17518,6 @@ Misc.tests.cpp: Misc.tests.cpp:: PASSED: =============================================================================== -test cases: 395 | 305 passed | 83 failed | 7 failed as expected -assertions: 2310 | 2140 passed | 143 failed | 27 failed as expected +test cases: 394 | 304 passed | 83 failed | 7 failed as expected +assertions: 2159 | 1989 passed | 143 failed | 27 failed as expected diff --git a/tests/SelfTest/Baselines/console.sw.multi.approved.txt b/tests/SelfTest/Baselines/console.sw.multi.approved.txt index 685f57e7..304baec3 100644 --- a/tests/SelfTest/Baselines/console.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/console.sw.multi.approved.txt @@ -164,20 +164,20 @@ with expansion: ------------------------------------------------------------------------------- #1905 -- test spec parser properly clears internal state between compound tests ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec . char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec , char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase(R"(spec \, char)")) ) with expansion: !false @@ -186,20 +186,20 @@ with expansion: #1912 -- test spec parser handles escaping Various parentheses ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec {a} char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec [a] char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase("differs but has similar tag", "[a]")) ) with expansion: !false @@ -208,10 +208,10 @@ with expansion: #1912 -- test spec parser handles escaping backslash in test name ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec \ char)")) ) with expansion: true @@ -8053,1006 +8053,6 @@ Matchers.tests.cpp:: PASSED: Matchers.tests.cpp:: PASSED: REQUIRE_NOTHROW( ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() ) -------------------------------------------------------------------------------- -Parse test names and tags - Empty test spec should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from empty string should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from just a comma should have no filters -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from quoted name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "*a" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the end -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "a*" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( parseTestSpec( "*a*" ).matches( *tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the end -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at both ends -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends, redundant at start -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Just wildcard -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag, two matches -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags, spare separated -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcarded name and tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion, using exclude:, and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - name exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion with tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion, using exclude:, with tag inclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - two wildcarded names -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty tag -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty quoted name -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - quoted string followed by tag exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcA ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcB ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcC ) == false ) -with expansion: - false == false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Leading and trailing spaces in test spec -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Parse test names and tags - Leading and trailing spaces in test name -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Parse test names and tags - Shortened hide tags are split apart when parsing -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) ) -with expansion: - true - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only foo", "[foo]")) ) -with expansion: - !false - -------------------------------------------------------------------------------- -Parse test names and tags - Shortened hide tags also properly handle exclusion -------------------------------------------------------------------------------- -CmdLine.tests.cpp: -............................................................................... - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only foo", "[foo]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK_FALSE( spec.matches(*fakeTestCase("only hidden", "[.]")) ) -with expansion: - !false - -CmdLine.tests.cpp:: PASSED: - CHECK( spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) ) -with expansion: - true - ------------------------------------------------------------------------------- Parse uints proper inputs @@ -18510,6 +17510,6 @@ Misc.tests.cpp: Misc.tests.cpp:: PASSED: =============================================================================== -test cases: 395 | 305 passed | 83 failed | 7 failed as expected -assertions: 2310 | 2140 passed | 143 failed | 27 failed as expected +test cases: 394 | 304 passed | 83 failed | 7 failed as expected +assertions: 2159 | 1989 passed | 143 failed | 27 failed as expected diff --git a/tests/SelfTest/Baselines/console.swa4.approved.txt b/tests/SelfTest/Baselines/console.swa4.approved.txt index ede2d59c..1022407f 100644 --- a/tests/SelfTest/Baselines/console.swa4.approved.txt +++ b/tests/SelfTest/Baselines/console.swa4.approved.txt @@ -166,20 +166,20 @@ with expansion: ------------------------------------------------------------------------------- #1905 -- test spec parser properly clears internal state between compound tests ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec . char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase("spec , char")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase(R"(spec \, char)")) ) with expansion: !false @@ -188,20 +188,20 @@ with expansion: #1912 -- test spec parser handles escaping Various parentheses ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec {a} char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec [a] char)")) ) with expansion: true -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE_FALSE( spec.matches(*fakeTestCase("differs but has similar tag", "[a]")) ) with expansion: !false @@ -210,10 +210,10 @@ with expansion: #1912 -- test spec parser handles escaping backslash in test name ------------------------------------------------------------------------------- -CmdLine.tests.cpp: +TestSpec.tests.cpp: ............................................................................... -CmdLine.tests.cpp:: PASSED: +TestSpec.tests.cpp:: PASSED: REQUIRE( spec.matches(*fakeTestCase(R"(spec \ char)")) ) with expansion: true diff --git a/tests/SelfTest/Baselines/junit.sw.approved.txt b/tests/SelfTest/Baselines/junit.sw.approved.txt index eed28e7b..617fc32c 100644 --- a/tests/SelfTest/Baselines/junit.sw.approved.txt +++ b/tests/SelfTest/Baselines/junit.sw.approved.txt @@ -1,7 +1,7 @@ - + @@ -1048,41 +1048,6 @@ Message.tests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt index 54a5a13c..64df87e2 100644 --- a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt @@ -1,6 +1,6 @@ - + @@ -1047,41 +1047,6 @@ Message.tests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt index a21c6a51..fc119949 100644 --- a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt +++ b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt @@ -9,44 +9,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -287,6 +249,11 @@ + + + + + diff --git a/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt b/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt index cf90c1f7..659080b9 100644 --- a/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt @@ -8,44 +8,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -286,6 +248,11 @@ + + + + + diff --git a/tests/SelfTest/Baselines/tap.sw.approved.txt b/tests/SelfTest/Baselines/tap.sw.approved.txt index 28816cc5..c7d60903 100644 --- a/tests/SelfTest/Baselines/tap.sw.approved.txt +++ b/tests/SelfTest/Baselines/tap.sw.approved.txt @@ -2082,308 +2082,6 @@ ok {test-number} - &EvilMatcher(), EvilAddressOfOperatorUsed ok {test-number} - EvilMatcher() || ( EvilMatcher() && !EvilMatcher() ) # Overloaded comma or address-of operators are not used ok {test-number} - ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - parseTestSpec( "*a" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - parseTestSpec( "a*" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - parseTestSpec( "*a*" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) for: true -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only hidden", "[.]"))) for: !false -# Parse test names and tags -ok {test-number} - spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) for: true # Parse uints ok {test-number} - parseUInt( "0" ) == Optional{ 0 } for: {?} == {?} # Parse uints @@ -4624,5 +4322,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 ok {test-number} - # xmlentitycheck ok {test-number} - -1..2310 +1..2159 diff --git a/tests/SelfTest/Baselines/tap.sw.multi.approved.txt b/tests/SelfTest/Baselines/tap.sw.multi.approved.txt index 0f39a170..f6e13276 100644 --- a/tests/SelfTest/Baselines/tap.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/tap.sw.multi.approved.txt @@ -2080,308 +2080,6 @@ ok {test-number} - &EvilMatcher(), EvilAddressOfOperatorUsed ok {test-number} - EvilMatcher() || ( EvilMatcher() && !EvilMatcher() ) # Overloaded comma or address-of operators are not used ok {test-number} - ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher() -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - parseTestSpec( "*a" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - parseTestSpec( "a*" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - parseTestSpec( "*a*" ).matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.hasFilters() == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *tcA ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcB ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcC ) == false for: false == false -# Parse test names and tags -ok {test-number} - spec.matches( *tcD ) == true for: true == true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( " aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark " ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches( *fakeTestCase( "aardvark" ) ) for: true -# Parse test names and tags -ok {test-number} - spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) for: true -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) for: !false -# Parse test names and tags -ok {test-number} - !(spec.matches(*fakeTestCase("only hidden", "[.]"))) for: !false -# Parse test names and tags -ok {test-number} - spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) for: true # Parse uints ok {test-number} - parseUInt( "0" ) == Optional{ 0 } for: {?} == {?} # Parse uints @@ -4616,5 +4314,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 ok {test-number} - # xmlentitycheck ok {test-number} - -1..2310 +1..2159 diff --git a/tests/SelfTest/Baselines/teamcity.sw.approved.txt b/tests/SelfTest/Baselines/teamcity.sw.approved.txt index d707dd29..7049f2b6 100644 --- a/tests/SelfTest/Baselines/teamcity.sw.approved.txt +++ b/tests/SelfTest/Baselines/teamcity.sw.approved.txt @@ -481,8 +481,6 @@ Message.tests.cpp:|nexplicit failure with message:|n "Message from ##teamcity[testFinished name='Output from all sections is reported' duration="{duration}"] ##teamcity[testStarted name='Overloaded comma or address-of operators are not used'] ##teamcity[testFinished name='Overloaded comma or address-of operators are not used' duration="{duration}"] -##teamcity[testStarted name='Parse test names and tags'] -##teamcity[testFinished name='Parse test names and tags' duration="{duration}"] ##teamcity[testStarted name='Parse uints'] ##teamcity[testFinished name='Parse uints' duration="{duration}"] ##teamcity[testStarted name='Parsed tags are matched case insensitive'] diff --git a/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt b/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt index 9f29b201..96de7dd8 100644 --- a/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt @@ -481,8 +481,6 @@ Message.tests.cpp:|nexplicit failure with message:|n "Message from ##teamcity[testFinished name='Output from all sections is reported' duration="{duration}"] ##teamcity[testStarted name='Overloaded comma or address-of operators are not used'] ##teamcity[testFinished name='Overloaded comma or address-of operators are not used' duration="{duration}"] -##teamcity[testStarted name='Parse test names and tags'] -##teamcity[testFinished name='Parse test names and tags' duration="{duration}"] ##teamcity[testStarted name='Parse uints'] ##teamcity[testFinished name='Parse uints' duration="{duration}"] ##teamcity[testStarted name='Parsed tags are matched case insensitive'] diff --git a/tests/SelfTest/Baselines/xml.sw.approved.txt b/tests/SelfTest/Baselines/xml.sw.approved.txt index acaee5b3..2c4b5b14 100644 --- a/tests/SelfTest/Baselines/xml.sw.approved.txt +++ b/tests/SelfTest/Baselines/xml.sw.approved.txt @@ -162,8 +162,8 @@ Nor would this - - + + spec.matches(*fakeTestCase("spec . char")) @@ -171,7 +171,7 @@ Nor would this true - + spec.matches(*fakeTestCase("spec , char")) @@ -179,7 +179,7 @@ Nor would this true - + !(spec.matches(*fakeTestCase(R"(spec \, char)"))) @@ -189,9 +189,9 @@ Nor would this - -
- + +
+ spec.matches(*fakeTestCase(R"(spec {a} char)")) @@ -199,7 +199,7 @@ Nor would this true - + spec.matches(*fakeTestCase(R"(spec [a] char)")) @@ -207,7 +207,7 @@ Nor would this true - + !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) @@ -217,8 +217,8 @@ Nor would this
-
- +
+ spec.matches(*fakeTestCase(R"(spec \ char)")) @@ -9689,1322 +9689,6 @@ C - -
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - - - parseTestSpec( "*a" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - - - parseTestSpec( "a*" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - - - parseTestSpec( "*a*" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark" ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark" ) ) - - - true - - - -
-
- - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark" ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark" ) ) - - - true - - - -
-
- - - spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) - - - true - - - - - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) - - - !false - - - -
-
- - - !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) - - - !false - - - - - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) - - - !false - - - - - !(spec.matches(*fakeTestCase("only hidden", "[.]"))) - - - !false - - - - - spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) - - - true - - - -
- -
@@ -21799,6 +20483,6 @@ loose text artifact
- - + + diff --git a/tests/SelfTest/Baselines/xml.sw.multi.approved.txt b/tests/SelfTest/Baselines/xml.sw.multi.approved.txt index 75b38706..3f5b5c52 100644 --- a/tests/SelfTest/Baselines/xml.sw.multi.approved.txt +++ b/tests/SelfTest/Baselines/xml.sw.multi.approved.txt @@ -162,8 +162,8 @@ Nor would this - - + + spec.matches(*fakeTestCase("spec . char")) @@ -171,7 +171,7 @@ Nor would this true - + spec.matches(*fakeTestCase("spec , char")) @@ -179,7 +179,7 @@ Nor would this true - + !(spec.matches(*fakeTestCase(R"(spec \, char)"))) @@ -189,9 +189,9 @@ Nor would this - -
- + +
+ spec.matches(*fakeTestCase(R"(spec {a} char)")) @@ -199,7 +199,7 @@ Nor would this true - + spec.matches(*fakeTestCase(R"(spec [a] char)")) @@ -207,7 +207,7 @@ Nor would this true - + !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))) @@ -217,8 +217,8 @@ Nor would this
-
- +
+ spec.matches(*fakeTestCase(R"(spec \ char)")) @@ -9689,1322 +9689,6 @@ C - -
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - - - parseTestSpec( "*a" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - - - parseTestSpec( "a*" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - - - parseTestSpec( "*a*" ).matches( *tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == true - - - true == true - - - - - spec.matches( *tcB ) == true - - - true == true - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == true - - - true == true - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( *tcA ) == false - - - false == false - - - - - spec.matches( *tcB ) == false - - - false == false - - - - - spec.matches( *tcC ) == false - - - false == false - - - - - spec.matches( *tcD ) == true - - - true == true - - - -
-
- - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark" ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark" ) ) - - - true - - - -
-
- - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark" ) ) - - - true - - - - - spec.matches( *fakeTestCase( " aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark " ) ) - - - true - - - - - spec.matches( *fakeTestCase( "aardvark" ) ) - - - true - - - -
-
- - - spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")) - - - true - - - - - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) - - - !false - - - -
-
- - - !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))) - - - !false - - - - - !(spec.matches(*fakeTestCase("only foo", "[foo]"))) - - - !false - - - - - !(spec.matches(*fakeTestCase("only hidden", "[.]"))) - - - !false - - - - - spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]")) - - - true - - - -
- -
@@ -21798,6 +20482,6 @@ There is no extra whitespace here
- - + + diff --git a/tests/SelfTest/IntrospectiveTests/CmdLine.tests.cpp b/tests/SelfTest/IntrospectiveTests/CmdLine.tests.cpp index abb873f2..8f92e671 100644 --- a/tests/SelfTest/IntrospectiveTests/CmdLine.tests.cpp +++ b/tests/SelfTest/IntrospectiveTests/CmdLine.tests.cpp @@ -22,311 +22,6 @@ namespace { auto fakeTestCase(const char* name, const char* desc = "") { return Catch::makeTestCaseInfo("", { name, desc }, CATCH_INTERNAL_LINEINFO); } } -TEST_CASE( "Parse test names and tags", "[command-line][test-spec]" ) { - - using Catch::parseTestSpec; - using Catch::TestSpec; - - auto tcA = fakeTestCase( "a" ); - auto tcB = fakeTestCase( "b", "[one][x]" ); - auto tcC = fakeTestCase( "longer name with spaces", "[two][three][.][x]" ); - auto tcD = fakeTestCase( "zlonger name with spacesz" ); - - SECTION( "Empty test spec should have no filters" ) { - TestSpec spec; - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - } - - SECTION( "Test spec from empty string should have no filters" ) { - TestSpec spec = parseTestSpec( "" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - } - - SECTION( "Test spec from just a comma should have no filters" ) { - TestSpec spec = parseTestSpec( "," ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - } - - SECTION( "Test spec from name should have one filter" ) { - TestSpec spec = parseTestSpec( "b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - } - - SECTION( "Test spec from quoted name should have one filter" ) { - TestSpec spec = parseTestSpec( "\"b\"" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - } - - SECTION( "Test spec from name should have one filter" ) { - TestSpec spec = parseTestSpec( "b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == false ); - } - - SECTION( "Wildcard at the start" ) { - TestSpec spec = parseTestSpec( "*spaces" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - CHECK( parseTestSpec( "*a" ).matches( *tcA ) == true ); - } - SECTION( "Wildcard at the end" ) { - TestSpec spec = parseTestSpec( "long*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - CHECK( parseTestSpec( "a*" ).matches( *tcA ) == true ); - } - SECTION( "Wildcard at both ends" ) { - TestSpec spec = parseTestSpec( "*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == true ); - CHECK( parseTestSpec( "*a*" ).matches( *tcA ) == true ); - } - SECTION( "Redundant wildcard at the start" ) { - TestSpec spec = parseTestSpec( "*a" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == false ); - } - SECTION( "Redundant wildcard at the end" ) { - TestSpec spec = parseTestSpec( "a*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == false ); - } - SECTION( "Redundant wildcard at both ends" ) { - TestSpec spec = parseTestSpec( "*a*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == false ); - } - SECTION( "Wildcard at both ends, redundant at start" ) { - TestSpec spec = parseTestSpec( "*longer*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == true ); - } - SECTION( "Just wildcard" ) { - TestSpec spec = parseTestSpec( "*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == true ); - } - - SECTION( "Single tag" ) { - TestSpec spec = parseTestSpec( "[one]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == false ); - } - SECTION( "Single tag, two matches" ) { - TestSpec spec = parseTestSpec( "[x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == true ); - } - SECTION( "Two tags" ) { - TestSpec spec = parseTestSpec( "[two][x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - } - SECTION( "Two tags, spare separated" ) { - TestSpec spec = parseTestSpec( "[two] [x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - } - SECTION( "Wildcarded name and tag" ) { - TestSpec spec = parseTestSpec( "*name*[x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "Single tag exclusion" ) { - TestSpec spec = parseTestSpec( "~[one]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - } - SECTION( "One tag exclusion and one tag inclusion" ) { - TestSpec spec = parseTestSpec( "~[two][x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == false ); - } - SECTION( "One tag exclusion and one wldcarded name inclusion" ) { - TestSpec spec = parseTestSpec( "~[two]*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == true ); - } - SECTION( "One tag exclusion, using exclude:, and one wldcarded name inclusion" ) { - TestSpec spec = parseTestSpec( "exclude:[two]*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == true ); - } - SECTION( "name exclusion" ) { - TestSpec spec = parseTestSpec( "~b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == true ); - } - SECTION( "wildcarded name exclusion" ) { - TestSpec spec = parseTestSpec( "~*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "wildcarded name exclusion with tag inclusion" ) { - TestSpec spec = parseTestSpec( "~*name*,[three]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "wildcarded name exclusion, using exclude:, with tag inclusion" ) { - TestSpec spec = parseTestSpec( "exclude:*name*,[three]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == true ); - CHECK( spec.matches( *tcB ) == true ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "two wildcarded names" ) { - TestSpec spec = parseTestSpec( "\"longer*\"\"*spaces\"" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == true ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "empty tag" ) { - TestSpec spec = parseTestSpec( "[]" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "empty quoted name" ) { - TestSpec spec = parseTestSpec( "\"\"" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == false ); - } - SECTION( "quoted string followed by tag exclusion" ) { - TestSpec spec = parseTestSpec( "\"*name*\"~[.]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( *tcA ) == false ); - CHECK( spec.matches( *tcB ) == false ); - CHECK( spec.matches( *tcC ) == false ); - CHECK( spec.matches( *tcD ) == true ); - } - SECTION( "Leading and trailing spaces in test spec" ) { - TestSpec spec = parseTestSpec( "\" aardvark \"" ); - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ); - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ); - - } - SECTION( "Leading and trailing spaces in test name" ) { - TestSpec spec = parseTestSpec( "aardvark" ); - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ); - CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ); - CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ); - } - SECTION("Shortened hide tags are split apart when parsing") { - TestSpec spec = parseTestSpec("[.foo]"); - CHECK(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))); - CHECK_FALSE(spec.matches(*fakeTestCase("only foo", "[foo]"))); - } - SECTION("Shortened hide tags also properly handle exclusion") { - TestSpec spec = parseTestSpec("~[.foo]"); - CHECK_FALSE(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))); - CHECK_FALSE(spec.matches(*fakeTestCase("only foo", "[foo]"))); - CHECK_FALSE(spec.matches(*fakeTestCase("only hidden", "[.]"))); - CHECK(spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]"))); - } -} - -TEST_CASE("#1905 -- test spec parser properly clears internal state between compound tests", "[command-line][test-spec]") { - using Catch::parseTestSpec; - using Catch::TestSpec; - // We ask for one of 2 different tests and the latter one of them has a , in name that needs escaping - TestSpec spec = parseTestSpec(R"("spec . char","spec \, char")"); - - REQUIRE(spec.matches(*fakeTestCase("spec . char"))); - REQUIRE(spec.matches(*fakeTestCase("spec , char"))); - REQUIRE_FALSE(spec.matches(*fakeTestCase(R"(spec \, char)"))); -} - -TEST_CASE("#1912 -- test spec parser handles escaping", "[command-line][test-spec]") { - using Catch::parseTestSpec; - using Catch::TestSpec; - - SECTION("Various parentheses") { - TestSpec spec = parseTestSpec(R"(spec {a} char,spec \[a] char)"); - - REQUIRE(spec.matches(*fakeTestCase(R"(spec {a} char)"))); - REQUIRE(spec.matches(*fakeTestCase(R"(spec [a] char)"))); - REQUIRE_FALSE(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))); - } - SECTION("backslash in test name") { - TestSpec spec = parseTestSpec(R"(spec \\ char)"); - - REQUIRE(spec.matches(*fakeTestCase(R"(spec \ char)"))); - } -} - TEST_CASE( "Process can be configured on command line", "[config][command-line]" ) { using namespace Catch::Matchers; diff --git a/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp b/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp new file mode 100644 index 00000000..99ad6073 --- /dev/null +++ b/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp @@ -0,0 +1,327 @@ + +// 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace { + auto fakeTestCase(const char* name, const char* desc = "") { return Catch::makeTestCaseInfo("", { name, desc }, CATCH_INTERNAL_LINEINFO); } +} + +TEST_CASE( "Parse test names and tags", "[command-line][test-spec][approvals]" ) { + using Catch::parseTestSpec; + using Catch::TestSpec; + + auto tcA = fakeTestCase( "a" ); + auto tcB = fakeTestCase( "b", "[one][x]" ); + auto tcC = fakeTestCase( "longer name with spaces", "[two][three][.][x]" ); + auto tcD = fakeTestCase( "zlonger name with spacesz" ); + + SECTION( "Empty test spec should have no filters" ) { + TestSpec spec; + CHECK( spec.hasFilters() == false ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + } + + SECTION( "Test spec from empty string should have no filters" ) { + TestSpec spec = parseTestSpec( "" ); + CHECK( spec.hasFilters() == false ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + } + + SECTION( "Test spec from just a comma should have no filters" ) { + TestSpec spec = parseTestSpec( "," ); + CHECK( spec.hasFilters() == false ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + } + + SECTION( "Test spec from name should have one filter" ) { + TestSpec spec = parseTestSpec( "b" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + } + + SECTION( "Test spec from quoted name should have one filter" ) { + TestSpec spec = parseTestSpec( "\"b\"" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + } + + SECTION( "Test spec from name should have one filter" ) { + TestSpec spec = parseTestSpec( "b" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == false ); + } + + SECTION( "Wildcard at the start" ) { + TestSpec spec = parseTestSpec( "*spaces" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + CHECK( parseTestSpec( "*a" ).matches( *tcA ) == true ); + } + SECTION( "Wildcard at the end" ) { + TestSpec spec = parseTestSpec( "long*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + CHECK( parseTestSpec( "a*" ).matches( *tcA ) == true ); + } + SECTION( "Wildcard at both ends" ) { + TestSpec spec = parseTestSpec( "*name*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == true ); + CHECK( parseTestSpec( "*a*" ).matches( *tcA ) == true ); + } + SECTION( "Redundant wildcard at the start" ) { + TestSpec spec = parseTestSpec( "*a" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == false ); + } + SECTION( "Redundant wildcard at the end" ) { + TestSpec spec = parseTestSpec( "a*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == false ); + } + SECTION( "Redundant wildcard at both ends" ) { + TestSpec spec = parseTestSpec( "*a*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == false ); + } + SECTION( "Wildcard at both ends, redundant at start" ) { + TestSpec spec = parseTestSpec( "*longer*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == true ); + } + SECTION( "Just wildcard" ) { + TestSpec spec = parseTestSpec( "*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == true ); + } + + SECTION( "Single tag" ) { + TestSpec spec = parseTestSpec( "[one]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == false ); + } + SECTION( "Single tag, two matches" ) { + TestSpec spec = parseTestSpec( "[x]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == true ); + } + SECTION( "Two tags" ) { + TestSpec spec = parseTestSpec( "[two][x]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + } + SECTION( "Two tags, spare separated" ) { + TestSpec spec = parseTestSpec( "[two] [x]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + } + SECTION( "Wildcarded name and tag" ) { + TestSpec spec = parseTestSpec( "*name*[x]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "Single tag exclusion" ) { + TestSpec spec = parseTestSpec( "~[one]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + } + SECTION( "One tag exclusion and one tag inclusion" ) { + TestSpec spec = parseTestSpec( "~[two][x]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == false ); + } + SECTION( "One tag exclusion and one wldcarded name inclusion" ) { + TestSpec spec = parseTestSpec( "~[two]*name*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == true ); + } + SECTION( "One tag exclusion, using exclude:, and one wldcarded name inclusion" ) { + TestSpec spec = parseTestSpec( "exclude:[two]*name*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == true ); + } + SECTION( "name exclusion" ) { + TestSpec spec = parseTestSpec( "~b" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == true ); + } + SECTION( "wildcarded name exclusion" ) { + TestSpec spec = parseTestSpec( "~*name*" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "wildcarded name exclusion with tag inclusion" ) { + TestSpec spec = parseTestSpec( "~*name*,[three]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "wildcarded name exclusion, using exclude:, with tag inclusion" ) { + TestSpec spec = parseTestSpec( "exclude:*name*,[three]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == true ); + CHECK( spec.matches( *tcB ) == true ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "two wildcarded names" ) { + TestSpec spec = parseTestSpec( "\"longer*\"\"*spaces\"" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == true ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "empty tag" ) { + TestSpec spec = parseTestSpec( "[]" ); + CHECK( spec.hasFilters() == false ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "empty quoted name" ) { + TestSpec spec = parseTestSpec( "\"\"" ); + CHECK( spec.hasFilters() == false ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == false ); + } + SECTION( "quoted string followed by tag exclusion" ) { + TestSpec spec = parseTestSpec( "\"*name*\"~[.]" ); + CHECK( spec.hasFilters() == true ); + CHECK( spec.matches( *tcA ) == false ); + CHECK( spec.matches( *tcB ) == false ); + CHECK( spec.matches( *tcC ) == false ); + CHECK( spec.matches( *tcD ) == true ); + } + SECTION( "Leading and trailing spaces in test spec" ) { + TestSpec spec = parseTestSpec( "\" aardvark \"" ); + CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ); + CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ); + + } + SECTION( "Leading and trailing spaces in test name" ) { + TestSpec spec = parseTestSpec( "aardvark" ); + CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( " aardvark" ) ) ); + CHECK( spec.matches( *fakeTestCase( " aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( "aardvark " ) ) ); + CHECK( spec.matches( *fakeTestCase( "aardvark" ) ) ); + } + SECTION("Shortened hide tags are split apart when parsing") { + TestSpec spec = parseTestSpec("[.foo]"); + CHECK(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))); + CHECK_FALSE(spec.matches(*fakeTestCase("only foo", "[foo]"))); + } + SECTION("Shortened hide tags also properly handle exclusion") { + TestSpec spec = parseTestSpec("~[.foo]"); + CHECK_FALSE(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))); + CHECK_FALSE(spec.matches(*fakeTestCase("only foo", "[foo]"))); + CHECK_FALSE(spec.matches(*fakeTestCase("only hidden", "[.]"))); + CHECK(spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]"))); + } +} + +TEST_CASE("#1905 -- test spec parser properly clears internal state between compound tests", "[command-line][test-spec]") { + using Catch::parseTestSpec; + using Catch::TestSpec; + // We ask for one of 2 different tests and the latter one of them has a , in name that needs escaping + TestSpec spec = parseTestSpec(R"("spec . char","spec \, char")"); + + REQUIRE(spec.matches(*fakeTestCase("spec . char"))); + REQUIRE(spec.matches(*fakeTestCase("spec , char"))); + REQUIRE_FALSE(spec.matches(*fakeTestCase(R"(spec \, char)"))); +} + +TEST_CASE("#1912 -- test spec parser handles escaping", "[command-line][test-spec]") { + using Catch::parseTestSpec; + using Catch::TestSpec; + + SECTION("Various parentheses") { + TestSpec spec = parseTestSpec(R"(spec {a} char,spec \[a] char)"); + + REQUIRE(spec.matches(*fakeTestCase(R"(spec {a} char)"))); + REQUIRE(spec.matches(*fakeTestCase(R"(spec [a] char)"))); + REQUIRE_FALSE(spec.matches(*fakeTestCase("differs but has similar tag", "[a]"))); + } + SECTION("backslash in test name") { + TestSpec spec = parseTestSpec(R"(spec \\ char)"); + + REQUIRE(spec.matches(*fakeTestCase(R"(spec \ char)"))); + } +}