mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	Rename Contains string matcher builder to ContainsSubstring
The problem with the old name was that it collided with the range matcher `Contains`, and it was not really possible to disambiguate them just with argument types. Closes #2131
This commit is contained in:
		@@ -35,10 +35,10 @@ operators, that is `&&`, `||`, and `!`, like so:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```cpp
 | 
					```cpp
 | 
				
			||||||
using Catch::Matchers::EndsWith;
 | 
					using Catch::Matchers::EndsWith;
 | 
				
			||||||
using Catch::Matchers::Contains;
 | 
					using Catch::Matchers::ContainsSubstring;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
REQUIRE_THAT( getSomeString(),
 | 
					REQUIRE_THAT( getSomeString(),
 | 
				
			||||||
              EndsWith("as a service") && Contains("web scale"));
 | 
					              EndsWith("as a service") && ContainsSubstring("web scale"));
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The example above asserts that the string returned from `getSomeString`
 | 
					The example above asserts that the string returned from `getSomeString`
 | 
				
			||||||
@@ -64,7 +64,7 @@ TEST_CASE("Bugs, bugs, bugs", "[Bug]"){
 | 
				
			|||||||
    std::string str = "Bugs as a service";
 | 
					    std::string str = "Bugs as a service";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto match_expression = Catch::Matchers::EndsWith( "as a service" ) ||
 | 
					    auto match_expression = Catch::Matchers::EndsWith( "as a service" ) ||
 | 
				
			||||||
        (Catch::Matchers::StartsWith( "Big data" ) && !Catch::Matchers::Contains( "web scale" ) );
 | 
					        (Catch::Matchers::StartsWith( "Big data" ) && !Catch::Matchers::ContainsSubstring( "web scale" ) );
 | 
				
			||||||
    REQUIRE_THAT(str, match_expression);
 | 
					    REQUIRE_THAT(str, match_expression);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -88,7 +88,7 @@ Out of the box, Catch2 provides the following matchers:
 | 
				
			|||||||
Catch2 provides 5 different matchers that work with `std::string`,
 | 
					Catch2 provides 5 different matchers that work with `std::string`,
 | 
				
			||||||
* `StartsWith(std::string str, CaseSensitive)`,
 | 
					* `StartsWith(std::string str, CaseSensitive)`,
 | 
				
			||||||
* `EndsWith(std::string str, CaseSensitive)`,
 | 
					* `EndsWith(std::string str, CaseSensitive)`,
 | 
				
			||||||
* `Contains(std::string str, CaseSensitive)`,
 | 
					* `ContainsSubstring(std::string str, CaseSensitive)`,
 | 
				
			||||||
* `Equals(std::string str, CaseSensitive)`, and
 | 
					* `Equals(std::string str, CaseSensitive)`, and
 | 
				
			||||||
* `Matches(std::string str, CaseSensitive)`.
 | 
					* `Matches(std::string str, CaseSensitive)`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -96,7 +96,7 @@ namespace Matchers {
 | 
				
			|||||||
    StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
					    StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
				
			||||||
        return StringEqualsMatcher( CasedString( str, caseSensitivity) );
 | 
					        return StringEqualsMatcher( CasedString( str, caseSensitivity) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    StringContainsMatcher Contains( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
					    StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
				
			||||||
        return StringContainsMatcher( CasedString( str, caseSensitivity) );
 | 
					        return StringContainsMatcher( CasedString( str, caseSensitivity) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
					    EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity ) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,7 @@ namespace Matchers {
 | 
				
			|||||||
    //! Creates matcher that accepts strings that are exactly equal to `str`
 | 
					    //! Creates matcher that accepts strings that are exactly equal to `str`
 | 
				
			||||||
    StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
					    StringEqualsMatcher Equals( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
				
			||||||
    //! Creates matcher that accepts strings that contain `str`
 | 
					    //! Creates matcher that accepts strings that contain `str`
 | 
				
			||||||
    StringContainsMatcher Contains( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
					    StringContainsMatcher ContainsSubstring( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
				
			||||||
    //! Creates matcher that accepts strings that _end_ with `str`
 | 
					    //! Creates matcher that accepts strings that _end_ with `str`
 | 
				
			||||||
    EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
					    EndsWithMatcher EndsWith( std::string const& str, CaseSensitive caseSensitivity = CaseSensitive::Yes );
 | 
				
			||||||
    //! Creates matcher that accepts strings that _start_ with `str`
 | 
					    //! Creates matcher that accepts strings that _start_ with `str`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -447,8 +447,8 @@ Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
 | 
				
			|||||||
Matchers.tests.cpp:<line number>: passed: matcher.match( 1 ) for: true
 | 
					Matchers.tests.cpp:<line number>: passed: matcher.match( 1 ) for: true
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: first.matchCalled for: true
 | 
					Matchers.tests.cpp:<line number>: passed: first.matchCalled for: true
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
 | 
					Matchers.tests.cpp:<line number>: passed: !second.matchCalled for: true
 | 
				
			||||||
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
					Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Contains( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
 | 
					Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ContainsSubstring( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
					Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
				
			||||||
Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
					Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
				
			||||||
Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
					Generators.tests.cpp:<line number>: passed: elem % 2 == 1 for: 1 == 1
 | 
				
			||||||
@@ -528,8 +528,8 @@ Exception.tests.cpp:<line number>: passed: thisThrows(), "expected exception" fo
 | 
				
			|||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) for: "expected exception" equals: "expected exception" (case insensitive)
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) for: "expected exception" equals: "expected exception" (case insensitive)
 | 
				
			||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), StartsWith( "expected" ) for: "expected exception" starts with: "expected"
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), StartsWith( "expected" ) for: "expected exception" starts with: "expected"
 | 
				
			||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), EndsWith( "exception" ) for: "expected exception" ends with: "exception"
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), EndsWith( "exception" ) for: "expected exception" ends with: "exception"
 | 
				
			||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), Contains( "except" ) for: "expected exception" contains: "except"
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), ContainsSubstring( "except" ) for: "expected exception" contains: "except"
 | 
				
			||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) for: "expected exception" contains: "except" (case insensitive)
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No ) for: "expected exception" contains: "except" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: throwsDerivedException(), DerivedException, Message( "DerivedException::what" ) for: DerivedException::what exception message matches "DerivedException::what"
 | 
					Matchers.tests.cpp:<line number>: passed: throwsDerivedException(), DerivedException, Message( "DerivedException::what" ) for: DerivedException::what exception message matches "DerivedException::what"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: throwsDerivedException(), DerivedException, !Message( "derivedexception::what" ) for: DerivedException::what not exception message matches "derivedexception::what"
 | 
					Matchers.tests.cpp:<line number>: passed: throwsDerivedException(), DerivedException, !Message( "derivedexception::what" ) for: DerivedException::what not exception message matches "derivedexception::what"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: throwsSpecialException( 2 ), SpecialException, !Message( "DerivedException::what" ) for: SpecialException::what not exception message matches "DerivedException::what"
 | 
					Matchers.tests.cpp:<line number>: passed: throwsSpecialException( 2 ), SpecialException, !Message( "DerivedException::what" ) for: SpecialException::what not exception message matches "DerivedException::what"
 | 
				
			||||||
@@ -904,13 +904,13 @@ Approx.tests.cpp:<line number>: passed: d <= Approx( 1.23 ) for: 1.23 <= Approx(
 | 
				
			|||||||
Approx.tests.cpp:<line number>: passed: !(d <= Approx( 1.22 )) for: !(1.23 <= Approx( 1.22 ))
 | 
					Approx.tests.cpp:<line number>: passed: !(d <= Approx( 1.22 )) for: !(1.23 <= Approx( 1.22 ))
 | 
				
			||||||
Approx.tests.cpp:<line number>: passed: d <= Approx( 1.22 ).epsilon(0.1) for: 1.23 <= Approx( 1.22 )
 | 
					Approx.tests.cpp:<line number>: passed: d <= Approx( 1.22 ).epsilon(0.1) for: 1.23 <= Approx( 1.22 )
 | 
				
			||||||
Misc.tests.cpp:<line number>: passed: with 1 message: 'was called'
 | 
					Misc.tests.cpp:<line number>: passed: with 1 message: 'was called'
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) for: "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" ) for: "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) for: "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) for: "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) for: "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) for: "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
					Matchers.tests.cpp:<line number>: failed: testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), !Contains( "different" ) for: "this string contains 'abc' as a substring" not contains: "different"
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), !ContainsSubstring( "different" ) for: "this string contains 'abc' as a substring" not contains: "different"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), !Contains( "substring" ) for: "this string contains 'abc' as a substring" not contains: "substring"
 | 
					Matchers.tests.cpp:<line number>: failed: testStringForMatching(), !ContainsSubstring( "substring" ) for: "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
Exception.tests.cpp:<line number>: passed: thisThrows(), "expected exception" for: "expected exception" equals: "expected exception"
 | 
					Exception.tests.cpp:<line number>: passed: thisThrows(), "expected exception" for: "expected exception" equals: "expected exception"
 | 
				
			||||||
Exception.tests.cpp:<line number>: failed: thisThrows(), "should fail" for: "expected exception" equals: "should fail"
 | 
					Exception.tests.cpp:<line number>: failed: thisThrows(), "should fail" for: "expected exception" equals: "should fail"
 | 
				
			||||||
Generators.tests.cpp:<line number>: passed: values > -6 for: 3 > -6
 | 
					Generators.tests.cpp:<line number>: passed: values > -6 for: 3 > -6
 | 
				
			||||||
@@ -1216,7 +1216,7 @@ CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--reporter", "junit
 | 
				
			|||||||
CmdLine.tests.cpp:<line number>: passed: config.reporterName == "junit" for: "junit" == "junit"
 | 
					CmdLine.tests.cpp:<line number>: passed: config.reporterName == "junit" for: "junit" == "junit"
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?}
 | 
					CmdLine.tests.cpp:<line number>: passed: !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
					CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
					CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-b"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-b"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak == true for: true == true
 | 
					CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak == true for: true == true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--break"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--break"}) for: {?}
 | 
				
			||||||
@@ -1226,7 +1226,7 @@ CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 1 for: 1 == 1
 | 
				
			|||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-x", "2"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-x", "2"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 2 for: 2 == 2
 | 
					CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 2 for: 2 == 2
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
					CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("convert") && Contains("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
					CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 0 == 0
 | 
					CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 0 == 0
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
				
			||||||
@@ -1236,7 +1236,7 @@ CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(i
 | 
				
			|||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 3 == 3
 | 
					CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 3 == 3
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
					CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("never") && Contains("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
					CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-e"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-e"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.noThrow for: true
 | 
					CmdLine.tests.cpp:<line number>: passed: config.noThrow for: true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--nothrow"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--nothrow"}) for: {?}
 | 
				
			||||||
@@ -1258,7 +1258,7 @@ CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Yes for:
 | 
				
			|||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "no"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "no"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2
 | 
					CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
					CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
					CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-samples=200" }) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-samples=200" }) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.benchmarkSamples == 200 for: 200 == 200
 | 
					CmdLine.tests.cpp:<line number>: passed: config.benchmarkSamples == 200 for: 200 == 200
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-resamples=20000" }) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-resamples=20000" }) for: {?}
 | 
				
			||||||
