diff options
Diffstat (limited to 'projects/SelfTest/Baselines')
-rw-r--r-- | projects/SelfTest/Baselines/console.std.approved.txt | 835 | ||||
-rw-r--r-- | projects/SelfTest/Baselines/console.sw.approved.txt | 9098 | ||||
-rw-r--r-- | projects/SelfTest/Baselines/console.swa4.approved.txt | 491 | ||||
-rw-r--r-- | projects/SelfTest/Baselines/junit.sw.approved.txt | 687 | ||||
-rw-r--r-- | projects/SelfTest/Baselines/xml.sw.approved.txt | 9569 |
5 files changed, 20680 insertions, 0 deletions
diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt new file mode 100644 index 0000000..29870b9 --- /dev/null +++ b/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/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt new file mode 100644 index 0000000..cd73c2a --- /dev/null +++ b/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 & jones" ) +with expansion: + "smith & jones" == "smith & jones" + +------------------------------------------------------------------------------- +XmlEncode + string with less-than +------------------------------------------------------------------------------- +MiscTests.cpp:<line number> +............................................................................... + +MiscTests.cpp:<line number>: +PASSED: + REQUIRE( encode( "smith < jones" ) == "smith < jones" ) +with expansion: + "smith < jones" == "smith < 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 ]]> jones" ) +with expansion: + "smith ]]> jones" + == + "smith ]]> 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 "quote" me on that" ) +with expansion: + "don't "quote" me on that" + == + "don't "quote" me on that" + +------------------------------------------------------------------------------- +XmlEncode + string with control char (1) +------------------------------------------------------------------------------- +MiscTests.cpp:<line number> +............................................................................... + +MiscTests.cpp:<line number>: +PASSED: + REQUIRE( encode( "[\x01]" ) == "[]" ) +with expansion: + "[]" == "[]" + +------------------------------------------------------------------------------- +XmlEncode + string with control char (x7F) +------------------------------------------------------------------------------- +MiscTests.cpp:<line number> +............................................................................... + +MiscTests.cpp:<line number>: +PASSED: + REQUIRE( encode( "[\x7F]" ) == "[]" ) +with expansion: + "[]" == "[]" + +------------------------------------------------------------------------------- +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/projects/SelfTest/Baselines/console.swa4.approved.txt b/projects/SelfTest/Baselines/console.swa4.approved.txt new file mode 100644 index 0000000..0793f1d --- /dev/null +++ b/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/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt new file mode 100644 index 0000000..110ee8c --- /dev/null +++ b/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<<)" time="{duration}"/> + <testcase classname="global" name="toString(enum class)" time="{duration}"/> + <testcase classname="global" name="toString(enum class w/operator<<)" 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=""hello" == "world"" 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=""hello" == "goodbye"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" == "hell"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" == "hello1"" 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=""hello" != "hello"" 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 < 7" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 > 8" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 < 6" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 < 0" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 < -1" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 >= 8" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="7 <= 6" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message="9.1f < 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=""hello" > "hello"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" < "hello"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" > "hellp"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" > "z"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" < "hellm"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" < "a"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" >= "z"" type="CHECK"> +ConditionTests.cpp:<line number> + </failure> + <failure message=""hello" <= "a"" 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 < 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=""this string contains 'abc' as a substring" contains: "not there"" type="CHECK_THAT"> +MiscTests.cpp:<line number> + </failure> + </testcase> + <testcase classname="global" name="StartsWith string matcher" time="{duration}"> + <failure message=""this string contains 'abc' as a substring" starts with: "string"" type="CHECK_THAT"> +MiscTests.cpp:<line number> + </failure> + </testcase> + <testcase classname="global" name="EndsWith string matcher" time="{duration}"> + <failure message=""this string contains 'abc' as a substring" ends with: "this"" type="CHECK_THAT"> +MiscTests.cpp:<line number> + </failure> + </testcase> + <testcase classname="global" name="Equals string matcher" time="{duration}"> + <failure message=""this string contains 'abc' as a substring" equals: "something else"" 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 && 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 && and ||" time="{duration}"/> + <testcase classname="global" name="Matchers can be composed with both && and || - failing" time="{duration}"> + <failure message=""this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )" 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=""this string contains 'abc' as a substring" not contains: "substring"" 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=""if ($b == 10) { + $a = 20; +}" +== +"if ($b == 10) { + $a = 20; +} +"" 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=""first" == "second"" 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<has_toString )" time="{duration}"/> + <testcase classname="global" name="toString( vectors<has_maker )" time="{duration}"/> + <testcase classname="global" name="toString( vectors<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<int,std::string> -> toString" time="{duration}"/> + <testcase classname="global" name="std::pair<int,const std::string> -> toString" time="{duration}"/> + <testcase classname="global" name="std::vector<std::pair<std::string,int> > -> toString" time="{duration}"/> + <testcase classname="global" name="pair<pair<int,const char *,pair<std::string,int> > -> toString" time="{duration}"/> + <testcase classname="global" name="vector<int> -> toString" time="{duration}"/> + <testcase classname="global" name="vector<string> -> toString" time="{duration}"/> + <testcase classname="global" name="vector<int,allocator> -> toString" time="{duration}"/> + <testcase classname="global" name="vec<vec<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<>" time="{duration}"/> + <testcase classname="global" name="tuple<int>" time="{duration}"/> + <testcase classname="global" name="tuple<float,int>" time="{duration}"/> + <testcase classname="global" name="tuple<string,string>" time="{duration}"/> + <testcase classname="global" name="tuple<tuple<int>,tuple<>,float>" time="{duration}"/> + <testcase classname="global" name="tuple<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/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt new file mode 100644 index 0000000..c0af02f --- /dev/null +++ b/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<<)"> + <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<<)"> + <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 < 8 + </Original> + <Expanded> + 7 < 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 <= 7 + </Original> + <Expanded> + 7 <= 7 + </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 > 9 + </Original> + <Expanded> + 9.1f > 9 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.float_nine_point_one < 10 + </Original> + <Expanded> + 9.1f < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.float_nine_point_one < 9.2 + </Original> + <Expanded> + 9.1f < 9.2 + </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 >= "hello" + </Original> + <Expanded> + "hello" >= "hello" + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.str_hello < "hellp" + </Original> + <Expanded> + "hello" < "hellp" + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.str_hello < "zebra" + </Original> + <Expanded> + "hello" < "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 < 7 + </Original> + <Expanded> + 7 < 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 < 6 + </Original> + <Expanded> + 7 < 6 + </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.int_seven < -1 + </Original> + <Expanded> + 7 < -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 <= 6 + </Original> + <Expanded> + 7 <= 6 + </Expanded> + </Expression> + <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.float_nine_point_one < 9 + </Original> + <Expanded> + 9.1f < 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 < "hello" + </Original> + <Expanded> + "hello" < "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 < "hellm" + </Original> + <Expanded> + "hello" < "hellm" + </Expanded> + </Expression> + <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + data.str_hello < "a" + </Original> + <Expanded> + "hello" < "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 <= "a" + </Original> + <Expanded> + "hello" <= "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<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 < -1 ) + </Original> + <Expanded> + true + </Expanded> + </Expression> + <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" > + <Original> + 2u < -1 + </Original> + <Expanded> + 2 < -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 < 10 + </Original> + <Expanded> + 0 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 1 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 2 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 3 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 4 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 5 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 6 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 7 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 8 < 10 + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 9 < 10 + </Expanded> + </Expression> + <Info> + current counter 10 + </Info> + <Info> + i := 10 + </Info> + <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" > + <Original> + i < 10 + </Original> + <Expanded> + 10 < 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 < b + </Original> + <Expanded> + 1 < 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<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<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="<test>it should be possible to embed xml characters, such as <, " or &, or even whole <xml>documents</xml> within an attribute</test>"> + <OverallResults successes="1" failures="0" expectedFailures="0"/> + </Section> + <Section name="encoded chars" description="these should all be encoded: &&&"""<<<&"<<&""> + <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 && operator"> + <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" > + <Original> + testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && 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 && and ||"> + <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" > + <Original> + testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && 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 && and || - failing"> + <Expression success="false" 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" ) 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 & jones" ) == "smith &amp; jones" + </Original> + <Expanded> + "smith &amp; jones" == "smith &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 < jones" ) == "smith &lt; jones" + </Original> + <Expanded> + "smith &lt; jones" == "smith &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 ]]> jones" ) == "smith ]]&gt; jones" + </Original> + <Expanded> + "smith ]]&gt; jones" +== +"smith ]]&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 &quot;quote&quot; me on that" + </Original> + <Expanded> + "don't &quot;quote&quot; me on that" +== +"don't &quot;quote&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]" ) == "[&#x1]" + </Original> + <Expanded> + "[&#x1]" == "[&#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]" ) == "[&#x7F]" + </Original> + <Expanded> + "[&#x7F]" == "[&#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<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 <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 <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<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> + &o1 == &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<true>::value == true + </Original> + <Expanded> + true == true + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" > + <Original> + true == is_true<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<false>::value == false + </Original> + <Expanded> + false == false + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" > + <Original> + false == is_true<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<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<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<true>::value + </Original> + <Expanded> + true + </Expanded> + </Expression> + <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/TrickyTests.cpp" > + <Original> + !is_true<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 == &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 == &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<has_maker>" + </Original> + <Expanded> + "StringMaker<has_maker>" +== +"StringMaker<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<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<has_maker )"> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" > + <Original> + Catch::toString( v ) == "{ StringMaker<has_maker> }" + </Original> + <Expanded> + "{ StringMaker<has_maker> }" +== +"{ StringMaker<has_maker> }" + </Expanded> + </Expression> + <OverallResult success="true"/> + </TestCase> + <TestCase name="toString( vectors<has_maker_and_toString )"> + <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" > + <Original> + Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" + </Original> + <Expanded> + "{ StringMaker<has_maker_and_toString> }" +== +"{ StringMaker<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<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<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<std::pair<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<pair<int,const char *,pair<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<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<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<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<vec<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<>"> + <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<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<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<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<tuple<int>,tuple<>,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<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> |