aboutsummaryrefslogtreecommitdiff
path: root/unittest/Catch/projects/SelfTest/Baselines
diff options
context:
space:
mode:
Diffstat (limited to 'unittest/Catch/projects/SelfTest/Baselines')
-rw-r--r--unittest/Catch/projects/SelfTest/Baselines/console.std.approved.txt835
-rw-r--r--unittest/Catch/projects/SelfTest/Baselines/console.sw.approved.txt9098
-rw-r--r--unittest/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt491
-rw-r--r--unittest/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt687
-rw-r--r--unittest/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt9569
5 files changed, 20680 insertions, 0 deletions
diff --git a/unittest/Catch/projects/SelfTest/Baselines/console.std.approved.txt b/unittest/Catch/projects/SelfTest/Baselines/console.std.approved.txt
new file mode 100644
index 0000000..29870b9
--- /dev/null
+++ b/unittest/Catch/projects/SelfTest/Baselines/console.std.approved.txt
@@ -0,0 +1,835 @@
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CatchSelfTest is a <version> host application.
+Run with -? for options
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( s == "world" )
+with expansion:
+ "hello" == "world"
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+Equality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 6 )
+with expansion:
+ 7 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 8 )
+with expansion:
+ 7 == 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 0 )
+with expansion:
+ 7 == 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.11f ) )
+with expansion:
+ 9.1f == Approx( 9.1099996567 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.0f ) )
+with expansion:
+ 9.1f == Approx( 9.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 1 ) )
+with expansion:
+ 9.1f == Approx( 1.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 0 ) )
+with expansion:
+ 9.1f == Approx( 0.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi == Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "goodbye" )
+with expansion:
+ "hello" == "goodbye"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hell" )
+with expansion:
+ "hello" == "hell"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hello1" )
+with expansion:
+ "hello" == "hello1"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() == 6 )
+with expansion:
+ 5 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( x == Approx( 1.301 ) )
+with expansion:
+ 1.3 == Approx( 1.301 )
+
+-------------------------------------------------------------------------------
+Inequality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven != 7 )
+with expansion:
+ 7 != 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one != Approx( 9.1f ) )
+with expansion:
+ 9.1f != Approx( 9.1000003815 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi != Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415926535 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello != "hello" )
+with expansion:
+ "hello" != "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() != 5 )
+with expansion:
+ 5 != 5
+
+-------------------------------------------------------------------------------
+Ordering comparison checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 7 )
+with expansion:
+ 7 > 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 7 )
+with expansion:
+ 7 < 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 8 )
+with expansion:
+ 7 > 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 6 )
+with expansion:
+ 7 < 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 0 )
+with expansion:
+ 7 < 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < -1 )
+with expansion:
+ 7 < -1
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven >= 8 )
+with expansion:
+ 7 >= 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven <= 6 )
+with expansion:
+ 7 <= 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one < 9 )
+with expansion:
+ 9.1f < 9
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 10 )
+with expansion:
+ 9.1f > 10
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 9.2 )
+with expansion:
+ 9.1f > 9.2
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hello" )
+with expansion:
+ "hello" > "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hello" )
+with expansion:
+ "hello" < "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hellp" )
+with expansion:
+ "hello" > "hellp"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "z" )
+with expansion:
+ "hello" > "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hellm" )
+with expansion:
+ "hello" < "hellm"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "a" )
+with expansion:
+ "hello" < "a"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello >= "z" )
+with expansion:
+ "hello" >= "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello <= "a" )
+with expansion:
+ "hello" <= "a"
+
+-------------------------------------------------------------------------------
+'Not' checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( false != false )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( true != true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !true )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !trueValue )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( trueValue )
+with expansion:
+ !true
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !(1 == 1) )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( 1 == 1 )
+with expansion:
+ !(1 == 1)
+
+-------------------------------------------------------------------------------
+Expected exceptions that don't throw or unexpected exceptions fail the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisDoesntThrow() )
+because no exception was thrown where one was expected:
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_NOTHROW( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown directly they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+An unchecked exception reports the line of the last assertion
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ {Unknown expression after the reported line}
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from sections they are always failures
+ section name
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from functions they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a REQUIRE the test should abort
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a CHECK the test should abort and
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+Non-std exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom exception
+
+-------------------------------------------------------------------------------
+Custom std-exceptions can be custom translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom std exception
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for nothrow
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_NOTHROW( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for throwing as something else
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_AS( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Unexpected exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ 3.14
+
+-------------------------------------------------------------------------------
+Mismatching exception messages failing the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
+with expansion:
+ expected exception
+
+-------------------------------------------------------------------------------
+INFO and WARN do not abort tests
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ this is a warning
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message should be logged
+ so should this
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure, even if captured before successful assertions
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message may be logged later
+ this message should be logged
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 0 )
+with expansion:
+ 2 == 0
+with message:
+ and this, but later
+
+-------------------------------------------------------------------------------
+FAIL aborts the test
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+-------------------------------------------------------------------------------
+FAIL does not require an argument
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section one
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section two
+
+Message from section one
+Message from section two
+-------------------------------------------------------------------------------
+SCOPED_INFO is reset for each loop
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( i < 10 )
+with expansion:
+ 10 < 10
+with messages:
+ current counter 10
+ i := 10
+
+-------------------------------------------------------------------------------
+just failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Previous info should not be seen
+
+-------------------------------------------------------------------------------
+sends information to INFO
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with messages:
+ hi
+ i := 7
+
+-------------------------------------------------------------------------------
+Pointers can be converted to strings
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ actual address of p: 0x<hex digits>
+
+MessageTests.cpp:<line number>:
+warning:
+ toString(p): 0x<hex digits>
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( a == b )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( b > a )
+with expansion:
+ 0 > 1
+
+-------------------------------------------------------------------------------
+looped tests
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[0] (1) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[1] (1) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[3] (3) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[4] (5) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[6] (13) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[7] (21) is even
+
+A string sent directly to stdout
+A string sent directly to stderr
+-------------------------------------------------------------------------------
+checkedIf, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_IF( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedIf( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+checkedElse, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_ELSE( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedElse( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+send a single char to INFO
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with message:
+ 3
+
+-------------------------------------------------------------------------------
+Contains string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "not there"
+
+-------------------------------------------------------------------------------
+StartsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "string"
+
+-------------------------------------------------------------------------------
+EndsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "this"
+
+-------------------------------------------------------------------------------
+Equals string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "something else"
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and || - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "substring"
+
+-------------------------------------------------------------------------------
+Nice descriptive name
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+warning:
+ This one ran
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+explicitly with message:
+ to infinity and beyond
+
+-------------------------------------------------------------------------------
+Tabs and newlines show in output
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( s1 == s2 )
+with expansion:
+ "if ($b == 10) {
+ $a= 20;
+ }"
+ ==
+ "if ($b == 10) {
+ $a = 20;
+ }
+ "
+
+hello
+hello
+-------------------------------------------------------------------------------
+Where there is more to the expression after the RHS
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+Where the LHS is not a simple value
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+A failing expression with a non streamable type is still captured
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( &o1 == &o2 )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( o1 == o2 )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+string literals of different sizes can be compared
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ REQUIRE( std::string( "first" ) == "second" )
+with expansion:
+ "first" == "second"
+
+===============================================================================
+test cases: 167 | 124 passed | 42 failed | 1 failed as expected
+assertions: 919 | 823 passed | 83 failed | 13 failed as expected
+
diff --git a/unittest/Catch/projects/SelfTest/Baselines/console.sw.approved.txt b/unittest/Catch/projects/SelfTest/Baselines/console.sw.approved.txt
new file mode 100644
index 0000000..cd73c2a
--- /dev/null
+++ b/unittest/Catch/projects/SelfTest/Baselines/console.sw.approved.txt
@@ -0,0 +1,9098 @@
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CatchSelfTest is a <version> host application.
+Run with -? for options
+
+-------------------------------------------------------------------------------
+toString(enum)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2{0}" )
+with expansion:
+ "E2{0}" == "E2{0}"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2{1}" )
+with expansion:
+ "E2{1}" == "E2{1}"
+
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum class w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2/V0" )
+with expansion:
+ "E2/V0" == "E2/V0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2/V1" )
+with expansion:
+ "E2/V1" == "E2/V1"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e3) == "Unknown enum value 10" )
+with expansion:
+ "Unknown enum value 10"
+ ==
+ "Unknown enum value 10"
+
+-------------------------------------------------------------------------------
+Some simple comparisons between doubles
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == Approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.22 ) )
+with expansion:
+ 1.23 != Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.24 ) )
+with expansion:
+ 1.23 != Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.22 )
+with expansion:
+ Approx( 1.23 ) != 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.24 )
+with expansion:
+ Approx( 1.23 ) != 1.24
+
+-------------------------------------------------------------------------------
+Approximate comparisons with different epsilons
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.231 ) )
+with expansion:
+ 1.23 != Approx( 1.231 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
+with expansion:
+ 1.23 == Approx( 1.231 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with floats
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.23f == Approx( 1.23f ) )
+with expansion:
+ 1.23f == Approx( 1.2300000191 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0.0f == Approx( 0.0f ) )
+with expansion:
+ 0.0f == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with ints
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1 == Approx( 1 ) )
+with expansion:
+ 1 == Approx( 1.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( 0 ) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with mixed numeric types
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.0f == Approx( 1 ) )
+with expansion:
+ 1.0f == Approx( 1.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( dZero) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) )
+with expansion:
+ 0 == Approx( 0.00001 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.234f == Approx( dMedium ) )
+with expansion:
+ 1.234f == Approx( 1.234 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( dMedium == Approx( 1.234f ) )
+with expansion:
+ 1.234 == Approx( 1.2339999676 )
+
+-------------------------------------------------------------------------------
+Use a custom approx
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.22 ) )
+with expansion:
+ 1.23 == Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.24 ) )
+with expansion:
+ 1.23 == Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != approx( 1.25 ) )
+with expansion:
+ 1.23 != Approx( 1.25 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.22 )
+with expansion:
+ Approx( 1.23 ) == 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.24 )
+with expansion:
+ Approx( 1.23 ) == 1.24
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) != 1.25 )
+with expansion:
+ Approx( 1.23 ) != 1.25
+
+-------------------------------------------------------------------------------
+Approximate PI
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
+with expansion:
+ 3.1428571429 == Approx( 3.141 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
+with expansion:
+ 3.1428571429 != Approx( 3.141 )
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s == "hello" )
+with expansion:
+ "hello" == "hello"
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( s == "world" )
+with expansion:
+ "hello" == "world"
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+Equality checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven == 7 )
+with expansion:
+ 7 == 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
+with expansion:
+ 9.1f == Approx( 9.1000003815 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415926535 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello == "hello" )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( "hello" == data.str_hello )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello.size() == 5 )
+with expansion:
+ 5 == 5
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( x == Approx( 1.3 ) )
+with expansion:
+ 1.3 == Approx( 1.3 )
+
+-------------------------------------------------------------------------------
+Equality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 6 )
+with expansion:
+ 7 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 8 )
+with expansion:
+ 7 == 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 0 )
+with expansion:
+ 7 == 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.11f ) )
+with expansion:
+ 9.1f == Approx( 9.1099996567 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.0f ) )
+with expansion:
+ 9.1f == Approx( 9.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 1 ) )
+with expansion:
+ 9.1f == Approx( 1.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 0 ) )
+with expansion:
+ 9.1f == Approx( 0.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi == Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "goodbye" )
+with expansion:
+ "hello" == "goodbye"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hell" )
+with expansion:
+ "hello" == "hell"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hello1" )
+with expansion:
+ "hello" == "hello1"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() == 6 )
+with expansion:
+ 5 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( x == Approx( 1.301 ) )
+with expansion:
+ 1.3 == Approx( 1.301 )
+
+-------------------------------------------------------------------------------
+Inequality checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven != 6 )
+with expansion:
+ 7 != 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven != 8 )
+with expansion:
+ 7 != 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
+with expansion:
+ 9.1f != Approx( 9.1099996567 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
+with expansion:
+ 9.1f != Approx( 9.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 1 ) )
+with expansion:
+ 9.1f != Approx( 1.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 0 ) )
+with expansion:
+ 9.1f != Approx( 0.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.double_pi != Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "goodbye" )
+with expansion:
+ "hello" != "goodbye"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "hell" )
+with expansion:
+ "hello" != "hell"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "hello1" )
+with expansion:
+ "hello" != "hello1"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello.size() != 6 )
+with expansion:
+ 5 != 6
+
+-------------------------------------------------------------------------------
+Inequality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven != 7 )
+with expansion:
+ 7 != 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one != Approx( 9.1f ) )
+with expansion:
+ 9.1f != Approx( 9.1000003815 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi != Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415926535 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello != "hello" )
+with expansion:
+ "hello" != "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() != 5 )
+with expansion:
+ 5 != 5
+
+-------------------------------------------------------------------------------
+Ordering comparison checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven < 8 )
+with expansion:
+ 7 < 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > 6 )
+with expansion:
+ 7 > 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > 0 )
+with expansion:
+ 7 > 0
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > -1 )
+with expansion:
+ 7 > -1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven >= 7 )
+with expansion:
+ 7 >= 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven >= 6 )
+with expansion:
+ 7 >= 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven <= 7 )
+with expansion:
+ 7 <= 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven <= 8 )
+with expansion:
+ 7 <= 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one > 9 )
+with expansion:
+ 9.1f > 9
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one < 10 )
+with expansion:
+ 9.1f < 10
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one < 9.2 )
+with expansion:
+ 9.1f < 9.2
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello <= "hello" )
+with expansion:
+ "hello" <= "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello >= "hello" )
+with expansion:
+ "hello" >= "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello < "hellp" )
+with expansion:
+ "hello" < "hellp"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello < "zebra" )
+with expansion:
+ "hello" < "zebra"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello > "hellm" )
+with expansion:
+ "hello" > "hellm"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello > "a" )
+with expansion:
+ "hello" > "a"
+
+-------------------------------------------------------------------------------
+Ordering comparison checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 7 )
+with expansion:
+ 7 > 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 7 )
+with expansion:
+ 7 < 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 8 )
+with expansion:
+ 7 > 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 6 )
+with expansion:
+ 7 < 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 0 )
+with expansion:
+ 7 < 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < -1 )
+with expansion:
+ 7 < -1
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven >= 8 )
+with expansion:
+ 7 >= 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven <= 6 )
+with expansion:
+ 7 <= 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one < 9 )
+with expansion:
+ 9.1f < 9
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 10 )
+with expansion:
+ 9.1f > 10
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 9.2 )
+with expansion:
+ 9.1f > 9.2
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hello" )
+with expansion:
+ "hello" > "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hello" )
+with expansion:
+ "hello" < "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hellp" )
+with expansion:
+ "hello" > "hellp"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "z" )
+with expansion:
+ "hello" > "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hellm" )
+with expansion:
+ "hello" < "hellm"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "a" )
+with expansion:
+ "hello" < "a"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello >= "z" )
+with expansion:
+ "hello" >= "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello <= "a" )
+with expansion:
+ "hello" <= "a"
+
+-------------------------------------------------------------------------------
+Comparisons with int literals don't warn when mixing signed/ unsigned
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ui == 2 )
+with expansion:
+ 2 == 2
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( l == 3 )
+with expansion:
+ 3 == 3
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ul == 4 )
+with expansion:
+ 4 == 4
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( c == 5 )
+with expansion:
+ 5 == 5
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( uc == 6 )
+with expansion:
+ 6 == 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1 == i )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 2 == ui )
+with expansion:
+ 2 == 2
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 3 == l )
+with expansion:
+ 3 == 3
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 4 == ul )
+with expansion:
+ 4 == 4
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 5 == c )
+with expansion:
+ 5 == 5
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 6 == uc )
+with expansion:
+ 6 == 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( (std::numeric_limits<unsigned long>::max)() > ul )
+with expansion:
+ 18446744073709551615 (0x<hex digits>)
+ >
+ 4
+
+-------------------------------------------------------------------------------
+comparisons between int variables
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_char_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_short_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_int_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_long_var )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+comparisons between const int variables
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_char_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_short_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_int_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_long_var == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Comparisons between unsigned ints and negative signed ints match c++ standard
+behaviour
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( ( -1 > 2u ) )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( -1 > 2u )
+with expansion:
+ -1 > 2
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( ( 2u < -1 ) )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( 2u < -1 )
+with expansion:
+ 2 < -1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( ( minInt > 2u ) )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( minInt > 2u )
+with expansion:
+ -2147483648 > 2
+
+-------------------------------------------------------------------------------
+Comparisons between ints where one side is computed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ CHECK( 54 == 6*9 )
+with expansion:
+ 54 == 54
+
+-------------------------------------------------------------------------------
+Pointers can be compared to null
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p == nullptr )
+with expansion:
+ NULL == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p == pNULL )
+with expansion:
+ NULL == NULL
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( cp != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( cpc != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( returnsNull() == nullptr )
+with expansion:
+ {null string} == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( returnsConstNull() == nullptr )
+with expansion:
+ {null string} == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( nullptr != p )
+with expansion:
+ nullptr != 0x<hex digits>
+
+-------------------------------------------------------------------------------
+'Not' checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( false == false )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( true == true )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !false )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( false )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !falseValue )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( falseValue )
+with expansion:
+ !false
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !(1 == 2) )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( 1 == 2 )
+with expansion:
+ !(1 == 2)
+
+-------------------------------------------------------------------------------
+'Not' checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( false != false )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( true != true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !true )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !trueValue )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( trueValue )
+with expansion:
+ !true
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !(1 == 1) )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( 1 == 1 )
+with expansion:
+ !(1 == 1)
+
+-------------------------------------------------------------------------------
+When checked exceptions are thrown they can be expected or unexpected
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_AS( thisThrows() )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_NOTHROW( thisDoesntThrow() )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS( thisThrows() )
+
+-------------------------------------------------------------------------------
+Expected exceptions that don't throw or unexpected exceptions fail the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisDoesntThrow() )
+because no exception was thrown where one was expected:
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_NOTHROW( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown directly they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+An unchecked exception reports the line of the last assertion
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ CHECK( 1 == 1 )
+
+ExceptionTests.cpp:<line number>: FAILED:
+ {Unknown expression after the reported line}
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from sections they are always failures
+ section name
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from functions they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a REQUIRE the test should abort
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a CHECK the test should abort and
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+Non-std exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom exception
+
+-------------------------------------------------------------------------------
+Custom std-exceptions can be custom translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom std exception
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for nothrow
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_NOTHROW( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for throwing as something else
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_AS( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Unexpected exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ 3.14
+
+-------------------------------------------------------------------------------
+NotImplemented exception
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) )
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ exact match
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ different case
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) )
+
+-------------------------------------------------------------------------------
+Exception messages can be tested for
+ wildcarded
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) )
+
+-------------------------------------------------------------------------------
+Mismatching exception messages failing the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
+with expansion:
+ expected exception
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generator over a range of pairs
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( i->first == i->second-1 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Generator over a range of pairs
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( i->first == i->second-1 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+INFO and WARN do not abort tests
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ this is a message
+ this is a warning
+
+-------------------------------------------------------------------------------
+SUCCEED counts as a test pass
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+PASSED:
+with message:
+ this is a success
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message should be logged
+ so should this
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure, even if captured before successful assertions
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+PASSED:
+ CHECK( a == 2 )
+with expansion:
+ 2 == 2
+with message:
+ this message may be logged later
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 1 )
+with expansion:
+ 2 == 1
+with message:
+ this message should be logged
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 0 )
+with expansion:
+ 2 == 0
+with message:
+ and this, but later
+
+MessageTests.cpp:<line number>:
+PASSED:
+ CHECK( a == 2 )
+with expansion:
+ 2 == 2
+with message:
+ but not this
+
+-------------------------------------------------------------------------------
+FAIL aborts the test
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+-------------------------------------------------------------------------------
+FAIL does not require an argument
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+SUCCESS does not require an argument
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section one
+
+-------------------------------------------------------------------------------
+Output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section two
+
+Message from section one
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'one'
+
+Message from section two
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'two'
+
+-------------------------------------------------------------------------------
+SCOPED_INFO is reset for each loop
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 0 < 10
+with messages:
+ current counter 0
+ i := 0
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 1 < 10
+with messages:
+ current counter 1
+ i := 1
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 2 < 10
+with messages:
+ current counter 2
+ i := 2
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 3 < 10
+with messages:
+ current counter 3
+ i := 3
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 4 < 10
+with messages:
+ current counter 4
+ i := 4
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 5 < 10
+with messages:
+ current counter 5
+ i := 5
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 6 < 10
+with messages:
+ current counter 6
+ i := 6
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 7 < 10
+with messages:
+ current counter 7
+ i := 7
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 8 < 10
+with messages:
+ current counter 8
+ i := 8
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 9 < 10
+with messages:
+ current counter 9
+ i := 9
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( i < 10 )
+with expansion:
+ 10 < 10
+with messages:
+ current counter 10
+ i := 10
+
+-------------------------------------------------------------------------------
+The NO_FAIL macro reports a failure but does not fail the test
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+FAILED - but was ok:
+ CHECK_NOFAIL( 1 == 2 )
+
+-------------------------------------------------------------------------------
+just failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Previous info should not be seen
+
+-------------------------------------------------------------------------------
+sends information to INFO
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with messages:
+ hi
+ i := 7
+
+-------------------------------------------------------------------------------
+Pointers can be converted to strings
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ actual address of p: 0x<hex digits>
+
+MessageTests.cpp:<line number>:
+warning:
+ toString(p): 0x<hex digits>
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ s1
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( a == b )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s3
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s4
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a < b )
+with expansion:
+ 1 < 2
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ d (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ e (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ f (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( b > a )
+with expansion:
+ 0 > 1
+
+-------------------------------------------------------------------------------
+looped tests
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[0] (1) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[1] (1) is even
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[2] (2) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[3] (3) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[4] (5) is even
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[5] (8) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[6] (13) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[7] (21) is even
+
+A string sent directly to stdout
+A string sent directly to stderr
+-------------------------------------------------------------------------------
+null strings
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( makeString( false ) != static_cast<char*>(nullptr) )
+with expansion:
+ "valid string" != {null string}
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( makeString( true ) == static_cast<char*>(nullptr) )
+with expansion:
+ {null string} == {null string}
+
+-------------------------------------------------------------------------------
+checkedIf
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECKED_IF( flag )
+with expansion:
+ true
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCheckedIf( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedIf, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_IF( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedIf( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+checkedElse
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECKED_ELSE( flag )
+with expansion:
+ true
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCheckedElse( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedElse, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_ELSE( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedElse( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ embedded xml
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ encoded chars
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+send a single char to INFO
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with message:
+ 3
+
+-------------------------------------------------------------------------------
+atomic if
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( x == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+String matchers
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( testStringForMatching(), Contains( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "string"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Contains( "abc" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "abc"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "this"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "substring"
+
+-------------------------------------------------------------------------------
+Contains string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "not there"
+
+-------------------------------------------------------------------------------
+StartsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "string"
+
+-------------------------------------------------------------------------------
+EndsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "this"
+
+-------------------------------------------------------------------------------
+Equals string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "something else"
+
+-------------------------------------------------------------------------------
+Equals string matcher, with NULL
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( "", Equals(nullptr) )
+with expansion:
+ "" equals: ""
+
+-------------------------------------------------------------------------------
+AllOf matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" and
+ contains: "abc" )
+
+-------------------------------------------------------------------------------
+AnyOf matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" or contains:
+ "not there" )
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "not there" or
+ contains: "string" )
+
+-------------------------------------------------------------------------------
+Equals
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "this string contains
+ 'abc' as a substring"
+
+-------------------------------------------------------------------------------
+Matchers can be (AllOf) composed with the && operator
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) )
+with expansion:
+ "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
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" or contains:
+ "different" or contains: "random" )
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
+with expansion:
+ "some completely different text that contains one common word" ( contains:
+ "string" or contains: "different" or contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and ||
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "substring" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and || - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), !Contains( "different" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "different"
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "substring"
+
+-------------------------------------------------------------------------------
+Factorials are computed
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(0) == 1 )
+with expansion:
+ 1 == 1
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(1) == 1 )
+with expansion:
+ 1 == 1
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(2) == 2 )
+with expansion:
+ 2 == 2
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(3) == 6 )
+with expansion:
+ 6 == 6
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(10) == 3628800 )
+with expansion:
+ 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Nice descriptive name
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+warning:
+ This one ran
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+ Outer
+ Inner
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+with message:
+ that's not flying - that's failing in style
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+explicitly with message:
+ to infinity and beyond
+
+-------------------------------------------------------------------------------
+not allowed
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+Tabs and newlines show in output
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( s1 == s2 )
+with expansion:
+ "if ($b == 10) {
+ $a= 20;
+ }"
+ ==
+ "if ($b == 10) {
+ $a = 20;
+ }
+ "
+
+-------------------------------------------------------------------------------
+toString on const wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on const wchar_t pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+XmlEncode
+ normal string
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "normal string" ) == "normal string" )
+with expansion:
+ "normal string" == "normal string"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ empty string
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "" ) == "" )
+with expansion:
+ "" == ""
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with ampersand
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith & jones" ) == "smith &amp; jones" )
+with expansion:
+ "smith &amp; jones" == "smith &amp; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with less-than
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith < jones" ) == "smith &lt; jones" )
+with expansion:
+ "smith &lt; jones" == "smith &lt; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with greater-than
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith > jones" ) == "smith > jones" )
+with expansion:
+ "smith > jones" == "smith > jones"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith ]]> jones" ) == "smith ]]&gt; jones" )
+with expansion:
+ "smith ]]&gt; jones"
+ ==
+ "smith ]]&gt; jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with quotes
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
+with expansion:
+ "don't "quote" me on that"
+ ==
+ "don't "quote" me on that"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" )
+with expansion:
+ "don't &quot;quote&quot; me on that"
+ ==
+ "don't &quot;quote&quot; me on that"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (1)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "[\x01]" ) == "[&#x1]" )
+with expansion:
+ "[&#x1]" == "[&#x1]"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (x7F)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "[\x7F]" ) == "[&#x7F]" )
+with expansion:
+ "[&#x7F]" == "[&#x7F]"
+
+-------------------------------------------------------------------------------
+long long
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( l == std::numeric_limits<long long>::max() )
+with expansion:
+ 9223372036854775807 (0x<hex digits>)
+ ==
+ 9223372036854775807 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ default - no arguments
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.shouldDebugBreak == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.abortAfter == -1 )
+with expansion:
+ -1 == -1
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.noThrow == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.reporterNames.empty() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ 1 test
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ Specify one test case exclusion using exclude:
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ test lists
+ Specify one test case exclusion using ~
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r/console
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "console" )
+with expansion:
+ "console" == "console"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r/xml
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "xml" )
+with expansion:
+ "xml" == "xml"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r xml and junit
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames.size() == 2 )
+with expansion:
+ 2 == 2
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "xml" )
+with expansion:
+ "xml" == "xml"
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[1] == "junit" )
+with expansion:
+ "junit" == "junit"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ --reporter/junit
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "junit" )
+with expansion:
+ "junit" == "junit"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ -b
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.shouldDebugBreak == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ --break
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.shouldDebugBreak )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -a aborts after first failure
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x 2 aborts after two failures
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.abortAfter == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x must be greater than zero
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) )
+with expansion:
+ "Value after -x or --abortAfter must be greater than zero
+ - while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x must be numeric
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) )
+with expansion:
+ "Unable to convert oops to destination type
+ - while parsing: (-x, --abortx <no. failures>)" contains: "-x"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ -e
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ --nothrow
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ -o filename
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.outputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ --out
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.outputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ combinations
+ Single character flags can be combined
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.shouldDebugBreak )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ without option
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Auto )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ auto
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Auto )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ yes
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Yes )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ no
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::No )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ error
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) )
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ No wrapping
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString )
+with expansion:
+ "one two three four"
+ ==
+ "one two three four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString )
+with expansion:
+ "one two three four"
+ ==
+ "one two three four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ Wrapped once
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour" )
+with expansion:
+ "one two three
+ four"
+ ==
+ "one two three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour" )
+with expansion:
+ "one two three
+ four"
+ ==
+ "one two three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour" )
+with expansion:
+ "one two three
+ four"
+ ==
+ "one two three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour" )
+with expansion:
+ "one two three
+ four"
+ ==
+ "one two three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four" )
+with expansion:
+ "one two
+ three four"
+ ==
+ "one two
+ three four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ Wrapped twice
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ Wrapped three times
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" )
+with expansion:
+ "one
+ two
+ three
+ four"
+ ==
+ "one
+ two
+ three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour" )
+with expansion:
+ "one
+ two
+ three
+ four"
+ ==
+ "one
+ two
+ three
+ four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ Short wrap
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef" )
+with expansion:
+ "abc-
+ def"
+ ==
+ "abc-
+ def"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg" )
+with expansion:
+ "abc-
+ defg"
+ ==
+ "abc-
+ defg"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh" )
+with expansion:
+ "abc-
+ def-
+ gh"
+ ==
+ "abc-
+ def-
+ gh"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour" )
+with expansion:
+ "one
+ two
+ thr-
+ ee
+ four"
+ ==
+ "one
+ two
+ thr-
+ ee
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur" )
+with expansion:
+ "one
+ two
+ th-
+ ree
+ fo-
+ ur"
+ ==
+ "one
+ two
+ th-
+ ree
+ fo-
+ ur"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ As container
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( text.size() == 4 )
+with expansion:
+ 4 == 4
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( text[0] == "one" )
+with expansion:
+ "one" == "one"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( text[1] == "two" )
+with expansion:
+ "two" == "two"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( text[2] == "three" )
+with expansion:
+ "three" == "three"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( text[3] == "four" )
+with expansion:
+ "four" == "four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ plain string
+ Indent first line differently
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( text.toString() == " one two\n three\n four" )
+with expansion:
+ " one two
+ three
+ four"
+ ==
+ " one two
+ three
+ four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ With newlines
+ No wrapping
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString )
+with expansion:
+ "one two
+ three four"
+ ==
+ "one two
+ three four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString )
+with expansion:
+ "one two
+ three four"
+ ==
+ "one two
+ three four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString )
+with expansion:
+ "one two
+ three four"
+ ==
+ "one two
+ three four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ With newlines
+ Trailing newline
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef\n" )
+with expansion:
+ "abcdef
+ "
+ ==
+ "abcdef
+ "
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" )
+with expansion:
+ "abcdef" == "abcdef"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef\n" )
+with expansion:
+ "abcdef
+ "
+ ==
+ "abcdef
+ "
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ With newlines
+ Wrapped once
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" )
+with expansion:
+ "one two
+ three
+ four"
+ ==
+ "one two
+ three
+ four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ With newlines
+ Wrapped twice
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" )
+with expansion:
+ "one
+ two
+ three
+ four"
+ ==
+ "one
+ two
+ three
+ four"
+
+-------------------------------------------------------------------------------
+Long strings can be wrapped
+ With tabs
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( testString, TextAttributes().setWidth( 15 ) ).toString() == "one two three\n four\n five\n six" )
+with expansion:
+ "one two three
+ four
+ five
+ six"
+ ==
+ "one two three
+ four
+ five
+ six"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace single char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "b", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "azcdefcg" )
+with expansion:
+ "azcdefcg" == "azcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace two chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "c", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "abzdefzg" )
+with expansion:
+ "abzdefzg" == "abzdefzg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace first char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "a", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "zbcdefcg" )
+with expansion:
+ "zbcdefcg" == "zbcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace last char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "g", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "abcdefcz" )
+with expansion:
+ "abcdefcz" == "abcdefcz"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace all chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, letters, "replaced" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "replaced" )
+with expansion:
+ "replaced" == "replaced"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace no chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_FALSE( replaceInPlace( letters, "x", "z" ) )
+with expansion:
+ !false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == letters )
+with expansion:
+ "abcdefcg" == "abcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ escape '
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( s, "'", "|'" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( s == "didn|'t" )
+with expansion:
+ "didn|'t" == "didn|'t"
+
+hello
+hello
+-------------------------------------------------------------------------------
+Text can be formatted using the Text class
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "hi there" ).toString() == "hi there" )
+with expansion:
+ "hi there" == "hi there"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" )
+with expansion:
+ "hi
+ there"
+ ==
+ "hi
+ there"
+
+-------------------------------------------------------------------------------
+Long text is truncted
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_THAT( t.toString(), EndsWith( "... message truncated due to excessive size" ) )
+with expansion:
+ "***************************************************************************-
+ ***-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+ ****************************************************************************-
+ **-
+ ****************************************************************************-
+ **-
+ ************************
+... message truncated due to excessive size
+
+-------------------------------------------------------------------------------
+ManuallyRegistered
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+with message:
+ was called
+
+-------------------------------------------------------------------------------
+Parsing a std::pair
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( (std::pair<int, int>( 1, 2 )) == aNicePair )
+with expansion:
+ std::pair( 1, 2 ) == std::pair( 1, 2 )
+
+-------------------------------------------------------------------------------
+Where there is more to the expression after the RHS
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+Where the LHS is not a simple value
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+A failing expression with a non streamable type is still captured
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( &o1 == &o2 )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( o1 == o2 )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+string literals of different sizes can be compared
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ REQUIRE( std::string( "first" ) == "second" )
+with expansion:
+ "first" == "second"
+
+-------------------------------------------------------------------------------
+An expression with side-effects should only be evaluated once
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i++ == 7 )
+with expansion:
+ 7 == 7
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i++ == 8 )
+with expansion:
+ 8 == 8
+
+-------------------------------------------------------------------------------
+Operators at different namespace levels not hijacked by Koenig lookup
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0x<hex digits> == o )
+with expansion:
+ 3221225472 (0x<hex digits>) == {?}
+
+-------------------------------------------------------------------------------
+Demonstrate that a non-const == is not used
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( t == 1u )
+with expansion:
+ {?} == 1
+
+-------------------------------------------------------------------------------
+Test enum bit values
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0x<hex digits> == bit30and31 )
+with expansion:
+ 3221225472 (0x<hex digits>) == 3221225472
+
+-------------------------------------------------------------------------------
+boolean member
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( obj.prop != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ compare to true
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( is_true<true>::value == true )
+with expansion:
+ true == true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( true == is_true<true>::value )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ compare to false
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( is_true<false>::value == false )
+with expansion:
+ false == false
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( false == is_true<false>::value )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ negation
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !is_true<false>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ double negation
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !!is_true<true>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ direct
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( is_true<true>::value )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( is_true<false>::value )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Objects that evaluated in boolean contexts can be checked
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ CHECK( True )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ CHECK( !False )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ CHECK_FALSE( False )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+Assertions then sections
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+ Another section
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Assertions then sections
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Assertions then sections
+ A section
+ Another other section
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+non streamable - with conv. op
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s == "7" )
+with expansion:
+ "7" == "7"
+
+-------------------------------------------------------------------------------
+Comparing function pointers
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a == &foo )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+-------------------------------------------------------------------------------
+Comparing member function pointers
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ CHECK( m == &S::f )
+with expansion:
+ 0x<hex digits>
+ ==
+ 0x<hex digits>
+
+-------------------------------------------------------------------------------
+pointer to class
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p == 0 )
+with expansion:
+ NULL == 0
+
+-------------------------------------------------------------------------------
+null_ptr
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ptr.get() == nullptr )
+with expansion:
+ NULL == nullptr
+
+-------------------------------------------------------------------------------
+X/level/0/a
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/0/b
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/a
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/b
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+toString( has_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "toString( has_toString )" )
+with expansion:
+ "toString( has_toString )"
+ ==
+ "toString( has_toString )"
+
+-------------------------------------------------------------------------------
+toString( has_maker )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "StringMaker<has_maker>" )
+with expansion:
+ "StringMaker<has_maker>"
+ ==
+ "StringMaker<has_maker>"
+
+-------------------------------------------------------------------------------
+toString( has_maker_and_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" )
+with expansion:
+ "toString( has_maker_and_toString )"
+ ==
+ "toString( has_maker_and_toString )"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ {?} }" )
+with expansion:
+ "{ {?} }" == "{ {?} }"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_maker )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker> }" )
+with expansion:
+ "{ StringMaker<has_maker> }"
+ ==
+ "{ StringMaker<has_maker> }"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_maker_and_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" )
+with expansion:
+ "{ StringMaker<has_maker_and_toString> }"
+ ==
+ "{ StringMaker<has_maker_and_toString> }"
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section and find next section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ Successfully close S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ fail S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ open a nested section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ close outer section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ close outer section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Start a new inner section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Start a new inner section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Fail an inner section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Fail an inner section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+std::pair<int,std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::pair<int,const std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::vector<std::pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" )
+with expansion:
+ "{ { "green", 55 } }"
+ ==
+ "{ { "green", 55 } }"
+
+-------------------------------------------------------------------------------
+pair<pair<int,const char *,pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
+with expansion:
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+ ==
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+
+-------------------------------------------------------------------------------
+vector<int> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vector<string> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ \"hello\" }" )
+with expansion:
+ "{ "hello" }" == "{ "hello" }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+vector<int,allocator> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vec<vec<string,alloc>> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(v) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" )
+with expansion:
+ "{ { "hello" }, { "world" } }"
+ ==
+ "{ { "hello" }, { "world" } }"
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Empty test spec should have no filters
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Test spec from empty string should have no filters
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches(tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Test spec from just a comma should have no filters
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Test spec from name should have one filter
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Test spec from quoted name should have one filter
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Test spec from name should have one filter
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Wildcard at the start
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( parseTestSpec( "*a" ).matches( tcA ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Wildcard at the end
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( parseTestSpec( "a*" ).matches( tcA ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Wildcard at both ends
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Redundant wildcard at the start
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Redundant wildcard at the end
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Redundant wildcard at both ends
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Wildcard at both ends, redundant at start
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Just wildcard
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Single tag
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Single tag, two matches
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Two tags
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Two tags, spare separated
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Wildcarded name and tag
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ Single tag exclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ One tag exclusion and one tag inclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ One tag exclusion and one wldcarded name inclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ One tag exclusion, using exclude:, and one wldcarded name inclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ name exclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ wildcarded name exclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ wildcarded name exclusion with tag inclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ wildcarded name exclusion, using exclude:, with tag inclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ two wildcarded names
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ empty tag
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ empty quoted name
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Parse test names and tags
+ quoted string followed by tag exclusion
+-------------------------------------------------------------------------------
+CmdLineTests.cpp:<line number>
+...............................................................................
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.hasFilters() == true )
+with expansion:
+ true == true
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcA ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcB ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcC ) == false )
+with expansion:
+ false == false
+
+CmdLineTests.cpp:<line number>:
+PASSED:
+ CHECK( spec.matches( tcD ) == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+tuple<>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ }" == Catch::toString(type{}) )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ }" == Catch::toString(value) )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+tuple<int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ 0 }" == Catch::toString(type{0}) )
+with expansion:
+ "{ 0 }" == "{ 0 }"
+
+-------------------------------------------------------------------------------
+tuple<float,int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "1.2f" == Catch::toString(float(1.2)) )
+with expansion:
+ "1.2f" == "1.2f"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) )
+with expansion:
+ "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+
+-------------------------------------------------------------------------------
+tuple<string,string>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+tuple<tuple<int>,tuple<>,float>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) )
+with expansion:
+ "{ { 42 }, { }, 1.2f }"
+ ==
+ "{ { 42 }, { }, 1.2f }"
+
+-------------------------------------------------------------------------------
+tuple<nullptr,int,const char *>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) )
+with expansion:
+ "{ nullptr, 42, "Catch me" }"
+ ==
+ "{ nullptr, 42, "Catch me" }"
+
+-------------------------------------------------------------------------------
+Tag alias can be registered against tag patterns
+ The same tag alias can only be registered once
+-------------------------------------------------------------------------------
+TagAliasTests.cpp:<line number>
+...............................................................................
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "[@zzz]" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "
+ [@zzz]"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "file" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains:
+ "file"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "2" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains:
+ "2"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "10" ) )
+with expansion:
+ "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 aliases must be of the form [@name]
+-------------------------------------------------------------------------------
+TagAliasTests.cpp:<line number>
+...............................................................................
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+-------------------------------------------------------------------------------
+Anonymous test case 1
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
+PASSED:
+with message:
+ anonymous test case
+
+-------------------------------------------------------------------------------
+Test case with one argument
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
+PASSED:
+with message:
+ no assertions
+
+-------------------------------------------------------------------------------
+Variadic macros
+ Section with one argument
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
+PASSED:
+with message:
+ no assertions
+
+-------------------------------------------------------------------------------
+Scenario: Do that thing with the thing
+ Given: This stuff exists
+ When: I do this
+ Then: it should do this
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( itDoesThis() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Scenario: Do that thing with the thing
+ Given: This stuff exists
+ When: I do this
+ Then: it should do this
+ And: do that
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( itDoesThat() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: it is made larger
+ Then: the size and capacity go up
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: it is made larger
+ Then: the size and capacity go up
+ And when: it is made smaller again
+ Then: the size goes down but the capacity stays the same
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: Vector resizing affects size and capacity
+ Given: an empty vector
+ When: we reserve more space
+ Then: The capacity is increased but the size remains the same
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: This is a really long scenario name to see how the list command deals
+ with wrapping
+ Given: A section name that is so long that it cannot fit in a single
+ console width
+ When: The test headers are printed as part of the normal running of the
+ scenario
+ Then: The, deliberately very long and overly verbose (you see what I did
+ there?) section names must wrap, along with an indent
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+with message:
+ boo!
+
+-------------------------------------------------------------------------------
+Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
+ methods
+ Given: No operations precede me
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( before == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
+ methods
+ Given: No operations precede me
+ When: We get the count
+ Then: Subsequently values are higher
+-------------------------------------------------------------------------------
+BDDTests.cpp:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( after > before )
+with expansion:
+ 1 > 0
+
+===============================================================================
+test cases: 167 | 123 passed | 43 failed | 1 failed as expected
+assertions: 921 | 823 passed | 85 failed | 13 failed as expected
+
diff --git a/unittest/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt b/unittest/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt
new file mode 100644
index 0000000..0793f1d
--- /dev/null
+++ b/unittest/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt
@@ -0,0 +1,491 @@
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CatchSelfTest is a <version> host application.
+Run with -? for options
+
+-------------------------------------------------------------------------------
+toString(enum)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2{0}" )
+with expansion:
+ "E2{0}" == "E2{0}"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2{1}" )
+with expansion:
+ "E2{1}" == "E2{1}"
+
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum class w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2/V0" )
+with expansion:
+ "E2/V0" == "E2/V0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2/V1" )
+with expansion:
+ "E2/V1" == "E2/V1"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e3) == "Unknown enum value 10" )
+with expansion:
+ "Unknown enum value 10"
+ ==
+ "Unknown enum value 10"
+
+-------------------------------------------------------------------------------
+Some simple comparisons between doubles
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == Approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.22 ) )
+with expansion:
+ 1.23 != Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.24 ) )
+with expansion:
+ 1.23 != Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.22 )
+with expansion:
+ Approx( 1.23 ) != 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.24 )
+with expansion:
+ Approx( 1.23 ) != 1.24
+
+-------------------------------------------------------------------------------
+Approximate comparisons with different epsilons
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.231 ) )
+with expansion:
+ 1.23 != Approx( 1.231 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
+with expansion:
+ 1.23 == Approx( 1.231 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with floats
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.23f == Approx( 1.23f ) )
+with expansion:
+ 1.23f == Approx( 1.2300000191 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0.0f == Approx( 0.0f ) )
+with expansion:
+ 0.0f == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with ints
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1 == Approx( 1 ) )
+with expansion:
+ 1 == Approx( 1.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( 0 ) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+-------------------------------------------------------------------------------
+Approximate comparisons with mixed numeric types
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.0f == Approx( 1 ) )
+with expansion:
+ 1.0f == Approx( 1.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( dZero) )
+with expansion:
+ 0 == Approx( 0.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) )
+with expansion:
+ 0 == Approx( 0.00001 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( 1.234f == Approx( dMedium ) )
+with expansion:
+ 1.234f == Approx( 1.234 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( dMedium == Approx( 1.234f ) )
+with expansion:
+ 1.234 == Approx( 1.2339999676 )
+
+-------------------------------------------------------------------------------
+Use a custom approx
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.22 ) )
+with expansion:
+ 1.23 == Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.24 ) )
+with expansion:
+ 1.23 == Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != approx( 1.25 ) )
+with expansion:
+ 1.23 != Approx( 1.25 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.22 )
+with expansion:
+ Approx( 1.23 ) == 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.24 )
+with expansion:
+ Approx( 1.23 ) == 1.24
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) != 1.25 )
+with expansion:
+ Approx( 1.23 ) != 1.25
+
+-------------------------------------------------------------------------------
+Approximate PI
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
+with expansion:
+ 3.1428571429 == Approx( 3.141 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
+with expansion:
+ 3.1428571429 != Approx( 3.141 )
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s == "hello" )
+with expansion:
+ "hello" == "hello"
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( s == "world" )
+with expansion:
+ "hello" == "world"
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+Equality checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven == 7 )
+with expansion:
+ 7 == 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
+with expansion:
+ 9.1f == Approx( 9.1000003815 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415926535 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello == "hello" )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( "hello" == data.str_hello )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello.size() == 5 )
+with expansion:
+ 5 == 5
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( x == Approx( 1.3 ) )
+with expansion:
+ 1.3 == Approx( 1.3 )
+
+-------------------------------------------------------------------------------
+Equality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 6 )
+with expansion:
+ 7 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 8 )
+with expansion:
+ 7 == 8
+
+-------------------------------------------------------------------------------
+Inequality checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven != 6 )
+with expansion:
+ 7 != 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven != 8 )
+with expansion:
+ 7 != 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
+with expansion:
+ 9.1f != Approx( 9.1099996567 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
+with expansion:
+ 9.1f != Approx( 9.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 1 ) )
+with expansion:
+ 9.1f != Approx( 1.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one != Approx( 0 ) )
+with expansion:
+ 9.1f != Approx( 0.0 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.double_pi != Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 != Approx( 3.1415 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "goodbye" )
+with expansion:
+ "hello" != "goodbye"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "hell" )
+with expansion:
+ "hello" != "hell"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello != "hello1" )
+with expansion:
+ "hello" != "hello1"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello.size() != 6 )
+with expansion:
+ 5 != 6
+
+-------------------------------------------------------------------------------
+Inequality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven != 7 )
+with expansion:
+ 7 != 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one != Approx( 9.1f ) )
+with expansion:
+ 9.1f != Approx( 9.1000003815 )
+
+===============================================================================
+test cases: 19 | 15 passed | 3 failed | 1 failed as expected
+assertions: 62 | 56 passed | 4 failed | 2 failed as expected
+
diff --git a/unittest/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt b/unittest/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt
new file mode 100644
index 0000000..110ee8c
--- /dev/null
+++ b/unittest/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt
@@ -0,0 +1,687 @@
+<testsuites>
+ <testsuite name="CatchSelfTest" errors="13" failures="72" tests="921" hostname="tbd" time="{duration}" timestamp="tbd">
+ <testcase classname="global" name="toString(enum)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum w/operator&lt;&lt;)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum class)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum class w/operator&lt;&lt;)" time="{duration}"/>
+ <testcase classname="global" name="Some simple comparisons between doubles" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with different epsilons" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with floats" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with ints" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with mixed numeric types" time="{duration}"/>
+ <testcase classname="global" name="Use a custom approx" time="{duration}"/>
+ <testcase classname="global" name="Approximate PI" time="{duration}"/>
+ <testcase classname="TestClass" name="A METHOD_AS_TEST_CASE based test run that succeeds" time="{duration}"/>
+ <testcase classname="TestClass" name="A METHOD_AS_TEST_CASE based test run that fails" time="{duration}">
+ <failure message="&quot;hello&quot; == &quot;world&quot;" type="REQUIRE">
+ClassTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/>
+ <testcase classname="Fixture" name="A TEST_CASE_METHOD based test run that fails" time="{duration}">
+ <failure message="1 == 2" type="REQUIRE">
+ClassTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Equality checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Equality checks that should fail" time="{duration}">
+ <failure message="7 == 6" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 == 8" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 == 0" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f == Approx( 9.1099996567 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f == Approx( 9.0 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f == Approx( 1.0 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f == Approx( 0.0 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="3.1415926535 == Approx( 3.1415 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; == &quot;goodbye&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; == &quot;hell&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; == &quot;hello1&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="5 == 6" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="1.3 == Approx( 1.301 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Inequality checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Inequality checks that should fail" time="{duration}">
+ <failure message="7 != 7" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f != Approx( 9.1000003815 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="3.1415926535 != Approx( 3.1415926535 )" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; != &quot;hello&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="5 != 5" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Ordering comparison checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Ordering comparison checks that should fail" time="{duration}">
+ <failure message="7 > 7" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 &lt; 7" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 > 8" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 &lt; 6" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 &lt; 0" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 &lt; -1" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 >= 8" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="7 &lt;= 6" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f &lt; 9" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f > 10" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="9.1f > 9.2" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; > &quot;hello&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; &lt; &quot;hello&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; > &quot;hellp&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; > &quot;z&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; &lt; &quot;hellm&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; &lt; &quot;a&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; >= &quot;z&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="&quot;hello&quot; &lt;= &quot;a&quot;" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/>
+ <testcase classname="global" name="comparisons between int variables" time="{duration}"/>
+ <testcase classname="global" name="comparisons between const int variables" time="{duration}"/>
+ <testcase classname="global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/>
+ <testcase classname="global" name="Comparisons between ints where one side is computed" time="{duration}"/>
+ <testcase classname="global" name="Pointers can be compared to null" time="{duration}"/>
+ <testcase classname="global" name="'Not' checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="'Not' checks that should fail" time="{duration}">
+ <failure message="false != false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="true != true" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!true" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!true" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!(1 == 1)" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="When checked exceptions are thrown they can be expected or unexpected" time="{duration}"/>
+ <testcase classname="global" name="Expected exceptions that don't throw or unexpected exceptions fail the test" time="{duration}">
+ <error message="thisThrows()" type="CHECK_THROWS_AS">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ <failure message="thisDoesntThrow()" type="CHECK_THROWS_AS">
+ExceptionTests.cpp:<line number>
+ </failure>
+ <error message="thisThrows()" type="CHECK_NOTHROW">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown directly they are always failures" time="{duration}">
+ <error type="TEST_CASE">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="An unchecked exception reports the line of the last assertion" time="{duration}">
+ <error message="{Unknown expression after the reported line}">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="When unchecked exceptions are thrown from sections they are always failures" name="section name" time="{duration}">
+ <error type="TEST_CASE">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown from functions they are always failures" time="{duration}">
+ <error message="thisThrows() == 0" type="CHECK">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail" time="{duration}">
+ <error message="thisThrows() == 0" type="REQUIRE">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown during a CHECK the test should abort and fail" time="{duration}">
+ <error message="thisThrows() == 0" type="CHECK">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Non-std exceptions can be translated" time="{duration}">
+ <error type="TEST_CASE">
+custom exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Custom std-exceptions can be custom translated" time="{duration}">
+ <error type="TEST_CASE">
+custom std exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Custom exceptions can be translated when testing for nothrow" time="{duration}">
+ <error message="throwCustom()" type="REQUIRE_NOTHROW">
+custom exception - not std
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Custom exceptions can be translated when testing for throwing as something else" time="{duration}">
+ <error message="throwCustom()" type="REQUIRE_THROWS_AS">
+custom exception - not std
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Unexpected exceptions can be translated" time="{duration}">
+ <error type="TEST_CASE">
+3.14
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="NotImplemented exception" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="exact match" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="different case" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="wildcarded" time="{duration}"/>
+ <testcase classname="global" name="Mismatching exception messages failing the test" time="{duration}">
+ <failure message="expected exception" type="REQUIRE_THROWS_WITH">
+ExceptionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Generators over two ranges" time="{duration}"/>
+ <testcase classname="global" name="Generator over a range of pairs" time="{duration}"/>
+ <testcase classname="global" name="INFO and WARN do not abort tests" time="{duration}"/>
+ <testcase classname="global" name="SUCCEED counts as a test pass" time="{duration}"/>
+ <testcase classname="global" name="INFO gets logged on failure" time="{duration}">
+ <failure message="2 == 1" type="REQUIRE">
+this message should be logged
+so should this
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="INFO gets logged on failure, even if captured before successful assertions" time="{duration}">
+ <failure message="2 == 1" type="CHECK">
+this message should be logged
+MessageTests.cpp:<line number>
+ </failure>
+ <failure message="2 == 0" type="CHECK">
+and this, but later
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="FAIL aborts the test" time="{duration}">
+ <failure type="FAIL">
+This is a failure
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="FAIL does not require an argument" time="{duration}">
+ <failure type="FAIL">
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="SUCCESS does not require an argument" time="{duration}"/>
+ <testcase classname="Output from all sections is reported" name="one" time="{duration}">
+ <failure type="FAIL">
+Message from section one
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="Output from all sections is reported" name="two" time="{duration}">
+ <failure type="FAIL">
+Message from section two
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="Standard output from all sections is reported" name="two" time="{duration}">
+ <system-out>
+Message from section one
+Message from section two
+ </system-out>
+ </testcase>
+ <testcase classname="global" name="SCOPED_INFO is reset for each loop" time="{duration}">
+ <failure message="10 &lt; 10" type="REQUIRE">
+current counter 10
+i := 10
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="The NO_FAIL macro reports a failure but does not fail the test" time="{duration}"/>
+ <testcase classname="global" name="just failure" time="{duration}">
+ <failure type="FAIL">
+Previous info should not be seen
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="sends information to INFO" time="{duration}">
+ <failure message="false" type="REQUIRE">
+hi
+i := 7
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Pointers can be converted to strings" time="{duration}"/>
+ <testcase classname="random SECTION tests" name="s1" time="{duration}"/>
+ <testcase classname="random SECTION tests" name="s2" time="{duration}"/>
+ <testcase classname="nested SECTION tests" name="s1" time="{duration}"/>
+ <testcase classname="nested SECTION tests" name="s1/s2" time="{duration}"/>
+ <testcase classname="more nested SECTION tests" name="s2/s1" time="{duration}">
+ <failure message="1 == 2" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="more nested SECTION tests" name="s1/s3" time="{duration}"/>
+ <testcase classname="more nested SECTION tests" name="s1/s4" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="c/d (leaf)" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="c/e (leaf)" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="f (leaf)" time="{duration}"/>
+ <testcase classname="looped SECTION tests" name="s1" time="{duration}">
+ <failure message="0 > 1" type="CHECK">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="looped tests" time="{duration}">
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[0] (1) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[1] (1) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[3] (3) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[4] (5) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[6] (13) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[7] (21) is even
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Sends stuff to stdout and stderr" time="{duration}">
+ <system-out>
+A string sent directly to stdout
+ </system-out>
+ <system-err>
+A string sent directly to stderr
+ </system-err>
+ </testcase>
+ <testcase classname="global" name="null strings" time="{duration}"/>
+ <testcase classname="global" name="checkedIf" time="{duration}"/>
+ <testcase classname="global" name="checkedIf, failing" time="{duration}">
+ <failure message="false" type="CHECKED_IF">
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="checkedElse" time="{duration}"/>
+ <testcase classname="global" name="checkedElse, failing" time="{duration}">
+ <failure message="false" type="CHECKED_ELSE">
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="xmlentitycheck" name="embedded xml" time="{duration}"/>
+ <testcase classname="xmlentitycheck" name="encoded chars" time="{duration}"/>
+ <testcase classname="global" name="send a single char to INFO" time="{duration}">
+ <failure message="false" type="REQUIRE">
+3
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="atomic if" time="{duration}"/>
+ <testcase classname="global" name="String matchers" time="{duration}"/>
+ <testcase classname="global" name="Contains string matcher" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; contains: &quot;not there&quot;" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="StartsWith string matcher" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; starts with: &quot;string&quot;" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="EndsWith string matcher" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; ends with: &quot;this&quot;" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Equals string matcher" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; equals: &quot;something else&quot;" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Equals string matcher, with NULL" time="{duration}"/>
+ <testcase classname="global" name="AllOf matcher" time="{duration}"/>
+ <testcase classname="global" name="AnyOf matcher" time="{duration}"/>
+ <testcase classname="global" name="Equals" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be (AllOf) composed with the &amp;&amp; operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be (AnyOf) composed with the || operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be composed with both &amp;&amp; and ||" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be composed with both &amp;&amp; and || - failing" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; ( ( contains: &quot;string&quot; or contains: &quot;different&quot; ) and contains: &quot;random&quot; )" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Matchers can be negated (Not) with the ! operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be negated (Not) with the ! operator - failing" time="{duration}">
+ <failure message="&quot;this string contains 'abc' as a substring&quot; not contains: &quot;substring&quot;" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Factorials are computed" time="{duration}"/>
+ <testcase classname="global" name="Nice descriptive name" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="root" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing bigger changes size and capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity/We can use the 'swap trick' to reset the capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="reserving bigger changes capacity but not size" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="reserving smaller does not change size or capacity" time="{duration}"/>
+ <testcase classname="A couple of nested sections followed by a failure" name="root" time="{duration}">
+ <failure type="FAIL">
+to infinity and beyond
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="A couple of nested sections followed by a failure" name="Outer/Inner" time="{duration}"/>
+ <testcase classname="global" name="not allowed" time="{duration}"/>
+ <testcase classname="global" name="Tabs and newlines show in output" time="{duration}">
+ <failure message="&quot;if ($b == 10) {
+ $a = 20;
+}&quot;
+==
+&quot;if ($b == 10) {
+ $a = 20;
+}
+&quot;" type="CHECK">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="toString on const wchar_t const pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on const wchar_t pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on wchar_t returns the string contents" time="{duration}"/>
+ <testcase classname="XmlEncode" name="normal string" time="{duration}"/>
+ <testcase classname="XmlEncode" name="empty string" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with ampersand" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with less-than" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with greater-than" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with quotes" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with control char (1)" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with control char (x7F)" time="{duration}"/>
+ <testcase classname="global" name="long long" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="default - no arguments" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/1 test" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using exclude:" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using ~" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r/console" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r/xml" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r xml and junit" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/--reporter/junit" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="debugger/-b" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="debugger/--break" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-a aborts after first failure" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x 2 aborts after two failures" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x must be greater than zero" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x must be numeric" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="nothrow/-e" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="nothrow/--nothrow" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="output filename/-o filename" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="output filename/--out" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="combinations/Single character flags can be combined" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/without option" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/auto" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/yes" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/no" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/error" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/No wrapping" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped once" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped twice" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped three times" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Short wrap" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/As container" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Indent first line differently" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/No wrapping" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Trailing newline" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped once" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped twice" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With tabs" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace single char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace two chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace first char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace last char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace all chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace no chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="escape '" time="{duration}"/>
+ <testcase classname="global" name="Strings can be rendered with colour" time="{duration}">
+ <system-out>
+hello
+hello
+ </system-out>
+ </testcase>
+ <testcase classname="global" name="Text can be formatted using the Text class" time="{duration}"/>
+ <testcase classname="global" name="Long text is truncted" time="{duration}"/>
+ <testcase classname="global" name="ManuallyRegistered" time="{duration}"/>
+ <testcase classname="global" name="Parsing a std::pair" time="{duration}"/>
+ <testcase classname="global" name="Where there is more to the expression after the RHS" time="{duration}"/>
+ <testcase classname="global" name="Where the LHS is not a simple value" time="{duration}"/>
+ <testcase classname="global" name="A failing expression with a non streamable type is still captured" time="{duration}">
+ <failure message="0x<hex digits> == 0x<hex digits>" type="CHECK">
+TrickyTests.cpp:<line number>
+ </failure>
+ <failure message="{?} == {?}" type="CHECK">
+TrickyTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="string literals of different sizes can be compared" time="{duration}">
+ <failure message="&quot;first&quot; == &quot;second&quot;" type="REQUIRE">
+TrickyTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="An expression with side-effects should only be evaluated once" time="{duration}"/>
+ <testcase classname="global" name="Operators at different namespace levels not hijacked by Koenig lookup" time="{duration}"/>
+ <testcase classname="global" name="Demonstrate that a non-const == is not used" time="{duration}"/>
+ <testcase classname="global" name="Test enum bit values" time="{duration}"/>
+ <testcase classname="global" name="boolean member" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="compare to true" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="compare to false" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="negation" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="double negation" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="direct" time="{duration}"/>
+ <testcase classname="global" name="Objects that evaluated in boolean contexts can be checked" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="root" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section/Another section" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section/Another other section" time="{duration}"/>
+ <testcase classname="global" name="non streamable - with conv. op" time="{duration}"/>
+ <testcase classname="global" name="Comparing function pointers" time="{duration}"/>
+ <testcase classname="global" name="Comparing member function pointers" time="{duration}"/>
+ <testcase classname="global" name="pointer to class" time="{duration}"/>
+ <testcase classname="global" name="null_ptr" time="{duration}"/>
+ <testcase classname="global" name="X/level/0/a" time="{duration}"/>
+ <testcase classname="global" name="X/level/0/b" time="{duration}"/>
+ <testcase classname="global" name="X/level/1/a" time="{duration}"/>
+ <testcase classname="global" name="X/level/1/b" time="{duration}"/>
+ <testcase classname="global" name="toString( has_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( has_maker )" time="{duration}"/>
+ <testcase classname="global" name="toString( has_maker_and_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors&lt;has_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors&lt;has_maker )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors&lt;has_maker_and_toString )" time="{duration}"/>
+ <testcase classname="Tracker" name="root" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section/re-enter after failed section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section/re-enter after failed section and find next section" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/Successfully close S2" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/fail S2" time="{duration}"/>
+ <testcase classname="Tracker" name="open a nested section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/close outer section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/close outer section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Start a new inner section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Start a new inner section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Fail an inner section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Fail an inner section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="global" name="std::pair&lt;int,std::string> -> toString" time="{duration}"/>
+ <testcase classname="global" name="std::pair&lt;int,const std::string> -> toString" time="{duration}"/>
+ <testcase classname="global" name="std::vector&lt;std::pair&lt;std::string,int> > -> toString" time="{duration}"/>
+ <testcase classname="global" name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector&lt;int> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector&lt;string> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector&lt;int,allocator> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vec&lt;vec&lt;string,alloc>> -> toString" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Empty test spec should have no filters" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Test spec from empty string should have no filters" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Test spec from just a comma should have no filters" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Test spec from name should have one filter" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Test spec from quoted name should have one filter" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Test spec from name should have one filter" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Wildcard at the start" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Wildcard at the end" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Wildcard at both ends" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Redundant wildcard at the start" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Redundant wildcard at the end" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Redundant wildcard at both ends" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Wildcard at both ends, redundant at start" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Just wildcard" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Single tag" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Single tag, two matches" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Two tags" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Two tags, spare separated" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Wildcarded name and tag" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="Single tag exclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="One tag exclusion and one tag inclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="One tag exclusion and one wldcarded name inclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="One tag exclusion, using exclude:, and one wldcarded name inclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="name exclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="wildcarded name exclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="wildcarded name exclusion with tag inclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="wildcarded name exclusion, using exclude:, with tag inclusion" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="two wildcarded names" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="empty tag" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="empty quoted name" time="{duration}"/>
+ <testcase classname="Parse test names and tags" name="quoted string followed by tag exclusion" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;>" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;int>" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;float,int>" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;string,string>" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>" time="{duration}"/>
+ <testcase classname="global" name="tuple&lt;nullptr,int,const char *>" time="{duration}"/>
+ <testcase classname="Tag alias can be registered against tag patterns" name="The same tag alias can only be registered once" time="{duration}"/>
+ <testcase classname="Tag alias can be registered against tag patterns" name="Tag aliases must be of the form [@name]" time="{duration}"/>
+ <testcase classname="global" name="Anonymous test case 1" time="{duration}"/>
+ <testcase classname="global" name="Test case with one argument" time="{duration}"/>
+ <testcase classname="Variadic macros" name="Section with one argument" time="{duration}"/>
+ <testcase classname="Scenario: Do that thing with the thing" name="Given: This stuff exists/When: I do this/Then: it should do this" time="{duration}"/>
+ <testcase classname="Scenario: Do that thing with the thing" name="Given: This stuff exists/When: I do this/Then: it should do this/And: do that" time="{duration}"/>
+ <testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector" time="{duration}"/>
+ <testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: it is made larger/Then: the size and capacity go up" time="{duration}"/>
+ <testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: it is made larger/Then: the size and capacity go up/And when: it is made smaller again/Then: the size goes down but the capacity stays the same" time="{duration}"/>
+ <testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: we reserve more space/Then: The capacity is increased but the size remains the same" time="{duration}"/>
+ <testcase classname="Scenario: This is a really long scenario name to see how the list command deals with wrapping" name="Given: A section name that is so long that it cannot fit in a single console width/When: The test headers are printed as part of the normal running of the scenario/Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent" time="{duration}"/>
+ <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me" time="{duration}"/>
+ <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me/When: We get the count/Then: Subsequently values are higher" time="{duration}"/>
+ <system-out>
+Message from section one
+Message from section two
+A string sent directly to stdout
+hello
+hello
+ </system-out>
+ <system-err>
+A string sent directly to stderr
+ </system-err>
+ </testsuite>
+</testsuites>
diff --git a/unittest/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt b/unittest/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt
new file mode 100644
index 0000000..c0af02f
--- /dev/null
+++ b/unittest/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt
@@ -0,0 +1,9569 @@
+<Catch name="CatchSelfTest">
+ <Group name="CatchSelfTest">
+ <TestCase name="toString(enum)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "0"
+ </Original>
+ <Expanded>
+ "0" == "0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "1"
+ </Original>
+ <Expanded>
+ "1" == "1"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum w/operator&lt;&lt;)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "E2{0}"
+ </Original>
+ <Expanded>
+ "E2{0}" == "E2{0}"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "E2{1}"
+ </Original>
+ <Expanded>
+ "E2{1}" == "E2{1}"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum class)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "0"
+ </Original>
+ <Expanded>
+ "0" == "0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "1"
+ </Original>
+ <Expanded>
+ "1" == "1"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum class w/operator&lt;&lt;)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "E2/V0"
+ </Original>
+ <Expanded>
+ "E2/V0" == "E2/V0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "E2/V1"
+ </Original>
+ <Expanded>
+ "E2/V1" == "E2/V1"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e3) == "Unknown enum value 10"
+ </Original>
+ <Expanded>
+ "Unknown enum value 10"
+==
+"Unknown enum value 10"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Some simple comparisons between doubles">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == Approx( 1.23 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.23 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != Approx( 1.22 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.22 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != Approx( 1.24 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.24 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) == 1.23
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.23
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) != 1.22
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.22
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) != 1.24
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.24
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate comparisons with different epsilons">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != Approx( 1.231 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.231 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == Approx( 1.231 ).epsilon( 0.1 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.231 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate comparisons with floats">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 1.23f == Approx( 1.23f )
+ </Original>
+ <Expanded>
+ 1.23f == Approx( 1.2300000191 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 0.0f == Approx( 0.0f )
+ </Original>
+ <Expanded>
+ 0.0f == Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate comparisons with ints">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 1 == Approx( 1 )
+ </Original>
+ <Expanded>
+ 1 == Approx( 1.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 0 == Approx( 0 )
+ </Original>
+ <Expanded>
+ 0 == Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate comparisons with mixed numeric types">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 1.0f == Approx( 1 )
+ </Original>
+ <Expanded>
+ 1.0f == Approx( 1.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 0 == Approx( dZero)
+ </Original>
+ <Expanded>
+ 0 == Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 0 == Approx( dSmall ).epsilon( 0.001 )
+ </Original>
+ <Expanded>
+ 0 == Approx( 0.00001 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ 1.234f == Approx( dMedium )
+ </Original>
+ <Expanded>
+ 1.234f == Approx( 1.234 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ dMedium == Approx( 1.234f )
+ </Original>
+ <Expanded>
+ 1.234 == Approx( 1.2339999676 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Use a custom approx">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.23 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.23 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.22 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.22 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.24 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.24 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != approx( 1.25 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.25 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.23
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.23
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.22
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.22
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.24
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.24
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) != 1.25
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.25
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate PI">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 )
+ </Original>
+ <Expanded>
+ 3.1428571429 == Approx( 3.141 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 )
+ </Original>
+ <Expanded>
+ 3.1428571429 != Approx( 3.141 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A METHOD_AS_TEST_CASE based test run that succeeds">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <Original>
+ s == "hello"
+ </Original>
+ <Expanded>
+ "hello" == "hello"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A METHOD_AS_TEST_CASE based test run that fails">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <Original>
+ s == "world"
+ </Original>
+ <Expanded>
+ "hello" == "world"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="A TEST_CASE_METHOD based test run that succeeds">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <Original>
+ m_a == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A TEST_CASE_METHOD based test run that fails">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <Original>
+ m_a == 2
+ </Original>
+ <Expanded>
+ 1 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Equality checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 7
+ </Original>
+ <Expanded>
+ 7 == 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.1f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.1000003815 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi == Approx( 3.1415926535 )
+ </Original>
+ <Expanded>
+ 3.1415926535 == Approx( 3.1415926535 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hello"
+ </Original>
+ <Expanded>
+ "hello" == "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ "hello" == data.str_hello
+ </Original>
+ <Expanded>
+ "hello" == "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ x == Approx( 1.3 )
+ </Original>
+ <Expanded>
+ 1.3 == Approx( 1.3 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Equality checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 6
+ </Original>
+ <Expanded>
+ 7 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 8
+ </Original>
+ <Expanded>
+ 7 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 0
+ </Original>
+ <Expanded>
+ 7 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.11f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.1099996567 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.0f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 1 )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 1.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 0 )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi == Approx( 3.1415 )
+ </Original>
+ <Expanded>
+ 3.1415926535 == Approx( 3.1415 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "goodbye"
+ </Original>
+ <Expanded>
+ "hello" == "goodbye"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hell"
+ </Original>
+ <Expanded>
+ "hello" == "hell"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hello1"
+ </Original>
+ <Expanded>
+ "hello" == "hello1"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() == 6
+ </Original>
+ <Expanded>
+ 5 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ x == Approx( 1.301 )
+ </Original>
+ <Expanded>
+ 1.3 == Approx( 1.301 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Inequality checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven != 6
+ </Original>
+ <Expanded>
+ 7 != 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven != 8
+ </Original>
+ <Expanded>
+ 7 != 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one != Approx( 9.11f )
+ </Original>
+ <Expanded>
+ 9.1f != Approx( 9.1099996567 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one != Approx( 9.0f )
+ </Original>
+ <Expanded>
+ 9.1f != Approx( 9.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one != Approx( 1 )
+ </Original>
+ <Expanded>
+ 9.1f != Approx( 1.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one != Approx( 0 )
+ </Original>
+ <Expanded>
+ 9.1f != Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi != Approx( 3.1415 )
+ </Original>
+ <Expanded>
+ 3.1415926535 != Approx( 3.1415 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello != "goodbye"
+ </Original>
+ <Expanded>
+ "hello" != "goodbye"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello != "hell"
+ </Original>
+ <Expanded>
+ "hello" != "hell"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello != "hello1"
+ </Original>
+ <Expanded>
+ "hello" != "hello1"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() != 6
+ </Original>
+ <Expanded>
+ 5 != 6
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Inequality checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven != 7
+ </Original>
+ <Expanded>
+ 7 != 7
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one != Approx( 9.1f )
+ </Original>
+ <Expanded>
+ 9.1f != Approx( 9.1000003815 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi != Approx( 3.1415926535 )
+ </Original>
+ <Expanded>
+ 3.1415926535 != Approx( 3.1415926535 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello != "hello"
+ </Original>
+ <Expanded>
+ "hello" != "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() != 5
+ </Original>
+ <Expanded>
+ 5 != 5
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Ordering comparison checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt; 8
+ </Original>
+ <Expanded>
+ 7 &lt; 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 6
+ </Original>
+ <Expanded>
+ 7 > 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 0
+ </Original>
+ <Expanded>
+ 7 > 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > -1
+ </Original>
+ <Expanded>
+ 7 > -1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 7
+ </Original>
+ <Expanded>
+ 7 >= 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 6
+ </Original>
+ <Expanded>
+ 7 >= 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt;= 7
+ </Original>
+ <Expanded>
+ 7 &lt;= 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt;= 8
+ </Original>
+ <Expanded>
+ 7 &lt;= 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 9
+ </Original>
+ <Expanded>
+ 9.1f > 9
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one &lt; 10
+ </Original>
+ <Expanded>
+ 9.1f &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one &lt; 9.2
+ </Original>
+ <Expanded>
+ 9.1f &lt; 9.2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt;= "hello"
+ </Original>
+ <Expanded>
+ "hello" &lt;= "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello >= "hello"
+ </Original>
+ <Expanded>
+ "hello" >= "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt; "hellp"
+ </Original>
+ <Expanded>
+ "hello" &lt; "hellp"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt; "zebra"
+ </Original>
+ <Expanded>
+ "hello" &lt; "zebra"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hellm"
+ </Original>
+ <Expanded>
+ "hello" > "hellm"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "a"
+ </Original>
+ <Expanded>
+ "hello" > "a"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Ordering comparison checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 7
+ </Original>
+ <Expanded>
+ 7 > 7
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt; 7
+ </Original>
+ <Expanded>
+ 7 &lt; 7
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 8
+ </Original>
+ <Expanded>
+ 7 > 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt; 6
+ </Original>
+ <Expanded>
+ 7 &lt; 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt; 0
+ </Original>
+ <Expanded>
+ 7 &lt; 0
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt; -1
+ </Original>
+ <Expanded>
+ 7 &lt; -1
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 8
+ </Original>
+ <Expanded>
+ 7 >= 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven &lt;= 6
+ </Original>
+ <Expanded>
+ 7 &lt;= 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one &lt; 9
+ </Original>
+ <Expanded>
+ 9.1f &lt; 9
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 10
+ </Original>
+ <Expanded>
+ 9.1f > 10
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 9.2
+ </Original>
+ <Expanded>
+ 9.1f > 9.2
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hello"
+ </Original>
+ <Expanded>
+ "hello" > "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt; "hello"
+ </Original>
+ <Expanded>
+ "hello" &lt; "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hellp"
+ </Original>
+ <Expanded>
+ "hello" > "hellp"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "z"
+ </Original>
+ <Expanded>
+ "hello" > "z"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt; "hellm"
+ </Original>
+ <Expanded>
+ "hello" &lt; "hellm"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt; "a"
+ </Original>
+ <Expanded>
+ "hello" &lt; "a"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello >= "z"
+ </Original>
+ <Expanded>
+ "hello" >= "z"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello &lt;= "a"
+ </Original>
+ <Expanded>
+ "hello" &lt;= "a"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Comparisons with int literals don't warn when mixing signed/ unsigned">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ i == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ui == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ l == 3
+ </Original>
+ <Expanded>
+ 3 == 3
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ul == 4
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ c == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ uc == 6
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 1 == i
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 2 == ui
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 3 == l
+ </Original>
+ <Expanded>
+ 3 == 3
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 4 == ul
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 5 == c
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 6 == uc
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ (std::numeric_limits&lt;unsigned long>::max)() > ul
+ </Original>
+ <Expanded>
+ 18446744073709551615 (0x<hex digits>)
+>
+4
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="comparisons between int variables">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_char_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_short_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_int_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_long_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="comparisons between const int variables">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_char_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_short_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_int_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_long_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ( -1 > 2u )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ -1 > 2u
+ </Original>
+ <Expanded>
+ -1 > 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ( 2u &lt; -1 )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 2u &lt; -1
+ </Original>
+ <Expanded>
+ 2 &lt; -1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ( minInt > 2u )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ minInt > 2u
+ </Original>
+ <Expanded>
+ -2147483648 > 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Comparisons between ints where one side is computed">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 54 == 6*9
+ </Original>
+ <Expanded>
+ 54 == 54
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Pointers can be compared to null">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ p == nullptr
+ </Original>
+ <Expanded>
+ NULL == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ p == pNULL
+ </Original>
+ <Expanded>
+ NULL == NULL
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ p != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ cp != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ cpc != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ returnsNull() == nullptr
+ </Original>
+ <Expanded>
+ {null string} == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ returnsConstNull() == nullptr
+ </Original>
+ <Expanded>
+ {null string} == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ nullptr != p
+ </Original>
+ <Expanded>
+ nullptr != 0x<hex digits>
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="'Not' checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ false == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ true == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !false
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !false
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !falseValue
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !falseValue
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !(1 == 2)
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !1 == 2
+ </Original>
+ <Expanded>
+ !(1 == 2)
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="'Not' checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ false != false
+ </Original>
+ <Expanded>
+ false != false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ true != true
+ </Original>
+ <Expanded>
+ true != true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !true
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !true
+ </Original>
+ <Expanded>
+ !true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !trueValue
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !trueValue
+ </Original>
+ <Expanded>
+ !true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !(1 == 1)
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !1 == 1
+ </Original>
+ <Expanded>
+ !(1 == 1)
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When checked exceptions are thrown they can be expected or unexpected">
+ <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisDoesntThrow()
+ </Original>
+ <Expanded>
+ thisDoesntThrow()
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Expected exceptions that don't throw or unexpected exceptions fail the test">
+ <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisDoesntThrow()
+ </Original>
+ <Expanded>
+ thisDoesntThrow()
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown directly they are always failures">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="An unchecked exception reports the line of the last assertion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ 1 == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="false" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ {Unknown expression after the reported line}
+ </Original>
+ <Expanded>
+ {Unknown expression after the reported line}
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown from sections they are always failures">
+ <Section name="section name">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown from functions they are always failures">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown during a CHECK the test should abort and fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown, but caught, they do not affect the test">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Non-std exceptions can be translated">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ custom exception
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Custom std-exceptions can be custom translated">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ custom std exception
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Custom exceptions can be translated when testing for nothrow">
+ <Expression success="false" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ throwCustom()
+ </Original>
+ <Expanded>
+ throwCustom()
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ custom exception - not std
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Custom exceptions can be translated when testing for throwing as something else">
+ <Expression success="false" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ throwCustom()
+ </Original>
+ <Expanded>
+ throwCustom()
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ custom exception - not std
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Unexpected exceptions can be translated">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ 3.14
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="NotImplemented exception">
+ <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisFunctionNotImplemented( 7 )
+ </Original>
+ <Expanded>
+ thisFunctionNotImplemented( 7 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Exception messages can be tested for">
+ <Section name="exact match">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), "expected exception"
+ </Original>
+ <Expanded>
+ thisThrows(), "expected exception"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="different case">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No )
+ </Original>
+ <Expanded>
+ thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="wildcarded">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), StartsWith( "expected" )
+ </Original>
+ <Expanded>
+ thisThrows(), StartsWith( "expected" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), EndsWith( "exception" )
+ </Original>
+ <Expanded>
+ thisThrows(), EndsWith( "exception" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), Contains( "except" )
+ </Original>
+ <Expanded>
+ thisThrows(), Contains( "except" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), Contains( "exCept", Catch::CaseSensitive::No )
+ </Original>
+ <Expanded>
+ thisThrows(), Contains( "exCept", Catch::CaseSensitive::No )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Mismatching exception messages failing the test">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), "expected exception"
+ </Original>
+ <Expanded>
+ thisThrows(), "expected exception"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows(), "should fail"
+ </Original>
+ <Expanded>
+ expected exception
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Generators over two ranges">
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 200 == 200
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 202 == 202
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 204 == 204
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 206 == 206
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 208 == 208
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 210 == 210
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 212 == 212
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 30 == 30
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 40 == 40
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 42 == 42
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( i, 2 ) == i*2
+ </Original>
+ <Expanded>
+ 72 == 72
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ multiply( j, 2 ) == j*2
+ </Original>
+ <Expanded>
+ 214 == 214
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Generator over a range of pairs">
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ i->first == i->second-1
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ i->first == i->second-1
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="INFO and WARN do not abort tests">
+ <Info>
+ this is a message
+ </Info>
+ <Warning>
+ this is a warning
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="SUCCEED counts as a test pass">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="INFO gets logged on failure">
+ <Info>
+ this message should be logged
+ </Info>
+ <Info>
+ so should this
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ a == 1
+ </Original>
+ <Expanded>
+ 2 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="INFO gets logged on failure, even if captured before successful assertions">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ a == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Info>
+ this message should be logged
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ a == 1
+ </Original>
+ <Expanded>
+ 2 == 1
+ </Expanded>
+ </Expression>
+ <Info>
+ and this, but later
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ a == 0
+ </Original>
+ <Expanded>
+ 2 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ a == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="FAIL aborts the test">
+ <Failure>
+ This is a failure
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="FAIL does not require an argument">
+ <Failure/>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="SUCCESS does not require an argument">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Output from all sections is reported">
+ <Section name="one">
+ <Failure>
+ Message from section one
+ </Failure>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <Section name="two">
+ <Failure>
+ Message from section two
+ </Failure>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Standard output from all sections is reported">
+ <Section name="one">
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <Section name="two">
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="SCOPED_INFO is reset for each loop">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 0 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 1 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 2 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 3 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 4 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 5 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 6 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 7 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 8 &lt; 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 9 &lt; 10
+ </Expanded>
+ </Expression>
+ <Info>
+ current counter 10
+ </Info>
+ <Info>
+ i := 10
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i &lt; 10
+ </Original>
+ <Expanded>
+ 10 &lt; 10
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="The NO_FAIL macro reports a failure but does not fail the test">
+ <Expression success="false" type="CHECK_NOFAIL" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ 1 == 2
+ </Original>
+ <Expanded>
+ 1 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="just info">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="just failure">
+ <Failure>
+ Previous info should not be seen
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="sends information to INFO">
+ <Info>
+ hi
+ </Info>
+ <Info>
+ i := 7
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ false
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Pointers can be converted to strings">
+ <Warning>
+ actual address of p: 0x<hex digits>
+ </Warning>
+ <Warning>
+ toString(p): 0x<hex digits>
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="random SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b != a
+ </Original>
+ <Expanded>
+ 2 != 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="s2" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="nested SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b != a
+ </Original>
+ <Expanded>
+ 2 != 1
+ </Expanded>
+ </Expression>
+ <Section name="s2" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="more nested SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Section name="s2" description="equal">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a == b
+ </Original>
+ <Expanded>
+ 1 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <Section name="s1" description="doesn't equal">
+ <Section name="s3" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="s1" description="doesn't equal">
+ <Section name="s4" description="less than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a &lt; b
+ </Original>
+ <Expanded>
+ 1 &lt; 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="even more nested SECTION tests">
+ <Section name="c">
+ <Section name="d (leaf)">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="c">
+ <Section name="e (leaf)">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="f (leaf)">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="looped SECTION tests">
+ <Section name="s1" description="b is currently: 0">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b > a
+ </Original>
+ <Expanded>
+ 0 > 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="looped tests">
+ <Info>
+ Testing if fib[0] (1) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[1] (1) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[3] (3) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[4] (5) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[6] (13) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[7] (21) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Sends stuff to stdout and stderr">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="null strings">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ makeString( false ) != static_cast&lt;char*>(nullptr)
+ </Original>
+ <Expanded>
+ "valid string" != {null string}
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ makeString( true ) == static_cast&lt;char*>(nullptr)
+ </Original>
+ <Expanded>
+ {null string} == {null string}
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedIf">
+ <Expression success="true" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedIf( true )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedIf, failing">
+ <Expression success="false" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedIf( false )
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="checkedElse">
+ <Expression success="true" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedElse( true )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedElse, failing">
+ <Expression success="false" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedElse( false )
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="xmlentitycheck">
+ <Section name="embedded xml" description="&lt;test>it should be possible to embed xml characters, such as &lt;, &quot; or &amp;, or even whole &lt;xml>documents&lt;/xml> within an attribute&lt;/test>">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="encoded chars" description="these should all be encoded: &amp;&amp;&amp;&quot;&quot;&quot;&lt;&lt;&lt;&amp;&quot;&lt;&lt;&amp;&quot;">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="send a single char to INFO">
+ <Info>
+ 3
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ false
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="atomic if">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ x == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="String matchers">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "string" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" contains: "string"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "abc" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" contains: "abc"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), StartsWith( "this" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" starts with: "this"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), EndsWith( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ends with: "substring"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Contains string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "not there" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" contains: "not there"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="StartsWith string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), StartsWith( "string" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" starts with: "string"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="EndsWith string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), EndsWith( "this" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ends with: "this"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Equals string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Equals( "something else" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" equals: "something else"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Equals string matcher, with NULL">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ "", Equals(nullptr)
+ </Original>
+ <Expanded>
+ "" equals: ""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="AllOf matcher">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="AnyOf matcher">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Equals">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Equals( "this string contains 'abc' as a substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be (AllOf) composed with the &amp;&amp; operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "string" ) &amp;&amp; Contains( "abc" ) &amp;&amp; Contains( "substring" ) &amp;&amp; Contains( "contains" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be (AnyOf) composed with the || operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
+ </Original>
+ <Expanded>
+ "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be composed with both &amp;&amp; and ||">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) &amp;&amp; Contains( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be composed with both &amp;&amp; and || - failing">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) &amp;&amp; Contains( "random" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Matchers can be negated (Not) with the ! operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), !Contains( "different" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" not contains: "different"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be negated (Not) with the ! operator - failing">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), !Contains( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" not contains: "substring"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Factorials are computed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(0) == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(1) == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(2) == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(3) == 6
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(10) == 3628800
+ </Original>
+ <Expanded>
+ 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="An empty test with no assertions">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Nice descriptive name">
+ <Warning>
+ This one ran
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="first tag">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="second tag">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vectors can be sized and resized">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="resizing bigger changes size and capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 10
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="resizing smaller changes size but not capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="We can use the 'swap trick' to reset the capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="reserving bigger changes capacity but not size">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="reserving smaller does not change size or capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A couple of nested sections followed by a failure">
+ <Section name="Outer">
+ <Section name="Inner">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Failure>
+ to infinity and beyond
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="not allowed">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Tabs and newlines show in output">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ s1 == s2
+ </Original>
+ <Expanded>
+ "if ($b == 10) {
+ $a = 20;
+}"
+==
+"if ($b == 10) {
+ $a = 20;
+}
+"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="toString on const wchar_t const pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on const wchar_t pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on wchar_t const pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on wchar_t returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="XmlEncode">
+ <Section name="normal string">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "normal string" ) == "normal string"
+ </Original>
+ <Expanded>
+ "normal string" == "normal string"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="empty string">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "" ) == ""
+ </Original>
+ <Expanded>
+ "" == ""
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with ampersand">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith &amp; jones" ) == "smith &amp;amp; jones"
+ </Original>
+ <Expanded>
+ "smith &amp;amp; jones" == "smith &amp;amp; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with less-than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith &lt; jones" ) == "smith &amp;lt; jones"
+ </Original>
+ <Expanded>
+ "smith &amp;lt; jones" == "smith &amp;lt; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with greater-than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith > jones" ) == "smith > jones"
+ </Original>
+ <Expanded>
+ "smith > jones" == "smith > jones"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith ]]&gt; jones" ) == "smith ]]&amp;gt; jones"
+ </Original>
+ <Expanded>
+ "smith ]]&amp;gt; jones"
+==
+"smith ]]&amp;gt; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with quotes">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( stringWithQuotes ) == stringWithQuotes
+ </Original>
+ <Expanded>
+ "don't "quote" me on that"
+==
+"don't "quote" me on that"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &amp;quot;quote&amp;quot; me on that"
+ </Original>
+ <Expanded>
+ "don't &amp;quot;quote&amp;quot; me on that"
+==
+"don't &amp;quot;quote&amp;quot; me on that"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with control char (1)">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "[\x01]" ) == "[&amp;#x1]"
+ </Original>
+ <Expanded>
+ "[&amp;#x1]" == "[&amp;#x1]"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with control char (x7F)">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "[\x7F]" ) == "[&amp;#x7F]"
+ </Original>
+ <Expanded>
+ "[&amp;#x7F]" == "[&amp;#x7F]"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="long long">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ l == std::numeric_limits&lt;long long>::max()
+ </Original>
+ <Expanded>
+ 9223372036854775807 (0x<hex digits>)
+==
+9223372036854775807 (0x<hex digits>)
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Process can be configured on command line">
+ <Section name="default - no arguments">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == -1
+ </Original>
+ <Expanded>
+ -1 == -1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames.empty()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="1 test" description="Specify one test case using">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="Specify one test case exclusion using exclude:">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="Specify one test case exclusion using ~">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r/console">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "console"
+ </Original>
+ <Expanded>
+ "console" == "console"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r/xml">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "xml"
+ </Original>
+ <Expanded>
+ "xml" == "xml"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r xml and junit">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames.size() == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "xml"
+ </Original>
+ <Expanded>
+ "xml" == "xml"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[1] == "junit"
+ </Original>
+ <Expanded>
+ "junit" == "junit"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="--reporter/junit">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "junit"
+ </Original>
+ <Expanded>
+ "junit" == "junit"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="debugger">
+ <Section name="-b">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="debugger">
+ <Section name="--break">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-a aborts after first failure">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-x 2 aborts after two failures">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-x must be greater than zero">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" )
+ </Original>
+ <Expanded>
+ "Value after -x or --abortAfter must be greater than zero
+- while parsing: (-x, --abortx &lt;no. failures>)" contains: "greater than zero"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-x must be numeric">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfigAndReturnError( argv, config ), Contains( "-x" )
+ </Original>
+ <Expanded>
+ "Unable to convert oops to destination type
+- while parsing: (-x, --abortx &lt;no. failures>)" contains: "-x"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="nothrow">
+ <Section name="-e">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="nothrow">
+ <Section name="--nothrow">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="output filename">
+ <Section name="-o filename">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.outputFilename == "filename.ext"
+ </Original>
+ <Expanded>
+ "filename.ext" == "filename.ext"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="output filename">
+ <Section name="--out">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.outputFilename == "filename.ext"
+ </Original>
+ <Expanded>
+ "filename.ext" == "filename.ext"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="combinations">
+ <Section name="Single character flags can be combined">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="without option">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Auto
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="auto">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Auto
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="yes">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Yes
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="no">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::No
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="error">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Long strings can be wrapped">
+ <Section name="plain string">
+ <Section name="No wrapping">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString
+ </Original>
+ <Expanded>
+ "one two three four"
+==
+"one two three four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString
+ </Original>
+ <Expanded>
+ "one two three four"
+==
+"one two three four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="Wrapped once">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour"
+ </Original>
+ <Expanded>
+ "one two three
+four"
+==
+"one two three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour"
+ </Original>
+ <Expanded>
+ "one two three
+four"
+==
+"one two three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour"
+ </Original>
+ <Expanded>
+ "one two three
+four"
+==
+"one two three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour"
+ </Original>
+ <Expanded>
+ "one two three
+four"
+==
+"one two three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four"
+ </Original>
+ <Expanded>
+ "one two
+three four"
+==
+"one two
+three four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="Wrapped twice">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="Wrapped three times">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one
+two
+three
+four"
+==
+"one
+two
+three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one
+two
+three
+four"
+==
+"one
+two
+three
+four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="Short wrap">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef"
+ </Original>
+ <Expanded>
+ "abc-
+def"
+==
+"abc-
+def"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg"
+ </Original>
+ <Expanded>
+ "abc-
+defg"
+==
+"abc-
+defg"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh"
+ </Original>
+ <Expanded>
+ "abc-
+def-
+gh"
+==
+"abc-
+def-
+gh"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour"
+ </Original>
+ <Expanded>
+ "one
+two
+thr-
+ee
+four"
+==
+"one
+two
+thr-
+ee
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur"
+ </Original>
+ <Expanded>
+ "one
+two
+th-
+ree
+fo-
+ur"
+==
+"one
+two
+th-
+ree
+fo-
+ur"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="As container">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text.size() == 4
+ </Original>
+ <Expanded>
+ 4 == 4
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text[0] == "one"
+ </Original>
+ <Expanded>
+ "one" == "one"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text[1] == "two"
+ </Original>
+ <Expanded>
+ "two" == "two"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text[2] == "three"
+ </Original>
+ <Expanded>
+ "three" == "three"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text[3] == "four"
+ </Original>
+ <Expanded>
+ "four" == "four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="plain string">
+ <Section name="Indent first line differently">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ text.toString() == " one two\n three\n four"
+ </Original>
+ <Expanded>
+ " one two
+ three
+ four"
+==
+" one two
+ three
+ four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="With newlines">
+ <Section name="No wrapping">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString
+ </Original>
+ <Expanded>
+ "one two
+three four"
+==
+"one two
+three four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString
+ </Original>
+ <Expanded>
+ "one two
+three four"
+==
+"one two
+three four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString
+ </Original>
+ <Expanded>
+ "one two
+three four"
+==
+"one two
+three four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="With newlines">
+ <Section name="Trailing newline">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef\n"
+ </Original>
+ <Expanded>
+ "abcdef
+"
+==
+"abcdef
+"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef"
+ </Original>
+ <Expanded>
+ "abcdef" == "abcdef"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef\n"
+ </Original>
+ <Expanded>
+ "abcdef
+"
+==
+"abcdef
+"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="With newlines">
+ <Section name="Wrapped once">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one two
+three
+four"
+==
+"one two
+three
+four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="With newlines">
+ <Section name="Wrapped twice">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour"
+ </Original>
+ <Expanded>
+ "one
+two
+three
+four"
+==
+"one
+two
+three
+four"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="With tabs">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( testString, TextAttributes().setWidth( 15 ) ).toString() == "one two three\n four\n five\n six"
+ </Original>
+ <Expanded>
+ "one two three
+ four
+ five
+ six"
+==
+"one two three
+ four
+ five
+ six"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="replaceInPlace">
+ <Section name="replace single char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "b", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "azcdefcg"
+ </Original>
+ <Expanded>
+ "azcdefcg" == "azcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace two chars">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "c", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "abzdefzg"
+ </Original>
+ <Expanded>
+ "abzdefzg" == "abzdefzg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace first char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "a", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "zbcdefcg"
+ </Original>
+ <Expanded>
+ "zbcdefcg" == "zbcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace last char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "g", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "abcdefcz"
+ </Original>
+ <Expanded>
+ "abcdefcz" == "abcdefcz"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace all chars">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, letters, "replaced" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "replaced"
+ </Original>
+ <Expanded>
+ "replaced" == "replaced"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace no chars">
+ <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ !replaceInPlace( letters, "x", "z" )
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == letters
+ </Original>
+ <Expanded>
+ "abcdefcg" == "abcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="escape '">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( s, "'", "|'" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ s == "didn|'t"
+ </Original>
+ <Expanded>
+ "didn|'t" == "didn|'t"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Strings can be rendered with colour">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Text can be formatted using the Text class">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "hi there" ).toString() == "hi there"
+ </Original>
+ <Expanded>
+ "hi there" == "hi there"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "hi there", narrow ).toString() == "hi\nthere"
+ </Original>
+ <Expanded>
+ "hi
+there"
+==
+"hi
+there"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Long text is truncted">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ t.toString(), EndsWith( "... message truncated due to excessive size" )
+ </Original>
+ <Expanded>
+ "******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+******************************************************************************-
+************************
+******************************************************************************-
+... message truncated due to excessive size" ends with: "... message truncated due to excessive size"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="ManuallyRegistered">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Parsing a std::pair">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ (std::pair&lt;int, int>( 1, 2 )) == aNicePair
+ </Original>
+ <Expanded>
+ std::pair( 1, 2 ) == std::pair( 1, 2 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Where there is more to the expression after the RHS">
+ <Warning>
+ Uncomment the code in this test to check that it gives a sensible compiler error
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Where the LHS is not a simple value">
+ <Warning>
+ Uncomment the code in this test to check that it gives a sensible compiler error
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A failing expression with a non streamable type is still captured">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ &amp;o1 == &amp;o2
+ </Original>
+ <Expanded>
+ 0x<hex digits> == 0x<hex digits>
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ o1 == o2
+ </Original>
+ <Expanded>
+ {?} == {?}
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="string literals of different sizes can be compared">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ std::string( "first" ) == "second"
+ </Original>
+ <Expanded>
+ "first" == "second"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="An expression with side-effects should only be evaluated once">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ i++ == 7
+ </Original>
+ <Expanded>
+ 7 == 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ i++ == 8
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Operators at different namespace levels not hijacked by Koenig lookup">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ 0x<hex digits> == o
+ </Original>
+ <Expanded>
+ 3221225472 (0x<hex digits>) == {?}
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Demonstrate that a non-const == is not used">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ t == 1u
+ </Original>
+ <Expanded>
+ {?} == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Test enum bit values">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ 0x<hex digits> == bit30and31
+ </Original>
+ <Expanded>
+ 3221225472 (0x<hex digits>) == 3221225472
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="boolean member">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ obj.prop != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="(unimplemented) static bools can be evaluated">
+ <Section name="compare to true">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true&lt;true>::value == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ true == is_true&lt;true>::value
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="compare to false">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true&lt;false>::value == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ false == is_true&lt;false>::value
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="negation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !is_true&lt;false>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="double negation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !!is_true&lt;true>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="direct">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true&lt;true>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !is_true&lt;false>::value
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Objects that evaluated in boolean contexts can be checked">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ True
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !False
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !False
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Assertions then sections">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="A section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="Another section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="A section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="Another other section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="non streamable - with conv. op">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ s == "7"
+ </Original>
+ <Expanded>
+ "7" == "7"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Comparing function pointers">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ a
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ a == &amp;foo
+ </Original>
+ <Expanded>
+ 0x<hex digits> == 0x<hex digits>
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Comparing member function pointers">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ m == &amp;S::f
+ </Original>
+ <Expanded>
+ 0x<hex digits>
+==
+0x<hex digits>
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="pointer to class">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ p == 0
+ </Original>
+ <Expanded>
+ NULL == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="null_ptr">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ ptr.get() == nullptr
+ </Original>
+ <Expanded>
+ NULL == nullptr
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/0/a">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/0/b">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/1/a">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/1/b">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "toString( has_toString )"
+ </Original>
+ <Expanded>
+ "toString( has_toString )"
+==
+"toString( has_toString )"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_maker )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "StringMaker&lt;has_maker>"
+ </Original>
+ <Expanded>
+ "StringMaker&lt;has_maker>"
+==
+"StringMaker&lt;has_maker>"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_maker_and_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "toString( has_maker_and_toString )"
+ </Original>
+ <Expanded>
+ "toString( has_maker_and_toString )"
+==
+"toString( has_maker_and_toString )"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors&lt;has_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ {?} }"
+ </Original>
+ <Expanded>
+ "{ {?} }" == "{ {?} }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors&lt;has_maker )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ StringMaker&lt;has_maker> }"
+ </Original>
+ <Expanded>
+ "{ StringMaker&lt;has_maker> }"
+==
+"{ StringMaker&lt;has_maker> }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors&lt;has_maker_and_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ StringMaker&lt;has_maker_and_toString> }"
+ </Original>
+ <Expanded>
+ "{ StringMaker&lt;has_maker_and_toString> }"
+==
+"{ StringMaker&lt;has_maker_and_toString> }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Tracker">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="fail one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="re-enter after failed section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="fail one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="re-enter after failed section and find next section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="11" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section, then find another">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter - skips S1 and enters S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Successfully close S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section, then find another">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter - skips S1 and enters S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="fail S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="12" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="14" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="open a nested section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="close outer section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="14" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Start a new inner section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="9" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="13" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="17" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Fail an inner section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="17" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="22" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="26" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="std::pair&lt;int,std::string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( value ) == "{ 34, \"xyzzy\" }"
+ </Original>
+ <Expanded>
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="std::pair&lt;int,const std::string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString(value) == "{ 34, \"xyzzy\" }"
+ </Original>
+ <Expanded>
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="std::vector&lt;std::pair&lt;std::string,int> > -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( pr ) == "{ { \"green\", 55 } }"
+ </Original>
+ <Expanded>
+ "{ { "green", 55 } }"
+==
+"{ { "green", 55 } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }"
+ </Original>
+ <Expanded>
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+==
+"{ { 42, "Arthur" }, { "Ford", 24 } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector&lt;int> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42 }"
+ </Original>
+ <Expanded>
+ "{ 42 }" == "{ 42 }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42, 250 }"
+ </Original>
+ <Expanded>
+ "{ 42, 250 }" == "{ 42, 250 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector&lt;string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ \"hello\" }"
+ </Original>
+ <Expanded>
+ "{ "hello" }" == "{ "hello" }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ \"hello\", \"world\" }"
+ </Original>
+ <Expanded>
+ "{ "hello", "world" }"
+==
+"{ "hello", "world" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector&lt;int,allocator> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42 }"
+ </Original>
+ <Expanded>
+ "{ 42 }" == "{ 42 }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42, 250 }"
+ </Original>
+ <Expanded>
+ "{ 42, 250 }" == "{ 42, 250 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vec&lt;vec&lt;string,alloc>> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(v) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }"
+ </Original>
+ <Expanded>
+ "{ { "hello" }, { "world" } }"
+==
+"{ { "hello" }, { "world" } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Parse test names and tags">
+ <Section name="Empty test spec should have no filters">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Test spec from empty string should have no filters">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches(tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Test spec from just a comma should have no filters">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Test spec from name should have one filter">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Test spec from quoted name should have one filter">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Test spec from name should have one filter">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Wildcard at the start">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ parseTestSpec( "*a" ).matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Wildcard at the end">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ parseTestSpec( "a*" ).matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Wildcard at both ends">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ parseTestSpec( "*a*" ).matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Redundant wildcard at the start">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Redundant wildcard at the end">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Redundant wildcard at both ends">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Wildcard at both ends, redundant at start">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Just wildcard">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Single tag">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Single tag, two matches">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Two tags">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Two tags, spare separated">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Wildcarded name and tag">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Single tag exclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="One tag exclusion and one tag inclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="One tag exclusion and one wldcarded name inclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="One tag exclusion, using exclude:, and one wldcarded name inclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="name exclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="wildcarded name exclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="wildcarded name exclusion with tag inclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="wildcarded name exclusion, using exclude:, with tag inclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="two wildcarded names">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="empty tag">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="empty quoted name">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="quoted string followed by tag exclusion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.hasFilters() == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcA ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcB ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcC ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
+ <Original>
+ spec.matches( tcD ) == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ }" == Catch::toString(type{})
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;int>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ 0 }" == Catch::toString(type{0})
+ </Original>
+ <Expanded>
+ "{ 0 }" == "{ 0 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;float,int>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "1.2f" == Catch::toString(float(1.2))
+ </Original>
+ <Expanded>
+ "1.2f" == "1.2f"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ 1.2f, 0 }" == Catch::toString(type{1.2,0})
+ </Original>
+ <Expanded>
+ "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;string,string>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"})
+ </Original>
+ <Expanded>
+ "{ "hello", "world" }"
+==
+"{ "hello", "world" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ { 42 }, { }, 1.2f }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ { 42 }, { }, 1.2f }"
+==
+"{ { 42 }, { }, 1.2f }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple&lt;nullptr,int,const char *>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ nullptr, 42, "Catch me" }"
+==
+"{ nullptr, 42, "Catch me" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Tag alias can be registered against tag patterns">
+ <Section name="The same tag alias can only be registered once">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "[@zzz]" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "[@zzz]"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "file" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "file"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "2" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "2"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "10" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "10"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Tag aliases must be of the form [@name]">
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Anonymous test case 1">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Test case with one argument">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Variadic macros">
+ <Section name="Section with one argument">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Scenario: Do that thing with the thing">
+ <Section name="Given: This stuff exists">
+ <Section name="When: I do this">
+ <Section name="Then: it should do this">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ itDoesThis()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="And: do that">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ itDoesThat()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Scenario: Vector resizing affects size and capacity">
+ <Section name="Given: an empty vector">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.size() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Section name="When: it is made larger">
+ <Section name="Then: the size and capacity go up">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.size() == 10
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <Section name="And when: it is made smaller again">
+ <Section name="Then: the size goes down but the capacity stays the same">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Given: an empty vector">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.size() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Section name="When: we reserve more space">
+ <Section name="Then: The capacity is increased but the size remains the same">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ v.size() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Scenario: This is a really long scenario name to see how the list command deals with wrapping">
+ <Section name="Given: A section name that is so long that it cannot fit in a single console width">
+ <Section name="When: The test headers are printed as part of the normal running of the scenario">
+ <Section name="Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods">
+ <Section name="Given: No operations precede me">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ before == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Section name="When: We get the count">
+ <Section name="Then: Subsequently values are higher">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ after > before
+ </Original>
+ <Expanded>
+ 1 > 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <OverallResults successes="823" failures="85" expectedFailures="13"/>
+ </Group>
+ <OverallResults successes="823" failures="85" expectedFailures="13"/>
+</Catch>