@@ -1279,74 +1279,74 @@ Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches( "con
 | 
				
			|||||||
Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches( "this string contains 'abc' as a" ) for: "this string contains 'abc' as a substring" matches "this string contains 'abc' as a" case sensitively
 | 
					Matchers.tests.cpp:<line number>: failed: testStringForMatching(), Matches( "this string contains 'abc' as a" ) for: "this string contains 'abc' as a substring" matches "this string contains 'abc' as a" case sensitively
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: actual, !UnorderedEquals( expected ) for: { 'a', 'b' } not UnorderedEquals: { 'c', 'b' }
 | 
					Matchers.tests.cpp:<line number>: passed: actual, !UnorderedEquals( expected ) for: { 'a', 'b' } not UnorderedEquals: { 'c', 'b' }
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: automake'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: automake'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: automake'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: compact'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: compact'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: compact'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: console'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: console'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: console'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: console'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
All available tags:
 | 
					All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: junit'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
Available reporters:
 | 
					Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: junit'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
All available test cases:
 | 
					All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
@@ -1354,20 +1354,20 @@ All available test cases:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: junit'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
All available tags:
 | 
					All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: sonarqube'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
Available reporters:
 | 
					Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: sonarqube'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
All available test cases:
 | 
					All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
@@ -1375,43 +1375,43 @@ All available test cases:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: sonarqube'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: tap'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: tap'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: tap'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fakeTag" with 1 message: 'Tested reporter: teamcity'
 | 
					" contains: "fakeTag" with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter" with 1 message: 'Tested reporter: teamcity'
 | 
					" contains: "fake reporter" with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: teamcity'
 | 
					" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<TagsFromMatchingTests>
 | 
					<TagsFromMatchingTests>
 | 
				
			||||||
  <Tag>
 | 
					  <Tag>
 | 
				
			||||||
    <Count>1</Count>
 | 
					    <Count>1</Count>
 | 
				
			||||||
@@ -1421,7 +1421,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, Contains("fakeTag"s) f
 | 
				
			|||||||
  </Tag>
 | 
					  </Tag>
 | 
				
			||||||
</TagsFromMatchingTests>" contains: "fakeTag" with 1 message: 'Tested reporter: xml'
 | 
					</TagsFromMatchingTests>" contains: "fakeTag" with 1 message: 'Tested reporter: xml'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<AvailableReporters>
 | 
					<AvailableReporters>
 | 
				
			||||||
  <Reporter>
 | 
					  <Reporter>
 | 
				
			||||||
    <Name>fake reporter</Name>
 | 
					    <Name>fake reporter</Name>
 | 
				
			||||||
@@ -1429,7 +1429,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporte
 | 
				
			|||||||
  </Reporter>
 | 
					  </Reporter>
 | 
				
			||||||
</AvailableReporters>" contains: "fake reporter" with 1 message: 'Tested reporter: xml'
 | 
					</AvailableReporters>" contains: "fake reporter" with 1 message: 'Tested reporter: xml'
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
					Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<MatchingTests>
 | 
					<MatchingTests>
 | 
				
			||||||
  <TestCase>
 | 
					  <TestCase>
 | 
				
			||||||
    <Name>fake test name</Name>
 | 
					    <Name>fake test name</Name>
 | 
				
			||||||
@@ -1476,10 +1476,10 @@ ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify(arr) =
 | 
				
			|||||||
ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" for: "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
					ToStringGeneral.tests.cpp:<line number>: passed: Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" for: "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
				
			||||||
==
 | 
					==
 | 
				
			||||||
"{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
					"{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "string" ) for: "this string contains 'abc' as a substring" contains: "string"
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "string" ) for: "this string contains 'abc' as a substring" contains: "string"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "string", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "abc" ) for: "this string contains 'abc' as a substring" contains: "abc"
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "abc" ) for: "this string contains 'abc' as a substring" contains: "abc"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), Contains( "aBC", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), StartsWith( "this" ) for: "this string contains 'abc' as a substring" starts with: "this"
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), StartsWith( "this" ) for: "this string contains 'abc' as a substring" starts with: "this"
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), StartsWith( "THIS", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" starts with: "this" (case insensitive)
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), StartsWith( "THIS", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" starts with: "this" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>: passed: testStringForMatching(), EndsWith( "substring" ) for: "this string contains 'abc' as a substring" ends with: "substring"
 | 
					Matchers.tests.cpp:<line number>: passed: testStringForMatching(), EndsWith( "substring" ) for: "this string contains 'abc' as a substring" ends with: "substring"
 | 
				
			||||||
@@ -1560,16 +1560,16 @@ Misc.tests.cpp:<line number>: failed: s1 == s2 for: "if ($b == 10) {
 | 
				
			|||||||
	$a = 20;
 | 
						$a = 20;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
Tag.tests.cpp:<line number>: passed: what, Contains( "[@zzz]" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
					Tag.tests.cpp:<line number>: passed: what, ContainsSubstring( "[@zzz]" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
	First seen at: file:2
 | 
						First seen at: file:2
 | 
				
			||||||
	Redefined at: file:10" contains: "[@zzz]"
 | 
						Redefined at: file:10" contains: "[@zzz]"
 | 
				
			||||||
Tag.tests.cpp:<line number>: passed: what, Contains( "file" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
					Tag.tests.cpp:<line number>: passed: what, ContainsSubstring( "file" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
	First seen at: file:2
 | 
						First seen at: file:2
 | 
				
			||||||
	Redefined at: file:10" contains: "file"
 | 
						Redefined at: file:10" contains: "file"
 | 
				
			||||||
Tag.tests.cpp:<line number>: passed: what, Contains( "2" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
					Tag.tests.cpp:<line number>: passed: what, ContainsSubstring( "2" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
	First seen at: file:2
 | 
						First seen at: file:2
 | 
				
			||||||
	Redefined at: file:10" contains: "2"
 | 
						Redefined at: file:10" contains: "2"
 | 
				
			||||||
Tag.tests.cpp:<line number>: passed: what, Contains( "10" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
					Tag.tests.cpp:<line number>: passed: what, ContainsSubstring( "10" ) for: "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
	First seen at: file:2
 | 
						First seen at: file:2
 | 
				
			||||||
	Redefined at: file:10" contains: "10"
 | 
						Redefined at: file:10" contains: "10"
 | 
				
			||||||
Tag.tests.cpp:<line number>: passed: registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
 | 
					Tag.tests.cpp:<line number>: passed: registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
 | 
				
			||||||
@@ -1736,16 +1736,16 @@ Misc.tests.cpp:<line number>: failed: explicitly
 | 
				
			|||||||
Misc.tests.cpp:<line number>: failed - but was ok: false
 | 
					Misc.tests.cpp:<line number>: failed - but was ok: false
 | 
				
			||||||
Misc.tests.cpp:<line number>: failed: explicitly
 | 
					Misc.tests.cpp:<line number>: failed: explicitly
 | 
				
			||||||
Message.tests.cpp:<line number>: failed - but was ok: 1 == 2
 | 
					Message.tests.cpp:<line number>: failed - but was ok: 1 == 2
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("[fakeTag]"s) for: "All available tags:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("[fakeTag]"s) for: "All available tags:
 | 
				
			||||||
   1  [fakeTag]
 | 
					   1  [fakeTag]
 | 
				
			||||||
1 tag
 | 
					1 tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "[fakeTag]"
 | 
					" contains: "[fakeTag]"
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains("fake reporter"s) for: "Available reporters:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:
 | 
				
			||||||
  fake reporter:  fake description
 | 
					  fake reporter:  fake description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" contains: "fake reporter"
 | 
					" contains: "fake reporter"
 | 
				
			||||||
Reporters.tests.cpp:<line number>: passed: listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:
 | 
					Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:
 | 
				
			||||||
  fake test name
 | 
					  fake test name
 | 
				
			||||||
      [fakeTestTag]
 | 
					      [fakeTestTag]
 | 
				
			||||||
1 test case
 | 
					1 test case
 | 
				
			||||||
@@ -1987,7 +1987,7 @@ Xml.tests.cpp:<line number>: passed: encode( stringWithQuotes, Catch::XmlEncode:
 | 
				
			|||||||
"don't "quote" me on that"
 | 
					"don't "quote" me on that"
 | 
				
			||||||
Xml.tests.cpp:<line number>: passed: encode( "[\x01]" ) == "[\\x01]" for: "[\x01]" == "[\x01]"
 | 
					Xml.tests.cpp:<line number>: passed: encode( "[\x01]" ) == "[\\x01]" for: "[\x01]" == "[\x01]"
 | 
				
			||||||
Xml.tests.cpp:<line number>: passed: encode( "[\x7F]" ) == "[\\x7F]" for: "[\x7F]" == "[\x7F]"
 | 
					Xml.tests.cpp:<line number>: passed: encode( "[\x7F]" ) == "[\\x7F]" for: "[\x7F]" == "[\x7F]"
 | 
				
			||||||
Xml.tests.cpp:<line number>: passed: stream.str(), Contains(R"(attr1="true")") && Contains(R"(attr2="false")") for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
					Xml.tests.cpp:<line number>: passed: stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")") for: "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<Element1 attr1="true" attr2="false"/>
 | 
					<Element1 attr1="true" attr2="false"/>
 | 
				
			||||||
" ( contains: "attr1="true"" and contains: "attr2="false"" )
 | 
					" ( contains: "attr1="true"" and contains: "attr2="false"" )
 | 
				
			||||||
InternalBenchmark.tests.cpp:<line number>: passed: analysis.mean.point.count() == 23 for: 23.0 == 23
 | 
					InternalBenchmark.tests.cpp:<line number>: passed: analysis.mean.point.count() == 23 for: 23.0 == 23
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -332,13 +332,13 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
					  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
				
			||||||
  insensitive)
 | 
					  insensitive)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "STRING" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "STRING"
 | 
					  "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -678,7 +678,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
					  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
				
			||||||
  contains: "different" ) and contains: "random" )
 | 
					  contains: "different" ) and contains: "random" )
 | 
				
			||||||
@@ -690,7 +690,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
 | 
					  CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" not contains: "substring"
 | 
					  "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3519,13 +3519,13 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
					  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
				
			||||||
  insensitive)
 | 
					  insensitive)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "STRING" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "STRING"
 | 
					  "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -4119,12 +4119,12 @@ with expansion:
 | 
				
			|||||||
  "expected exception" ends with: "exception"
 | 
					  "expected exception" ends with: "exception"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Exception.tests.cpp:<line number>: PASSED:
 | 
					Exception.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) )
 | 
					  REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "except" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "expected exception" contains: "except"
 | 
					  "expected exception" contains: "except"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Exception.tests.cpp:<line number>: PASSED:
 | 
					Exception.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) )
 | 
					  REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "expected exception" contains: "except" (case insensitive)
 | 
					  "expected exception" contains: "except" (case insensitive)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -6893,7 +6893,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( contains: "string" and
 | 
					  "this string contains 'abc' as a substring" ( contains: "string" and
 | 
				
			||||||
  contains: "abc" and contains: "substring" and contains: "contains" )
 | 
					  contains: "abc" and contains: "substring" and contains: "contains" )
 | 
				
			||||||
@@ -6905,13 +6905,13 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( contains: "string" or contains:
 | 
					  "this string contains 'abc' as a substring" ( contains: "string" or contains:
 | 
				
			||||||
  "different" or contains: "random" )
 | 
					  "different" or contains: "random" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
 | 
					  CHECK_THAT( testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "some completely different text that contains one common word" ( contains:
 | 
					  "some completely different text that contains one common word" ( contains:
 | 
				
			||||||
  "string" or contains: "different" or contains: "random" )
 | 
					  "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
@@ -6923,7 +6923,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
					  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
				
			||||||
  contains: "different" ) and contains: "substring" )
 | 
					  contains: "different" ) and contains: "substring" )
 | 
				
			||||||
@@ -6935,7 +6935,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
					  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
				
			||||||
  contains: "different" ) and contains: "random" )
 | 
					  contains: "different" ) and contains: "random" )
 | 
				
			||||||
@@ -6947,7 +6947,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), !Contains( "different" ) )
 | 
					  CHECK_THAT( testStringForMatching(), !ContainsSubstring( "different" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" not contains: "different"
 | 
					  "this string contains 'abc' as a substring" not contains: "different"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -6958,7 +6958,7 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: FAILED:
 | 
					Matchers.tests.cpp:<line number>: FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
 | 
					  CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" not contains: "substring"
 | 
					  "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8877,7 +8877,7 @@ with expansion:
 | 
				
			|||||||
  true
 | 
					  true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
					CmdLine.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( result.errorMessage(), Contains("Unrecognized reporter") )
 | 
					  REQUIRE_THAT( result.errorMessage(), ContainsSubstring("Unrecognized reporter") )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Unrecognized reporter, 'unsupported'. Check available with --list-reporters"
 | 
					  "Unrecognized reporter, 'unsupported'. Check available with --list-reporters"
 | 
				
			||||||
  contains: "Unrecognized reporter"
 | 
					  contains: "Unrecognized reporter"
 | 
				
			||||||
@@ -8968,7 +8968,7 @@ with expansion:
 | 
				
			|||||||
  true
 | 
					  true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
					CmdLine.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( result.errorMessage(), Contains("convert") && Contains("oops") )
 | 
					  REQUIRE_THAT( result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops") )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Unable to convert 'oops' to destination type" ( contains: "convert" and
 | 
					  "Unable to convert 'oops' to destination type" ( contains: "convert" and
 | 
				
			||||||
  contains: "oops" )
 | 
					  contains: "oops" )
 | 
				
			||||||
@@ -9064,7 +9064,7 @@ with expansion:
 | 
				
			|||||||
  true
 | 
					  true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
					CmdLine.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( result.errorMessage(), Contains("never") && Contains("both") )
 | 
					  REQUIRE_THAT( result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both") )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "keypress argument must be one of: never, start, exit or both. 'sometimes'
 | 
					  "keypress argument must be one of: never, start, exit or both. 'sometimes'
 | 
				
			||||||
  not recognised" ( contains: "never" and contains: "both" )
 | 
					  not recognised" ( contains: "never" and contains: "both" )
 | 
				
			||||||
@@ -9255,7 +9255,7 @@ with expansion:
 | 
				
			|||||||
  true
 | 
					  true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: PASSED:
 | 
					CmdLine.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( result.errorMessage(), Contains( "colour mode must be one of" ) )
 | 
					  CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "colour mode must be one of: auto, yes or no. 'wrong' not recognised"
 | 
					  "colour mode must be one of: auto, yes or no. 'wrong' not recognised"
 | 
				
			||||||
  contains: "colour mode must be one of"
 | 
					  contains: "colour mode must be one of"
 | 
				
			||||||
@@ -9459,7 +9459,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -9488,7 +9488,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -9516,7 +9516,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -9546,7 +9546,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -9575,7 +9575,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -9603,7 +9603,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -9633,7 +9633,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -9662,7 +9662,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -9690,7 +9690,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -9720,7 +9720,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  All available tags:
 | 
					  All available tags:
 | 
				
			||||||
@@ -9750,7 +9750,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  Available reporters:
 | 
					  Available reporters:
 | 
				
			||||||
@@ -9779,7 +9779,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  All available test cases:
 | 
					  All available test cases:
 | 
				
			||||||
@@ -9810,7 +9810,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  All available tags:
 | 
					  All available tags:
 | 
				
			||||||
@@ -9840,7 +9840,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  Available reporters:
 | 
					  Available reporters:
 | 
				
			||||||
@@ -9869,7 +9869,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  All available test cases:
 | 
					  All available test cases:
 | 
				
			||||||
@@ -9900,7 +9900,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -9929,7 +9929,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -9957,7 +9957,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -9987,7 +9987,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -10016,7 +10016,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -10044,7 +10044,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -10074,7 +10074,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fakeTag"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  <TagsFromMatchingTests>
 | 
					  <TagsFromMatchingTests>
 | 
				
			||||||
@@ -10107,7 +10107,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  <AvailableReporters>
 | 
					  <AvailableReporters>
 | 
				
			||||||
@@ -10138,7 +10138,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  <MatchingTests>
 | 
					  <MatchingTests>
 | 
				
			||||||
@@ -10474,23 +10474,23 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( testStringForMatching(), Contains( "string" ) )
 | 
					  REQUIRE_THAT( testStringForMatching(), ContainsSubstring( "string" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "string"
 | 
					  "this string contains 'abc' as a substring" contains: "string"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( testStringForMatching(), Contains( "string", Catch::CaseSensitive::No ) )
 | 
					  REQUIRE_THAT( testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "string" (case
 | 
					  "this string contains 'abc' as a substring" contains: "string" (case
 | 
				
			||||||
  insensitive)
 | 
					  insensitive)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "abc" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "abc" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "abc"
 | 
					  "this string contains 'abc' as a substring" contains: "abc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Matchers.tests.cpp:<line number>: PASSED:
 | 
					Matchers.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "aBC", Catch::CaseSensitive::No ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "abc" (case
 | 
					  "this string contains 'abc' as a substring" contains: "abc" (case
 | 
				
			||||||
  insensitive)
 | 
					  insensitive)
 | 
				
			||||||
@@ -11035,28 +11035,28 @@ Tag.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tag.tests.cpp:<line number>: PASSED:
 | 
					Tag.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( what, Contains( "[@zzz]" ) )
 | 
					  CHECK_THAT( what, ContainsSubstring( "[@zzz]" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "error: tag alias, '[@zzz]' already registered.
 | 
					  "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
  	First seen at: file:2
 | 
					  	First seen at: file:2
 | 
				
			||||||
  	Redefined at: file:10" contains: "[@zzz]"
 | 
					  	Redefined at: file:10" contains: "[@zzz]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tag.tests.cpp:<line number>: PASSED:
 | 
					Tag.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( what, Contains( "file" ) )
 | 
					  CHECK_THAT( what, ContainsSubstring( "file" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "error: tag alias, '[@zzz]' already registered.
 | 
					  "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
  	First seen at: file:2
 | 
					  	First seen at: file:2
 | 
				
			||||||
  	Redefined at: file:10" contains: "file"
 | 
					  	Redefined at: file:10" contains: "file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tag.tests.cpp:<line number>: PASSED:
 | 
					Tag.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( what, Contains( "2" ) )
 | 
					  CHECK_THAT( what, ContainsSubstring( "2" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "error: tag alias, '[@zzz]' already registered.
 | 
					  "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
  	First seen at: file:2
 | 
					  	First seen at: file:2
 | 
				
			||||||
  	Redefined at: file:10" contains: "2"
 | 
					  	Redefined at: file:10" contains: "2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tag.tests.cpp:<line number>: PASSED:
 | 
					Tag.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  CHECK_THAT( what, Contains( "10" ) )
 | 
					  CHECK_THAT( what, ContainsSubstring( "10" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "error: tag alias, '[@zzz]' already registered.
 | 
					  "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
  	First seen at: file:2
 | 
					  	First seen at: file:2
 | 
				
			||||||
@@ -12451,7 +12451,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("[fakeTag]"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("[fakeTag]"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available tags:
 | 
					  "All available tags:
 | 
				
			||||||
     1  [fakeTag]
 | 
					     1  [fakeTag]
 | 
				
			||||||
@@ -12467,7 +12467,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains("fake reporter"s) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "Available reporters:
 | 
					  "Available reporters:
 | 
				
			||||||
    fake reporter:  fake description
 | 
					    fake reporter:  fake description
 | 
				
			||||||
@@ -12482,7 +12482,7 @@ Reporters.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Reporters.tests.cpp:<line number>: PASSED:
 | 
					Reporters.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) )
 | 
					  REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "All available test cases:
 | 
					  "All available test cases:
 | 
				
			||||||
    fake test name
 | 
					    fake test name
 | 
				
			||||||
@@ -14116,7 +14116,7 @@ Xml.tests.cpp:<line number>
 | 
				
			|||||||
...............................................................................
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Xml.tests.cpp:<line number>: PASSED:
 | 
					Xml.tests.cpp:<line number>: PASSED:
 | 
				
			||||||
  REQUIRE_THAT( stream.str(), Contains(R"(attr1="true")") && Contains(R"(attr2="false")") )
 | 
					  REQUIRE_THAT( stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")") )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "<?xml version="1.0" encoding="UTF-8"?>
 | 
					  "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
  <Element1 attr1="true" attr2="false"/>
 | 
					  <Element1 attr1="true" attr2="false"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -398,17 +398,17 @@ Exception.tests.cpp:<line number>
 | 
				
			|||||||
    <testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAllOf" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAllOf" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAnyOf" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Composed matchers shortcircuit/MatchAnyOf" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Contains string matcher" time="{duration}" status="run">
 | 
					    <testcase classname="<exe-name>.global" name="Contains string matcher" time="{duration}" status="run">
 | 
				
			||||||
      <failure message="testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No )" type="CHECK_THAT">
 | 
					      <failure message="testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No )" type="CHECK_THAT">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
					  "this string contains 'abc' as a substring" contains: "not there" (case
 | 
				
			||||||
  insensitive)
 | 
					  insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
      </failure>
 | 
					      </failure>
 | 
				
			||||||
      <failure message="testStringForMatching(), Contains( "STRING" )" type="CHECK_THAT">
 | 
					      <failure message="testStringForMatching(), ContainsSubstring( "STRING" )" type="CHECK_THAT">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), Contains( "STRING" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" contains: "STRING"
 | 
					  "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
@@ -800,9 +800,9 @@ Condition.tests.cpp:<line number>
 | 
				
			|||||||
    <testcase classname="<exe-name>.global" name="Matchers can be (AnyOf) composed with the || operator" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Matchers can be (AnyOf) composed with the || operator" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Matchers can be composed with both && and ||" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Matchers can be composed with both && and ||" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Matchers can be composed with both && and || - failing" time="{duration}" status="run">
 | 
					    <testcase classname="<exe-name>.global" name="Matchers can be composed with both && and || - failing" time="{duration}" status="run">
 | 
				
			||||||
      <failure message="testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" )" type="CHECK_THAT">
 | 
					      <failure message="testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" )" type="CHECK_THAT">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
 | 
					  CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
					  "this string contains 'abc' as a substring" ( ( contains: "string" or
 | 
				
			||||||
  contains: "different" ) and contains: "random" )
 | 
					  contains: "different" ) and contains: "random" )
 | 
				
			||||||
@@ -811,9 +811,9 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
    </testcase>
 | 
					    </testcase>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Matchers can be negated (Not) with the ! operator" time="{duration}" status="run"/>
 | 
					    <testcase classname="<exe-name>.global" name="Matchers can be negated (Not) with the ! operator" time="{duration}" status="run"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Matchers can be negated (Not) with the ! operator - failing" time="{duration}" status="run">
 | 
					    <testcase classname="<exe-name>.global" name="Matchers can be negated (Not) with the ! operator - failing" time="{duration}" status="run">
 | 
				
			||||||
      <failure message="testStringForMatching(), !Contains( "substring" )" type="CHECK_THAT">
 | 
					      <failure message="testStringForMatching(), !ContainsSubstring( "substring" )" type="CHECK_THAT">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
  CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
 | 
					  CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  "this string contains 'abc' as a substring" not contains: "substring"
 | 
					  "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1008,16 +1008,16 @@ Exception.tests.cpp:<line number>
 | 
				
			|||||||
    <testCase name="Composed matchers shortcircuit/MatchAllOf" duration="{duration}"/>
 | 
					    <testCase name="Composed matchers shortcircuit/MatchAllOf" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Composed matchers shortcircuit/MatchAnyOf" duration="{duration}"/>
 | 
					    <testCase name="Composed matchers shortcircuit/MatchAnyOf" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Contains string matcher" duration="{duration}">
 | 
					    <testCase name="Contains string matcher" duration="{duration}">
 | 
				
			||||||
      <failure message="CHECK_THAT(testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ))">
 | 
					      <failure message="CHECK_THAT(testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ))">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
	CHECK_THAT( testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) )
 | 
						CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
	"this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
						"this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
      </failure>
 | 
					      </failure>
 | 
				
			||||||
      <failure message="CHECK_THAT(testStringForMatching(), Contains( "STRING" ))">
 | 
					      <failure message="CHECK_THAT(testStringForMatching(), ContainsSubstring( "STRING" ))">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
	CHECK_THAT( testStringForMatching(), Contains( "STRING" ) )
 | 
						CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
	"this string contains 'abc' as a substring" contains: "STRING"
 | 
						"this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
@@ -1116,9 +1116,9 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
    <testCase name="Matchers can be (AnyOf) composed with the || operator" duration="{duration}"/>
 | 
					    <testCase name="Matchers can be (AnyOf) composed with the || operator" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Matchers can be composed with both && and ||" duration="{duration}"/>
 | 
					    <testCase name="Matchers can be composed with both && and ||" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Matchers can be composed with both && and || - failing" duration="{duration}">
 | 
					    <testCase name="Matchers can be composed with both && and || - failing" duration="{duration}">
 | 
				
			||||||
      <failure message="CHECK_THAT(testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ))">
 | 
					      <failure message="CHECK_THAT(testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ))">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
	CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
 | 
						CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
	"this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
						"this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
@@ -1126,9 +1126,9 @@ Matchers.tests.cpp:<line number>
 | 
				
			|||||||
    </testCase>
 | 
					    </testCase>
 | 
				
			||||||
    <testCase name="Matchers can be negated (Not) with the ! operator" duration="{duration}"/>
 | 
					    <testCase name="Matchers can be negated (Not) with the ! operator" duration="{duration}"/>
 | 
				
			||||||
    <testCase name="Matchers can be negated (Not) with the ! operator - failing" duration="{duration}">
 | 
					    <testCase name="Matchers can be negated (Not) with the ! operator - failing" duration="{duration}">
 | 
				
			||||||
      <failure message="CHECK_THAT(testStringForMatching(), !Contains( "substring" ))">
 | 
					      <failure message="CHECK_THAT(testStringForMatching(), !ContainsSubstring( "substring" ))">
 | 
				
			||||||
FAILED:
 | 
					FAILED:
 | 
				
			||||||
	CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
 | 
						CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )
 | 
				
			||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
	"this string contains 'abc' as a substring" not contains: "substring"
 | 
						"this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
Matchers.tests.cpp:<line number>
 | 
					Matchers.tests.cpp:<line number>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -893,9 +893,9 @@ ok {test-number} - first.matchCalled for: true
 | 
				
			|||||||
# Composed matchers shortcircuit
 | 
					# Composed matchers shortcircuit
 | 
				
			||||||
ok {test-number} - !second.matchCalled for: true
 | 
					ok {test-number} - !second.matchCalled for: true
 | 
				
			||||||
# Contains string matcher
 | 
					# Contains string matcher
 | 
				
			||||||
not ok {test-number} - testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
					not ok {test-number} - testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
				
			||||||
# Contains string matcher
 | 
					# Contains string matcher
 | 
				
			||||||
not ok {test-number} - testStringForMatching(), Contains( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
 | 
					not ok {test-number} - testStringForMatching(), ContainsSubstring( "STRING" ) for: "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
# Copy and then generate a range
 | 
					# Copy and then generate a range
 | 
				
			||||||
ok {test-number} - elem % 2 == 1 for: 1 == 1
 | 
					ok {test-number} - elem % 2 == 1 for: 1 == 1
 | 
				
			||||||
# Copy and then generate a range
 | 
					# Copy and then generate a range
 | 
				
			||||||
@@ -1039,9 +1039,9 @@ ok {test-number} - thisThrows(), StartsWith( "expected" ) for: "expected excepti
 | 
				
			|||||||
# Exception messages can be tested for
 | 
					# Exception messages can be tested for
 | 
				
			||||||
ok {test-number} - thisThrows(), EndsWith( "exception" ) for: "expected exception" ends with: "exception"
 | 
					ok {test-number} - thisThrows(), EndsWith( "exception" ) for: "expected exception" ends with: "exception"
 | 
				
			||||||
# Exception messages can be tested for
 | 
					# Exception messages can be tested for
 | 
				
			||||||
ok {test-number} - thisThrows(), Contains( "except" ) for: "expected exception" contains: "except"
 | 
					ok {test-number} - thisThrows(), ContainsSubstring( "except" ) for: "expected exception" contains: "except"
 | 
				
			||||||
# Exception messages can be tested for
 | 
					# Exception messages can be tested for
 | 
				
			||||||
ok {test-number} - thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) for: "expected exception" contains: "except" (case insensitive)
 | 
					ok {test-number} - thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No ) for: "expected exception" contains: "except" (case insensitive)
 | 
				
			||||||
# Exceptions matchers
 | 
					# Exceptions matchers
 | 
				
			||||||
ok {test-number} - throwsDerivedException(), DerivedException, Message( "DerivedException::what" ) for: DerivedException::what exception message matches "DerivedException::what"
 | 
					ok {test-number} - throwsDerivedException(), DerivedException, Message( "DerivedException::what" ) for: DerivedException::what exception message matches "DerivedException::what"
 | 
				
			||||||
# Exceptions matchers
 | 
					# Exceptions matchers
 | 
				
			||||||
@@ -1791,19 +1791,19 @@ ok {test-number} - d <= Approx( 1.22 ).epsilon(0.1) for: 1.23 <= Approx( 1.22 )
 | 
				
			|||||||
# ManuallyRegistered
 | 
					# ManuallyRegistered
 | 
				
			||||||
ok {test-number} - with 1 message: 'was called'
 | 
					ok {test-number} - with 1 message: 'was called'
 | 
				
			||||||
# Matchers can be (AllOf) composed with the && operator
 | 
					# Matchers can be (AllOf) composed with the && operator
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) for: "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" ) for: "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
				
			||||||
# Matchers can be (AnyOf) composed with the || operator
 | 
					# Matchers can be (AnyOf) composed with the || operator
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) for: "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) for: "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
# Matchers can be (AnyOf) composed with the || operator
 | 
					# Matchers can be (AnyOf) composed with the || operator
 | 
				
			||||||
ok {test-number} - testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) for: "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					ok {test-number} - testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" ) for: "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
# Matchers can be composed with both && and ||
 | 
					# Matchers can be composed with both && and ||
 | 
				
			||||||
ok {test-number} - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
					ok {test-number} - testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
				
			||||||
# Matchers can be composed with both && and || - failing
 | 
					# Matchers can be composed with both && and || - failing
 | 
				
			||||||
not ok {test-number} - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
					not ok {test-number} - testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) for: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
				
			||||||
# Matchers can be negated (Not) with the ! operator
 | 
					# Matchers can be negated (Not) with the ! operator
 | 
				
			||||||
ok {test-number} - testStringForMatching(), !Contains( "different" ) for: "this string contains 'abc' as a substring" not contains: "different"
 | 
					ok {test-number} - testStringForMatching(), !ContainsSubstring( "different" ) for: "this string contains 'abc' as a substring" not contains: "different"
 | 
				
			||||||
# Matchers can be negated (Not) with the ! operator - failing
 | 
					# Matchers can be negated (Not) with the ! operator - failing
 | 
				
			||||||
not ok {test-number} - testStringForMatching(), !Contains( "substring" ) for: "this string contains 'abc' as a substring" not contains: "substring"
 | 
					not ok {test-number} - testStringForMatching(), !ContainsSubstring( "substring" ) for: "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
# Mismatching exception messages failing the test
 | 
					# Mismatching exception messages failing the test
 | 
				
			||||||
ok {test-number} - thisThrows(), "expected exception" for: "expected exception" equals: "expected exception"
 | 
					ok {test-number} - thisThrows(), "expected exception" for: "expected exception" equals: "expected exception"
 | 
				
			||||||
# Mismatching exception messages failing the test
 | 
					# Mismatching exception messages failing the test
 | 
				
			||||||
@@ -2355,7 +2355,7 @@ ok {test-number} - !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?
 | 
				
			|||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - !result for: true
 | 
					ok {test-number} - !result for: true
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - result.errorMessage(), Contains("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
					ok {test-number} - result.errorMessage(), ContainsSubstring("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - cli.parse({"test", "-b"}) for: {?}
 | 
					ok {test-number} - cli.parse({"test", "-b"}) for: {?}
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
@@ -2375,7 +2375,7 @@ ok {test-number} - config.abortAfter == 2 for: 2 == 2
 | 
				
			|||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - !result for: true
 | 
					ok {test-number} - !result for: true
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - result.errorMessage(), Contains("convert") && Contains("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
					ok {test-number} - result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
					ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?}
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
@@ -2395,7 +2395,7 @@ ok {test-number} - config.waitForKeypress == std::get<1>(input) for: 3 == 3
 | 
				
			|||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - !result for: true
 | 
					ok {test-number} - !result for: true
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - result.errorMessage(), Contains("never") && Contains("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
					ok {test-number} - result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - cli.parse({"test", "-e"}) for: {?}
 | 
					ok {test-number} - cli.parse({"test", "-e"}) for: {?}
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
@@ -2439,7 +2439,7 @@ ok {test-number} - config.useColour == UseColour::No for: 2 == 2
 | 
				
			|||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - !result for: true
 | 
					ok {test-number} - !result for: true
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - result.errorMessage(), Contains( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
					ok {test-number} - result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
ok {test-number} - cli.parse({ "test", "--benchmark-samples=200" }) for: {?}
 | 
					ok {test-number} - cli.parse({ "test", "--benchmark-samples=200" }) for: {?}
 | 
				
			||||||
# Process can be configured on command line
 | 
					# Process can be configured on command line
 | 
				
			||||||
@@ -2481,99 +2481,99 @@ ok {test-number} - actual, !UnorderedEquals( expected ) for: { 'a', 'b' } not Un
 | 
				
			|||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: automake'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: automake'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: automake'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: automake'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: compact'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: compact'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: compact'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: compact'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: console'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: console'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: console'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: console'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: junit'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: junit'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: junit'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: junit'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: sonarqube'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: sonarqube'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: sonarqube'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: sonarqube'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: tap'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: tap'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: tap'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: tap'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: teamcity'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "fakeTag" with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: teamcity'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter" with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: teamcity'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: teamcity'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> <TagsFromMatchingTests>   <Tag>     <Count>1</Count>     <Aliases>       <Alias>fakeTag</Alias>     </Aliases>   </Tag> </TagsFromMatchingTests>" contains: "fakeTag" with 1 message: 'Tested reporter: xml'
 | 
					ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "<?xml version="1.0" encoding="UTF-8"?> <TagsFromMatchingTests>   <Tag>     <Count>1</Count>     <Aliases>       <Alias>fakeTag</Alias>     </Aliases>   </Tag> </TagsFromMatchingTests>" contains: "fakeTag" with 1 message: 'Tested reporter: xml'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> <AvailableReporters>   <Reporter>     <Name>fake reporter</Name>     <Description>fake description</Description>   </Reporter> </AvailableReporters>" contains: "fake reporter" with 1 message: 'Tested reporter: xml'
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "<?xml version="1.0" encoding="UTF-8"?> <AvailableReporters>   <Reporter>     <Name>fake reporter</Name>     <Description>fake description</Description>   </Reporter> </AvailableReporters>" contains: "fake reporter" with 1 message: 'Tested reporter: xml'
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - !(factories.empty()) for: !false
 | 
					ok {test-number} - !(factories.empty()) for: !false
 | 
				
			||||||
# Reporter's write listings to provided stream
 | 
					# Reporter's write listings to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> <MatchingTests>   <TestCase>     <Name>fake test name</Name>     <ClassName/>     <Tags>[fakeTestTag]</Tags>     <SourceInfo>       <File>fake-file.cpp</File>       <Line>123456789</Line>     </SourceInfo>   </TestCase> </MatchingTests>" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: xml'
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "<?xml version="1.0" encoding="UTF-8"?> <MatchingTests>   <TestCase>     <Name>fake test name</Name>     <ClassName/>     <Tags>[fakeTestTag]</Tags>     <SourceInfo>       <File>fake-file.cpp</File>       <Line>123456789</Line>     </SourceInfo>   </TestCase> </MatchingTests>" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: xml'
 | 
				
			||||||
# SUCCEED counts as a test pass
 | 
					# SUCCEED counts as a test pass
 | 
				
			||||||
ok {test-number} - with 1 message: 'this is a success'
 | 
					ok {test-number} - with 1 message: 'this is a success'
 | 
				
			||||||
# SUCCEED does not require an argument
 | 
					# SUCCEED does not require an argument
 | 
				
			||||||
@@ -2636,13 +2636,13 @@ ok {test-number} - Catch::Detail::stringify(arr) == "{ 3, 2, 1 }" for: "{ 3, 2,
 | 
				
			|||||||
# Static arrays are convertible to string
 | 
					# Static arrays are convertible to string
 | 
				
			||||||
ok {test-number} - Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" for: "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }" == "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
					ok {test-number} - Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" for: "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }" == "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "string" ) for: "this string contains 'abc' as a substring" contains: "string"
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "string" ) for: "this string contains 'abc' as a substring" contains: "string"
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "string", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "abc" ) for: "this string contains 'abc' as a substring" contains: "abc"
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "abc" ) for: "this string contains 'abc' as a substring" contains: "abc"
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
ok {test-number} - testStringForMatching(), Contains( "aBC", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
					ok {test-number} - testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No ) for: "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
ok {test-number} - testStringForMatching(), StartsWith( "this" ) for: "this string contains 'abc' as a substring" starts with: "this"
 | 
					ok {test-number} - testStringForMatching(), StartsWith( "this" ) for: "this string contains 'abc' as a substring" starts with: "this"
 | 
				
			||||||
# String matchers
 | 
					# String matchers
 | 
				
			||||||
@@ -2782,13 +2782,13 @@ ok {test-number} - now != later for: {iso8601-timestamp} != {iso8601-timestamp}
 | 
				
			|||||||
# Tabs and newlines show in output
 | 
					# Tabs and newlines show in output
 | 
				
			||||||
not ok {test-number} - s1 == s2 for: "if ($b == 10) { 		$a	= 20; }" == "if ($b == 10) { 	$a = 20; } "
 | 
					not ok {test-number} - s1 == s2 for: "if ($b == 10) { 		$a	= 20; }" == "if ($b == 10) { 	$a = 20; } "
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
ok {test-number} - what, Contains( "[@zzz]" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "[@zzz]"
 | 
					ok {test-number} - what, ContainsSubstring( "[@zzz]" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "[@zzz]"
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
ok {test-number} - what, Contains( "file" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "file"
 | 
					ok {test-number} - what, ContainsSubstring( "file" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "file"
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
ok {test-number} - what, Contains( "2" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "2"
 | 
					ok {test-number} - what, ContainsSubstring( "2" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "2"
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
ok {test-number} - what, Contains( "10" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "10"
 | 
					ok {test-number} - what, ContainsSubstring( "10" ) for: "error: tag alias, '[@zzz]' already registered. 	First seen at: file:2 	Redefined at: file:10" contains: "10"
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
ok {test-number} - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
 | 
					ok {test-number} - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
 | 
				
			||||||
# Tag alias can be registered against tag patterns
 | 
					# Tag alias can be registered against tag patterns
 | 
				
			||||||
@@ -3118,11 +3118,11 @@ not ok {test-number} - explicitly
 | 
				
			|||||||
# The NO_FAIL macro reports a failure but does not fail the test
 | 
					# The NO_FAIL macro reports a failure but does not fail the test
 | 
				
			||||||
ok {test-number} - 1 == 2  # TODO
 | 
					ok {test-number} - 1 == 2  # TODO
 | 
				
			||||||
# The default listing implementation write to provided stream
 | 
					# The default listing implementation write to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("[fakeTag]"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "[fakeTag]"
 | 
					ok {test-number} - listingString, ContainsSubstring("[fakeTag]"s) for: "All available tags:    1  [fakeTag] 1 tag  " contains: "[fakeTag]"
 | 
				
			||||||
# The default listing implementation write to provided stream
 | 
					# The default listing implementation write to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter"
 | 
					ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "Available reporters:   fake reporter:  fake description  " contains: "fake reporter"
 | 
				
			||||||
# The default listing implementation write to provided stream
 | 
					# The default listing implementation write to provided stream
 | 
				
			||||||
ok {test-number} - listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" )
 | 
					ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "All available test cases:   fake test name       [fakeTestTag] 1 test case  " ( contains: "fake test name" and contains: "fakeTestTag" )
 | 
				
			||||||
# This test 'should' fail but doesn't
 | 
					# This test 'should' fail but doesn't
 | 
				
			||||||
ok {test-number} - with 1 message: 'oops!'
 | 
					ok {test-number} - with 1 message: 'oops!'
 | 
				
			||||||
# Thrown string literals are translated
 | 
					# Thrown string literals are translated
 | 
				
			||||||
@@ -3552,7 +3552,7 @@ ok {test-number} - encode( "[\x01]" ) == "[\\x01]" for: "[\x01]" == "[\x01]"
 | 
				
			|||||||
# XmlEncode
 | 
					# XmlEncode
 | 
				
			||||||
ok {test-number} - encode( "[\x7F]" ) == "[\\x7F]" for: "[\x7F]" == "[\x7F]"
 | 
					ok {test-number} - encode( "[\x7F]" ) == "[\\x7F]" for: "[\x7F]" == "[\x7F]"
 | 
				
			||||||
# XmlWriter writes boolean attributes as true/false
 | 
					# XmlWriter writes boolean attributes as true/false
 | 
				
			||||||
ok {test-number} - stream.str(), Contains(R"(attr1="true")") && Contains(R"(attr2="false")") for: "<?xml version="1.0" encoding="UTF-8"?> <Element1 attr1="true" attr2="false"/> " ( contains: "attr1="true"" and contains: "attr2="false"" )
 | 
					ok {test-number} - stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")") for: "<?xml version="1.0" encoding="UTF-8"?> <Element1 attr1="true" attr2="false"/> " ( contains: "attr1="true"" and contains: "attr2="false"" )
 | 
				
			||||||
# analyse no analysis
 | 
					# analyse no analysis
 | 
				
			||||||
ok {test-number} - analysis.mean.point.count() == 23 for: 23.0 == 23
 | 
					ok {test-number} - analysis.mean.point.count() == 23 for: 23.0 == 23
 | 
				
			||||||
# analyse no analysis
 | 
					# analyse no analysis
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -270,8 +270,8 @@ Exception.tests.cpp:<line number>|nunexpected exception with message:|n  "unexpe
 | 
				
			|||||||
##teamcity[testStarted name='Composed matchers shortcircuit']
 | 
					##teamcity[testStarted name='Composed matchers shortcircuit']
 | 
				
			||||||
##teamcity[testFinished name='Composed matchers shortcircuit' duration="{duration}"]
 | 
					##teamcity[testFinished name='Composed matchers shortcircuit' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Contains string matcher']
 | 
					##teamcity[testStarted name='Contains string matcher']
 | 
				
			||||||
Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" contains: "not there" (case insensitive)|n']
 | 
					Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" contains: "not there" (case insensitive)|n']
 | 
				
			||||||
Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), Contains( "STRING" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" contains: "STRING"|n']
 | 
					Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" contains: "STRING"|n']
 | 
				
			||||||
##teamcity[testFinished name='Contains string matcher' duration="{duration}"]
 | 
					##teamcity[testFinished name='Contains string matcher' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Copy and then generate a range']
 | 
					##teamcity[testStarted name='Copy and then generate a range']
 | 
				
			||||||
##teamcity[testFinished name='Copy and then generate a range' duration="{duration}"]
 | 
					##teamcity[testFinished name='Copy and then generate a range' duration="{duration}"]
 | 
				
			||||||
@@ -399,12 +399,12 @@ Condition.tests.cpp:<line number>|nexpression failed|n  CHECK( data.str_hello.si
 | 
				
			|||||||
##teamcity[testStarted name='Matchers can be composed with both && and ||||']
 | 
					##teamcity[testStarted name='Matchers can be composed with both && and ||||']
 | 
				
			||||||
##teamcity[testFinished name='Matchers can be composed with both && and ||||' duration="{duration}"]
 | 
					##teamcity[testFinished name='Matchers can be composed with both && and ||||' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Matchers can be composed with both && and |||| - failing']
 | 
					##teamcity[testStarted name='Matchers can be composed with both && and |||| - failing']
 | 
				
			||||||
Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), ( Contains( "string" ) |||| Contains( "different" ) ) && Contains( "random" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )|n']
 | 
					Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) |||| ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )|n']
 | 
				
			||||||
##teamcity[testFinished name='Matchers can be composed with both && and |||| - failing' duration="{duration}"]
 | 
					##teamcity[testFinished name='Matchers can be composed with both && and |||| - failing' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Matchers can be negated (Not) with the ! operator']
 | 
					##teamcity[testStarted name='Matchers can be negated (Not) with the ! operator']
 | 
				
			||||||
##teamcity[testFinished name='Matchers can be negated (Not) with the ! operator' duration="{duration}"]
 | 
					##teamcity[testFinished name='Matchers can be negated (Not) with the ! operator' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Matchers can be negated (Not) with the ! operator - failing']
 | 
					##teamcity[testStarted name='Matchers can be negated (Not) with the ! operator - failing']
 | 
				
			||||||
Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" not contains: "substring"|n']
 | 
					Matchers.tests.cpp:<line number>|nexpression failed|n  CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) )|nwith expansion:|n  "this string contains |'abc|' as a substring" not contains: "substring"|n']
 | 
				
			||||||
##teamcity[testFinished name='Matchers can be negated (Not) with the ! operator - failing' duration="{duration}"]
 | 
					##teamcity[testFinished name='Matchers can be negated (Not) with the ! operator - failing' duration="{duration}"]
 | 
				
			||||||
##teamcity[testStarted name='Mismatching exception messages failing the test']
 | 
					##teamcity[testStarted name='Mismatching exception messages failing the test']
 | 
				
			||||||
Exception.tests.cpp:<line number>|nexpression failed|n  REQUIRE_THROWS_WITH( thisThrows(), "should fail" )|nwith expansion:|n  "expected exception" equals: "should fail"|n']
 | 
					Exception.tests.cpp:<line number>|nexpression failed|n  REQUIRE_THROWS_WITH( thisThrows(), "should fail" )|nwith expansion:|n  "expected exception" equals: "should fail"|n']
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3884,7 +3884,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Contains string matcher" tags="[.][failing][matchers]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Contains string matcher" tags="[.][failing][matchers]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "not there", Catch::CaseSensitive::No )
 | 
					        testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
					        "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
 | 
				
			||||||
@@ -3892,7 +3892,7 @@ Nor would this
 | 
				
			|||||||
    </Expression>
 | 
					    </Expression>
 | 
				
			||||||
    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "STRING" )
 | 
					        testStringForMatching(), ContainsSubstring( "STRING" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "STRING"
 | 
					        "this string contains 'abc' as a substring" contains: "STRING"
 | 
				
			||||||
@@ -4592,7 +4592,7 @@ Nor would this
 | 
				
			|||||||
      </Expression>
 | 
					      </Expression>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THROWS_WITH" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THROWS_WITH" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          thisThrows(), Contains( "except" )
 | 
					          thisThrows(), ContainsSubstring( "except" )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "expected exception" contains: "except"
 | 
					          "expected exception" contains: "except"
 | 
				
			||||||
@@ -4600,7 +4600,7 @@ Nor would this
 | 
				
			|||||||
      </Expression>
 | 
					      </Expression>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THROWS_WITH" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THROWS_WITH" filename="tests/<exe-name>/UsageTests/Exception.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          thisThrows(), Contains( "exCept", Catch::CaseSensitive::No )
 | 
					          thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "expected exception" contains: "except" (case insensitive)
 | 
					          "expected exception" contains: "except" (case insensitive)
 | 
				
			||||||
@@ -8356,7 +8356,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be (AllOf) composed with the && operator" tags="[matchers][operator&&][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be (AllOf) composed with the && operator" tags="[matchers][operator&&][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" )
 | 
					        testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
					        "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
 | 
				
			||||||
@@ -8367,7 +8367,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be (AnyOf) composed with the || operator" tags="[matchers][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be (AnyOf) composed with the || operator" tags="[matchers][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
 | 
					        testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					        "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
@@ -8375,7 +8375,7 @@ Nor would this
 | 
				
			|||||||
    </Expression>
 | 
					    </Expression>
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
 | 
					        testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
					        "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
 | 
				
			||||||
@@ -8386,7 +8386,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be composed with both && and ||" tags="[matchers][operator&&][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be composed with both && and ||" tags="[matchers][operator&&][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" )
 | 
					        testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
					        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
 | 
				
			||||||
@@ -8397,7 +8397,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be composed with both && and || - failing" tags="[.][failing][matchers][operator&&][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be composed with both && and || - failing" tags="[.][failing][matchers][operator&&][operators][operator||]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" )
 | 
					        testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
					        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
 | 
				
			||||||
@@ -8408,7 +8408,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be negated (Not) with the ! operator" tags="[matchers][not][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be negated (Not) with the ! operator" tags="[matchers][not][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), !Contains( "different" )
 | 
					        testStringForMatching(), !ContainsSubstring( "different" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" not contains: "different"
 | 
					        "this string contains 'abc' as a substring" not contains: "different"
 | 
				
			||||||
@@ -8419,7 +8419,7 @@ Nor would this
 | 
				
			|||||||
  <TestCase name="Matchers can be negated (Not) with the ! operator - failing" tags="[.][failing][matchers][not][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="Matchers can be negated (Not) with the ! operator - failing" tags="[.][failing][matchers][not][operators]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="false" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), !Contains( "substring" )
 | 
					        testStringForMatching(), !ContainsSubstring( "substring" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" not contains: "substring"
 | 
					        "this string contains 'abc' as a substring" not contains: "substring"
 | 
				
			||||||
@@ -10842,7 +10842,7 @@ Nor would this
 | 
				
			|||||||
        </Expression>
 | 
					        </Expression>
 | 
				
			||||||
        <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					        <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
          <Original>
 | 
					          <Original>
 | 
				
			||||||
            result.errorMessage(), Contains("Unrecognized reporter")
 | 
					            result.errorMessage(), ContainsSubstring("Unrecognized reporter")
 | 
				
			||||||
          </Original>
 | 
					          </Original>
 | 
				
			||||||
          <Expanded>
 | 
					          <Expanded>
 | 
				
			||||||
            "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
					            "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
				
			||||||
@@ -10952,7 +10952,7 @@ Nor would this
 | 
				
			|||||||
        </Expression>
 | 
					        </Expression>
 | 
				
			||||||
        <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					        <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
          <Original>
 | 
					          <Original>
 | 
				
			||||||
            result.errorMessage(), Contains("convert") && Contains("oops")
 | 
					            result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops")
 | 
				
			||||||
          </Original>
 | 
					          </Original>
 | 
				
			||||||
          <Expanded>
 | 
					          <Expanded>
 | 
				
			||||||
            "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
					            "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
 | 
				
			||||||
@@ -11075,7 +11075,7 @@ Nor would this
 | 
				
			|||||||
          </Expression>
 | 
					          </Expression>
 | 
				
			||||||
          <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					          <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
            <Original>
 | 
					            <Original>
 | 
				
			||||||
              result.errorMessage(), Contains("never") && Contains("both")
 | 
					              result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both")
 | 
				
			||||||
            </Original>
 | 
					            </Original>
 | 
				
			||||||
            <Expanded>
 | 
					            <Expanded>
 | 
				
			||||||
              "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
					              "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
 | 
				
			||||||
@@ -11313,7 +11313,7 @@ Nor would this
 | 
				
			|||||||
        </Expression>
 | 
					        </Expression>
 | 
				
			||||||
        <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					        <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
          <Original>
 | 
					          <Original>
 | 
				
			||||||
            result.errorMessage(), Contains( "colour mode must be one of" )
 | 
					            result.errorMessage(), ContainsSubstring( "colour mode must be one of" )
 | 
				
			||||||
          </Original>
 | 
					          </Original>
 | 
				
			||||||
          <Expanded>
 | 
					          <Expanded>
 | 
				
			||||||
            "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
					            "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of"
 | 
				
			||||||
@@ -11543,7 +11543,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -11569,7 +11569,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -11594,7 +11594,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -11621,7 +11621,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -11647,7 +11647,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -11672,7 +11672,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -11699,7 +11699,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -11725,7 +11725,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -11750,7 +11750,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -11777,7 +11777,7 @@ Nor would this
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11804,7 +11804,7 @@ All available tags:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11830,7 +11830,7 @@ Available reporters:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11858,7 +11858,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11885,7 +11885,7 @@ All available tags:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11911,7 +11911,7 @@ Available reporters:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -11939,7 +11939,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -11965,7 +11965,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -11990,7 +11990,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -12017,7 +12017,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -12043,7 +12043,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -12068,7 +12068,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -12095,7 +12095,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fakeTag"s)
 | 
					          listingString, ContainsSubstring("fakeTag"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -12125,7 +12125,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -12153,7 +12153,7 @@ All available test cases:
 | 
				
			|||||||
      </Info>
 | 
					      </Info>
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "<?xml version="1.0" encoding="UTF-8"?>
 | 
					          "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
@@ -12497,7 +12497,7 @@ Message from section two
 | 
				
			|||||||
  <TestCase name="String matchers" tags="[matchers]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					  <TestCase name="String matchers" tags="[matchers]" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "string" )
 | 
					        testStringForMatching(), ContainsSubstring( "string" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "string"
 | 
					        "this string contains 'abc' as a substring" contains: "string"
 | 
				
			||||||
@@ -12505,7 +12505,7 @@ Message from section two
 | 
				
			|||||||
    </Expression>
 | 
					    </Expression>
 | 
				
			||||||
    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "string", Catch::CaseSensitive::No )
 | 
					        testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
					        "this string contains 'abc' as a substring" contains: "string" (case insensitive)
 | 
				
			||||||
@@ -12513,7 +12513,7 @@ Message from section two
 | 
				
			|||||||
    </Expression>
 | 
					    </Expression>
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "abc" )
 | 
					        testStringForMatching(), ContainsSubstring( "abc" )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "abc"
 | 
					        "this string contains 'abc' as a substring" contains: "abc"
 | 
				
			||||||
@@ -12521,7 +12521,7 @@ Message from section two
 | 
				
			|||||||
    </Expression>
 | 
					    </Expression>
 | 
				
			||||||
    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
					    <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/UsageTests/Matchers.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        testStringForMatching(), Contains( "aBC", Catch::CaseSensitive::No )
 | 
					        testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No )
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
					        "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
 | 
				
			||||||
@@ -13091,7 +13091,7 @@ Message from section two
 | 
				
			|||||||
    <Section name="The same tag alias can only be registered once" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
					    <Section name="The same tag alias can only be registered once" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
				
			||||||
      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
					      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          what, Contains( "[@zzz]" )
 | 
					          what, ContainsSubstring( "[@zzz]" )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "error: tag alias, '[@zzz]' already registered.
 | 
					          "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
@@ -13101,7 +13101,7 @@ Message from section two
 | 
				
			|||||||
      </Expression>
 | 
					      </Expression>
 | 
				
			||||||
      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
					      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          what, Contains( "file" )
 | 
					          what, ContainsSubstring( "file" )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "error: tag alias, '[@zzz]' already registered.
 | 
					          "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
@@ -13111,7 +13111,7 @@ Message from section two
 | 
				
			|||||||
      </Expression>
 | 
					      </Expression>
 | 
				
			||||||
      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
					      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          what, Contains( "2" )
 | 
					          what, ContainsSubstring( "2" )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "error: tag alias, '[@zzz]' already registered.
 | 
					          "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
@@ -13121,7 +13121,7 @@ Message from section two
 | 
				
			|||||||
      </Expression>
 | 
					      </Expression>
 | 
				
			||||||
      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
					      <Expression success="true" type="CHECK_THAT" filename="tests/<exe-name>/IntrospectiveTests/Tag.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          what, Contains( "10" )
 | 
					          what, ContainsSubstring( "10" )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "error: tag alias, '[@zzz]' already registered.
 | 
					          "error: tag alias, '[@zzz]' already registered.
 | 
				
			||||||
@@ -14601,7 +14601,7 @@ Message from section two
 | 
				
			|||||||
    <Section name="Listing tags" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					    <Section name="Listing tags" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("[fakeTag]"s)
 | 
					          listingString, ContainsSubstring("[fakeTag]"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available tags:
 | 
					          "All available tags:
 | 
				
			||||||
@@ -14616,7 +14616,7 @@ Message from section two
 | 
				
			|||||||
    <Section name="Listing reporters" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					    <Section name="Listing reporters" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains("fake reporter"s)
 | 
					          listingString, ContainsSubstring("fake reporter"s)
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "Available reporters:
 | 
					          "Available reporters:
 | 
				
			||||||
@@ -14630,7 +14630,7 @@ Message from section two
 | 
				
			|||||||
    <Section name="Listing tests" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					    <Section name="Listing tests" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
					      <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Reporters.tests.cpp" >
 | 
				
			||||||
        <Original>
 | 
					        <Original>
 | 
				
			||||||
          listingString, Contains( "fake test name"s ) && Contains( "fakeTestTag"s )
 | 
					          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
 | 
				
			||||||
        </Original>
 | 
					        </Original>
 | 
				
			||||||
        <Expanded>
 | 
					        <Expanded>
 | 
				
			||||||
          "All available test cases:
 | 
					          "All available test cases:
 | 
				
			||||||
@@ -16592,7 +16592,7 @@ There is no extra whitespace here
 | 
				
			|||||||
  <TestCase name="XmlWriter writes boolean attributes as true/false" tags="[XML][XmlWriter]" filename="tests/<exe-name>/IntrospectiveTests/Xml.tests.cpp" >
 | 
					  <TestCase name="XmlWriter writes boolean attributes as true/false" tags="[XML][XmlWriter]" filename="tests/<exe-name>/IntrospectiveTests/Xml.tests.cpp" >
 | 
				
			||||||
    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Xml.tests.cpp" >
 | 
					    <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/Xml.tests.cpp" >
 | 
				
			||||||
      <Original>
 | 
					      <Original>
 | 
				
			||||||
        stream.str(), Contains(R"(attr1="true")") && Contains(R"(attr2="false")")
 | 
					        stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")")
 | 
				
			||||||
      </Original>
 | 
					      </Original>
 | 
				
			||||||
      <Expanded>
 | 
					      <Expanded>
 | 
				
			||||||
        "<?xml version="1.0" encoding="UTF-8"?>
 | 
					        "<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -406,7 +406,7 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
            auto result = cli.parse({"test", "--reporter", "unsupported"});
 | 
					            auto result = cli.parse({"test", "--reporter", "unsupported"});
 | 
				
			||||||
            CHECK(!result);
 | 
					            CHECK(!result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            REQUIRE_THAT(result.errorMessage(), Contains("Unrecognized reporter"));
 | 
					            REQUIRE_THAT(result.errorMessage(), ContainsSubstring("Unrecognized reporter"));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -438,7 +438,7 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
        SECTION("-x must be numeric") {
 | 
					        SECTION("-x must be numeric") {
 | 
				
			||||||
            auto result = cli.parse({"test", "-x", "oops"});
 | 
					            auto result = cli.parse({"test", "-x", "oops"});
 | 
				
			||||||
            CHECK(!result);
 | 
					            CHECK(!result);
 | 
				
			||||||
            REQUIRE_THAT(result.errorMessage(), Contains("convert") && Contains("oops"));
 | 
					            REQUIRE_THAT(result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops"));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     SECTION("wait-for-keypress") {
 | 
					     SECTION("wait-for-keypress") {
 | 
				
			||||||
@@ -460,7 +460,7 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
            CHECK(!result);
 | 
					            CHECK(!result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef CATCH_CONFIG_DISABLE_MATCHERS
 | 
					#ifndef CATCH_CONFIG_DISABLE_MATCHERS
 | 
				
			||||||
            REQUIRE_THAT(result.errorMessage(), Contains("never") && Contains("both"));
 | 
					            REQUIRE_THAT(result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both"));
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -534,7 +534,7 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
        SECTION( "error" ) {
 | 
					        SECTION( "error" ) {
 | 
				
			||||||
            auto result = cli.parse({"test", "--use-colour", "wrong"});
 | 
					            auto result = cli.parse({"test", "--use-colour", "wrong"});
 | 
				
			||||||
            CHECK( !result );
 | 
					            CHECK( !result );
 | 
				
			||||||
            CHECK_THAT( result.errorMessage(), Contains( "colour mode must be one of" ) );
 | 
					            CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "The default listing implementation write to provided stream",
 | 
					TEST_CASE( "The default listing implementation write to provided stream",
 | 
				
			||||||
           "[reporters][reporter-helpers]" ) {
 | 
					           "[reporters][reporter-helpers]" ) {
 | 
				
			||||||
    using Catch::Matchers::Contains;
 | 
					    using Catch::Matchers::ContainsSubstring;
 | 
				
			||||||
    using namespace std::string_literals;
 | 
					    using namespace std::string_literals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::stringstream sstream;
 | 
					    std::stringstream sstream;
 | 
				
			||||||
@@ -31,7 +31,7 @@ TEST_CASE( "The default listing implementation write to provided stream",
 | 
				
			|||||||
        Catch::defaultListTags(sstream, tags, false);
 | 
					        Catch::defaultListTags(sstream, tags, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto listingString = sstream.str();
 | 
					        auto listingString = sstream.str();
 | 
				
			||||||
        REQUIRE_THAT(listingString, Contains("[fakeTag]"s));
 | 
					        REQUIRE_THAT(listingString, ContainsSubstring("[fakeTag]"s));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    SECTION( "Listing reporters" ) {
 | 
					    SECTION( "Listing reporters" ) {
 | 
				
			||||||
        std::vector<Catch::ReporterDescription> reporters(
 | 
					        std::vector<Catch::ReporterDescription> reporters(
 | 
				
			||||||
@@ -39,7 +39,7 @@ TEST_CASE( "The default listing implementation write to provided stream",
 | 
				
			|||||||
        Catch::defaultListReporters(sstream, reporters, Catch::Verbosity::Normal);
 | 
					        Catch::defaultListReporters(sstream, reporters, Catch::Verbosity::Normal);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto listingString = sstream.str();
 | 
					        auto listingString = sstream.str();
 | 
				
			||||||
        REQUIRE_THAT(listingString, Contains("fake reporter"s));
 | 
					        REQUIRE_THAT(listingString, ContainsSubstring("fake reporter"s));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    SECTION( "Listing tests" ) {
 | 
					    SECTION( "Listing tests" ) {
 | 
				
			||||||
        Catch::TestCaseInfo fakeInfo{
 | 
					        Catch::TestCaseInfo fakeInfo{
 | 
				
			||||||
@@ -51,13 +51,13 @@ TEST_CASE( "The default listing implementation write to provided stream",
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        auto listingString = sstream.str();
 | 
					        auto listingString = sstream.str();
 | 
				
			||||||
        REQUIRE_THAT( listingString,
 | 
					        REQUIRE_THAT( listingString,
 | 
				
			||||||
                      Contains( "fake test name"s ) &&
 | 
					                      ContainsSubstring( "fake test name"s ) &&
 | 
				
			||||||
                          Contains( "fakeTestTag"s ) );
 | 
					                          ContainsSubstring( "fakeTestTag"s ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Reporter's write listings to provided stream", "[reporters]" ) {
 | 
					TEST_CASE( "Reporter's write listings to provided stream", "[reporters]" ) {
 | 
				
			||||||
    using Catch::Matchers::Contains;
 | 
					    using Catch::Matchers::ContainsSubstring;
 | 
				
			||||||
    using namespace std::string_literals;
 | 
					    using namespace std::string_literals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto const& factories = Catch::getRegistryHub().getReporterRegistry().getFactories();
 | 
					    auto const& factories = Catch::getRegistryHub().getReporterRegistry().getFactories();
 | 
				
			||||||
@@ -80,7 +80,7 @@ TEST_CASE( "Reporter's write listings to provided stream", "[reporters]" ) {
 | 
				
			|||||||
            reporter->listTags(tags);
 | 
					            reporter->listTags(tags);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            auto listingString = sstream.str();
 | 
					            auto listingString = sstream.str();
 | 
				
			||||||
            REQUIRE_THAT(listingString, Contains("fakeTag"s));
 | 
					            REQUIRE_THAT(listingString, ContainsSubstring("fakeTag"s));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        DYNAMIC_SECTION( factory.first << " reporter lists reporters" ) {
 | 
					        DYNAMIC_SECTION( factory.first << " reporter lists reporters" ) {
 | 
				
			||||||
@@ -89,7 +89,7 @@ TEST_CASE( "Reporter's write listings to provided stream", "[reporters]" ) {
 | 
				
			|||||||
            reporter->listReporters(reporters);
 | 
					            reporter->listReporters(reporters);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            auto listingString = sstream.str();
 | 
					            auto listingString = sstream.str();
 | 
				
			||||||
            REQUIRE_THAT(listingString, Contains("fake reporter"s));
 | 
					            REQUIRE_THAT(listingString, ContainsSubstring("fake reporter"s));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        DYNAMIC_SECTION( factory.first << " reporter lists tests" ) {
 | 
					        DYNAMIC_SECTION( factory.first << " reporter lists tests" ) {
 | 
				
			||||||
@@ -102,8 +102,8 @@ TEST_CASE( "Reporter's write listings to provided stream", "[reporters]" ) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            auto listingString = sstream.str();
 | 
					            auto listingString = sstream.str();
 | 
				
			||||||
            REQUIRE_THAT( listingString,
 | 
					            REQUIRE_THAT( listingString,
 | 
				
			||||||
                          Contains( "fake test name"s ) &&
 | 
					                          ContainsSubstring( "fake test name"s ) &&
 | 
				
			||||||
                              Contains( "fakeTestTag"s ) );
 | 
					                              ContainsSubstring( "fakeTestTag"s ) );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,10 +24,10 @@ TEST_CASE( "Tag alias can be registered against tag patterns" ) {
 | 
				
			|||||||
        catch( std::exception& ex ) {
 | 
					        catch( std::exception& ex ) {
 | 
				
			||||||
            std::string what = ex.what();
 | 
					            std::string what = ex.what();
 | 
				
			||||||
            using namespace Catch::Matchers;
 | 
					            using namespace Catch::Matchers;
 | 
				
			||||||
            CHECK_THAT( what, Contains( "[@zzz]" ) );
 | 
					            CHECK_THAT( what, ContainsSubstring( "[@zzz]" ) );
 | 
				
			||||||
            CHECK_THAT( what, Contains( "file" ) );
 | 
					            CHECK_THAT( what, ContainsSubstring( "file" ) );
 | 
				
			||||||
            CHECK_THAT( what, Contains( "2" ) );
 | 
					            CHECK_THAT( what, ContainsSubstring( "2" ) );
 | 
				
			||||||
            CHECK_THAT( what, Contains( "10" ) );
 | 
					            CHECK_THAT( what, ContainsSubstring( "10" ) );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,7 +117,7 @@ TEST_CASE("XmlEncode: UTF-8", "[XML][UTF-8][approvals]") {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE("XmlWriter writes boolean attributes as true/false", "[XML][XmlWriter]") {
 | 
					TEST_CASE("XmlWriter writes boolean attributes as true/false", "[XML][XmlWriter]") {
 | 
				
			||||||
    using Catch::Matchers::Contains;
 | 
					    using Catch::Matchers::ContainsSubstring;
 | 
				
			||||||
    std::stringstream stream;
 | 
					    std::stringstream stream;
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Catch::XmlWriter xml(stream);
 | 
					        Catch::XmlWriter xml(stream);
 | 
				
			||||||
@@ -128,6 +128,6 @@ TEST_CASE("XmlWriter writes boolean attributes as true/false", "[XML][XmlWriter]
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    REQUIRE_THAT( stream.str(),
 | 
					    REQUIRE_THAT( stream.str(),
 | 
				
			||||||
                  Contains(R"(attr1="true")") &&
 | 
					                  ContainsSubstring(R"(attr1="true")") &&
 | 
				
			||||||
                  Contains(R"(attr2="false")") );
 | 
					                  ContainsSubstring(R"(attr2="false")") );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -167,8 +167,8 @@ TEST_CASE( "Exception messages can be tested for", "[!throws]" ) {
 | 
				
			|||||||
    SECTION( "wildcarded" ) {
 | 
					    SECTION( "wildcarded" ) {
 | 
				
			||||||
        REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) );
 | 
					        REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) );
 | 
				
			||||||
        REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) );
 | 
					        REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) );
 | 
				
			||||||
        REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) );
 | 
					        REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "except" ) );
 | 
				
			||||||
        REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) );
 | 
					        REQUIRE_THROWS_WITH( thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,12 +105,12 @@ namespace {
 | 
				
			|||||||
} // end unnamed namespace
 | 
					} // end unnamed namespace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "String matchers", "[matchers]" ) {
 | 
					TEST_CASE( "String matchers", "[matchers]" ) {
 | 
				
			||||||
    REQUIRE_THAT( testStringForMatching(), Contains( "string" ) );
 | 
					    REQUIRE_THAT( testStringForMatching(), ContainsSubstring( "string" ) );
 | 
				
			||||||
    REQUIRE_THAT( testStringForMatching(),
 | 
					    REQUIRE_THAT( testStringForMatching(),
 | 
				
			||||||
                  Contains( "string", Catch::CaseSensitive::No ) );
 | 
					                  ContainsSubstring( "string", Catch::CaseSensitive::No ) );
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(), Contains( "abc" ) );
 | 
					    CHECK_THAT( testStringForMatching(), ContainsSubstring( "abc" ) );
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                Contains( "aBC", Catch::CaseSensitive::No ) );
 | 
					                ContainsSubstring( "aBC", Catch::CaseSensitive::No ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(), StartsWith( "this" ) );
 | 
					    CHECK_THAT( testStringForMatching(), StartsWith( "this" ) );
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
@@ -122,8 +122,8 @@ TEST_CASE( "String matchers", "[matchers]" ) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Contains string matcher", "[.][failing][matchers]" ) {
 | 
					TEST_CASE( "Contains string matcher", "[.][failing][matchers]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                Contains( "not there", Catch::CaseSensitive::No ) );
 | 
					                ContainsSubstring( "not there", Catch::CaseSensitive::No ) );
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(), Contains( "STRING" ) );
 | 
					    CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "StartsWith string matcher", "[.][failing][matchers]" ) {
 | 
					TEST_CASE( "StartsWith string matcher", "[.][failing][matchers]" ) {
 | 
				
			||||||
@@ -185,42 +185,42 @@ TEST_CASE( "Regex string matcher", "[matchers][.failing]" ) {
 | 
				
			|||||||
TEST_CASE( "Matchers can be (AllOf) composed with the && operator",
 | 
					TEST_CASE( "Matchers can be (AllOf) composed with the && operator",
 | 
				
			||||||
           "[matchers][operators][operator&&]" ) {
 | 
					           "[matchers][operators][operator&&]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                Contains( "string" ) && Contains( "abc" ) &&
 | 
					                ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) &&
 | 
				
			||||||
                    Contains( "substring" ) && Contains( "contains" ) );
 | 
					                    ContainsSubstring( "substring" ) && ContainsSubstring( "contains" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Matchers can be (AnyOf) composed with the || operator",
 | 
					TEST_CASE( "Matchers can be (AnyOf) composed with the || operator",
 | 
				
			||||||
           "[matchers][operators][operator||]" ) {
 | 
					           "[matchers][operators][operator||]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                Contains( "string" ) || Contains( "different" ) ||
 | 
					                ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ||
 | 
				
			||||||
                    Contains( "random" ) );
 | 
					                    ContainsSubstring( "random" ) );
 | 
				
			||||||
    CHECK_THAT( testStringForMatching2(),
 | 
					    CHECK_THAT( testStringForMatching2(),
 | 
				
			||||||
                Contains( "string" ) || Contains( "different" ) ||
 | 
					                ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ||
 | 
				
			||||||
                    Contains( "random" ) );
 | 
					                    ContainsSubstring( "random" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Matchers can be composed with both && and ||",
 | 
					TEST_CASE( "Matchers can be composed with both && and ||",
 | 
				
			||||||
           "[matchers][operators][operator||][operator&&]" ) {
 | 
					           "[matchers][operators][operator||][operator&&]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                ( Contains( "string" ) || Contains( "different" ) ) &&
 | 
					                ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) &&
 | 
				
			||||||
                    Contains( "substring" ) );
 | 
					                    ContainsSubstring( "substring" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Matchers can be composed with both && and || - failing",
 | 
					TEST_CASE( "Matchers can be composed with both && and || - failing",
 | 
				
			||||||
           "[matchers][operators][operator||][operator&&][.failing]" ) {
 | 
					           "[matchers][operators][operator||][operator&&][.failing]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(),
 | 
					    CHECK_THAT( testStringForMatching(),
 | 
				
			||||||
                ( Contains( "string" ) || Contains( "different" ) ) &&
 | 
					                ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) &&
 | 
				
			||||||
                    Contains( "random" ) );
 | 
					                    ContainsSubstring( "random" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Matchers can be negated (Not) with the ! operator",
 | 
					TEST_CASE( "Matchers can be negated (Not) with the ! operator",
 | 
				
			||||||
           "[matchers][operators][not]" ) {
 | 
					           "[matchers][operators][not]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(), !Contains( "different" ) );
 | 
					    CHECK_THAT( testStringForMatching(), !ContainsSubstring( "different" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_CASE( "Matchers can be negated (Not) with the ! operator - failing",
 | 
					TEST_CASE( "Matchers can be negated (Not) with the ! operator - failing",
 | 
				
			||||||
           "[matchers][operators][not][.failing]" ) {
 | 
					           "[matchers][operators][not][.failing]" ) {
 | 
				
			||||||
    CHECK_THAT( testStringForMatching(), !Contains( "substring" ) );
 | 
					    CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename T> struct CustomAllocator : private std::allocator<T> {
 | 
					template <typename T> struct CustomAllocator : private std::allocator<T> {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user