From 79acc0504bf62020eefbb305c948718328aebade Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 29 Nov 2016 11:32:16 +0000 Subject: [PATCH] Sort test ordering during Approval testing --- .../Baselines/console.std.approved.txt | 830 +- .../Baselines/console.sw.approved.txt | 11528 ++++++++-------- .../Baselines/console.swa4.approved.txt | 601 +- .../SelfTest/Baselines/junit.sw.approved.txt | 1000 +- .../SelfTest/Baselines/xml.sw.approved.txt | 9734 ++++++------- scripts/approvalTests.py | 11 +- 6 files changed, 11565 insertions(+), 12139 deletions(-) diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt index ee8d8072..7c5da08c 100644 --- a/projects/SelfTest/Baselines/console.std.approved.txt +++ b/projects/SelfTest/Baselines/console.std.approved.txt @@ -3,6 +3,46 @@ CatchSelfTest is a host application. Run with -? for options +------------------------------------------------------------------------------- +'Not' checks that should fail +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: FAILED: + CHECK( false != false ) + +ConditionTests.cpp:: FAILED: + CHECK( true != true ) + +ConditionTests.cpp:: FAILED: + CHECK( !true ) +with expansion: + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( true ) + +ConditionTests.cpp:: FAILED: + CHECK( !trueValue ) +with expansion: + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( trueValue ) +with expansion: + !true + +ConditionTests.cpp:: FAILED: + CHECK( !(1 == 1) ) +with expansion: + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( 1 == 1 ) +with expansion: + !(1 == 1) + ------------------------------------------------------------------------------- A METHOD_AS_TEST_CASE based test run that fails ------------------------------------------------------------------------------- @@ -25,6 +65,97 @@ ClassTests.cpp:: FAILED: with expansion: 1 == 2 +------------------------------------------------------------------------------- +A couple of nested sections followed by a failure +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +A failing expression with a non streamable type is still captured +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: FAILED: + CHECK( &o1 == &o2 ) +with expansion: + 0x == 0x + +TrickyTests.cpp:: FAILED: + CHECK( o1 == o2 ) +with expansion: + {?} == {?} + +------------------------------------------------------------------------------- +An unchecked exception reports the line of the last assertion +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: + {Unknown expression after the reported line} +due to unexpected exception with message: + unexpected exception + +------------------------------------------------------------------------------- +Contains string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) +with expansion: + "this string contains 'abc' as a substring" contains: "not there" + +------------------------------------------------------------------------------- +Custom exceptions can be translated when testing for nothrow +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: 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: +............................................................................... + +ExceptionTests.cpp:: FAILED: + REQUIRE_THROWS_AS( throwCustom() ) +due to unexpected exception with message: + custom exception - not std + +------------------------------------------------------------------------------- +Custom std-exceptions can be custom translated +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + custom std exception + +------------------------------------------------------------------------------- +EndsWith string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) +with expansion: + "this string contains 'abc' as a substring" ends with: "this" + ------------------------------------------------------------------------------- Equality checks that should fail ------------------------------------------------------------------------------- @@ -96,6 +227,100 @@ ConditionTests.cpp:: FAILED: with expansion: 1.3 == Approx( 1.301 ) +------------------------------------------------------------------------------- +Equals string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), Equals( "something else" ) ) +with expansion: + "this string contains 'abc' as a substring" equals: "something else" + +------------------------------------------------------------------------------- +Expected exceptions that don't throw or unexpected exceptions fail the test +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: + CHECK_THROWS_AS( thisThrows() ) +due to unexpected exception with message: + expected exception + +ExceptionTests.cpp:: FAILED: + CHECK_THROWS_AS( thisDoesntThrow() ) +because no exception was thrown where one was expected: + +ExceptionTests.cpp:: FAILED: + CHECK_NOTHROW( thisThrows() ) +due to unexpected exception with message: + expected exception + +------------------------------------------------------------------------------- +FAIL aborts the test +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: +explicitly with message: + This is a failure + +------------------------------------------------------------------------------- +FAIL does not require an argument +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + +------------------------------------------------------------------------------- +INFO and WARN do not abort tests +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: +warning: + this is a warning + +------------------------------------------------------------------------------- +INFO gets logged on failure +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: 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: +............................................................................... + +MessageTests.cpp:: FAILED: + CHECK( a == 1 ) +with expansion: + 2 == 1 +with messages: + this message may be logged later + this message should be logged + +MessageTests.cpp:: FAILED: + CHECK( a == 0 ) +with expansion: + 2 == 0 +with message: + and this, but later + ------------------------------------------------------------------------------- Inequality checks that should fail ------------------------------------------------------------------------------- @@ -127,6 +352,60 @@ ConditionTests.cpp:: FAILED: with expansion: 5 != 5 +------------------------------------------------------------------------------- +Matchers can be composed with both && and || - failing +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: 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: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) +with expansion: + "this string contains 'abc' as a substring" not contains: "substring" + +------------------------------------------------------------------------------- +Mismatching exception messages failing the test +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: + REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) +with expansion: + expected exception + +------------------------------------------------------------------------------- +Nice descriptive name +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +warning: + This one ran + +------------------------------------------------------------------------------- +Non-std exceptions can be translated +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + custom exception + ------------------------------------------------------------------------------- Ordering comparison checks that should fail ------------------------------------------------------------------------------- @@ -229,64 +508,99 @@ with expansion: "hello" <= "a" ------------------------------------------------------------------------------- -'Not' checks that should fail +Output from all sections is reported + one ------------------------------------------------------------------------------- -ConditionTests.cpp: +MessageTests.cpp: ............................................................................... -ConditionTests.cpp:: FAILED: - CHECK( false != false ) - -ConditionTests.cpp:: FAILED: - CHECK( true != true ) - -ConditionTests.cpp:: FAILED: - CHECK( !true ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( true ) - -ConditionTests.cpp:: FAILED: - CHECK( !trueValue ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( trueValue ) -with expansion: - !true - -ConditionTests.cpp:: FAILED: - CHECK( !(1 == 1) ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( 1 == 1 ) -with expansion: - !(1 == 1) +MessageTests.cpp:: FAILED: +explicitly with message: + Message from section one ------------------------------------------------------------------------------- -Expected exceptions that don't throw or unexpected exceptions fail the test +Output from all sections is reported + two +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: +explicitly with message: + Message from section two + +------------------------------------------------------------------------------- +Pointers can be converted to strings +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: +warning: + actual address of p: 0x + +MessageTests.cpp:: +warning: + toString(p): 0x + +------------------------------------------------------------------------------- +SCOPED_INFO is reset for each loop +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + REQUIRE( i < 10 ) +with expansion: + 10 < 10 +with messages: + current counter 10 + i := 10 + +A string sent directly to stdout +A string sent directly to stderr +Message from section one +Message from section two +------------------------------------------------------------------------------- +StartsWith string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) +with expansion: + "this string contains 'abc' as a substring" starts with: "string" + +hello +hello +------------------------------------------------------------------------------- +Tabs and newlines show in output +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK( s1 == s2 ) +with expansion: + "if ($b == 10) { + $a= 20; + }" + == + "if ($b == 10) { + $a = 20; + } + " + +------------------------------------------------------------------------------- +Unexpected exceptions can be translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisThrows() ) due to unexpected exception with message: - expected exception - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisDoesntThrow() ) -because no exception was thrown where one was expected: - -ExceptionTests.cpp:: FAILED: - CHECK_NOTHROW( thisThrows() ) -due to unexpected exception with message: - expected exception + 3.14 ------------------------------------------------------------------------------- When unchecked exceptions are thrown directly they are always failures @@ -299,29 +613,8 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -An unchecked exception reports the line of the last assertion -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: 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: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from functions they are always failures +When unchecked exceptions are thrown during a CHECK the test should abort and +fail ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -344,8 +637,7 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -When unchecked exceptions are thrown during a CHECK the test should abort and -fail +When unchecked exceptions are thrown from functions they are always failures ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -356,168 +648,69 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -Non-std exceptions can be translated +When unchecked exceptions are thrown from sections they are always failures + section name ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... ExceptionTests.cpp:: FAILED: due to unexpected exception with message: - custom exception + unexpected exception ------------------------------------------------------------------------------- -Custom std-exceptions can be custom translated +Where the LHS is not a simple value ------------------------------------------------------------------------------- -ExceptionTests.cpp: +TrickyTests.cpp: ............................................................................... -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom std exception - -------------------------------------------------------------------------------- -Custom exceptions can be translated when testing for nothrow -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: 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: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_AS( throwCustom() ) -due to unexpected exception with message: - custom exception - not std - -------------------------------------------------------------------------------- -Unexpected exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - 3.14 - -------------------------------------------------------------------------------- -Mismatching exception messages failing the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) -with expansion: - expected exception - -------------------------------------------------------------------------------- -INFO and WARN do not abort tests -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: +TrickyTests.cpp:: warning: - this is a warning + Uncomment the code in this test to check that it gives a sensible compiler + error ------------------------------------------------------------------------------- -INFO gets logged on failure +Where there is more to the expression after the RHS ------------------------------------------------------------------------------- -MessageTests.cpp: +TrickyTests.cpp: ............................................................................... -MessageTests.cpp:: FAILED: - REQUIRE( a == 1 ) +TrickyTests.cpp:: +warning: + Uncomment the code in this test to check that it gives a sensible compiler + error + +------------------------------------------------------------------------------- +checkedElse, failing +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECKED_ELSE( flag ) with expansion: - 2 == 1 -with messages: - this message should be logged - so should this + false -------------------------------------------------------------------------------- -INFO gets logged on failure, even if captured before successful assertions -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - CHECK( a == 1 ) +MiscTests.cpp:: FAILED: + REQUIRE( testCheckedElse( false ) ) with expansion: - 2 == 1 -with messages: - this message may be logged later - this message should be logged + false -MessageTests.cpp:: FAILED: - CHECK( a == 0 ) +------------------------------------------------------------------------------- +checkedIf, failing +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECKED_IF( flag ) with expansion: - 2 == 0 -with message: - and this, but later + false -------------------------------------------------------------------------------- -FAIL aborts the test -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - This is a failure - -------------------------------------------------------------------------------- -FAIL does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - -------------------------------------------------------------------------------- -Output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section one - -------------------------------------------------------------------------------- -Output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: 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: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( i < 10 ) +MiscTests.cpp:: FAILED: + REQUIRE( testCheckedIf( false ) ) with expansion: - 10 < 10 -with messages: - current counter 10 - i := 10 + false ------------------------------------------------------------------------------- just failure @@ -529,45 +722,6 @@ MessageTests.cpp:: FAILED: explicitly with message: Previous info should not be seen -------------------------------------------------------------------------------- -sends information to INFO -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -Pointers can be converted to strings -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - actual address of p: 0x - -MessageTests.cpp:: -warning: - toString(p): 0x - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( a == b ) -with expansion: - 1 == 2 - ------------------------------------------------------------------------------- looped SECTION tests s1 @@ -628,39 +782,18 @@ with expansion: with message: Testing if fib[7] (21) is even -A string sent directly to stdout -A string sent directly to stderr ------------------------------------------------------------------------------- -checkedIf, failing +more nested SECTION tests + s1 + s2 ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... MiscTests.cpp:: FAILED: - CHECKED_IF( flag ) + REQUIRE( a == b ) with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedIf( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -checkedElse, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_ELSE( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedElse( false ) ) -with expansion: - false + 1 == 2 ------------------------------------------------------------------------------- send a single char to INFO @@ -674,149 +807,16 @@ with message: 3 ------------------------------------------------------------------------------- -Contains string matcher +sends information to INFO ------------------------------------------------------------------------------- -MiscTests.cpp: +MessageTests.cpp: ............................................................................... -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "not there" - -------------------------------------------------------------------------------- -StartsWith string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "string" - -------------------------------------------------------------------------------- -EndsWith string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "this" - -------------------------------------------------------------------------------- -Equals string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" not contains: "substring" - -------------------------------------------------------------------------------- -Nice descriptive name -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -warning: - This one ran - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: -explicitly with message: - to infinity and beyond - -------------------------------------------------------------------------------- -Tabs and newlines show in output -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -TrickyTests.cpp:: -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: -............................................................................... - -TrickyTests.cpp:: -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: -............................................................................... - -TrickyTests.cpp:: FAILED: - CHECK( &o1 == &o2 ) -with expansion: - 0x == 0x - -TrickyTests.cpp:: FAILED: - CHECK( o1 == o2 ) -with expansion: - {?} == {?} +MessageTests.cpp:: FAILED: + REQUIRE( false ) +with messages: + hi + i := 7 ------------------------------------------------------------------------------- string literals of different sizes can be compared diff --git a/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt index 3359a0fa..b9fdceab 100644 --- a/projects/SelfTest/Baselines/console.sw.approved.txt +++ b/projects/SelfTest/Baselines/console.sw.approved.txt @@ -4,126 +4,366 @@ CatchSelfTest is a host application. Run with -? for options ------------------------------------------------------------------------------- -toString(enum) +# A test name that starts with a # ------------------------------------------------------------------------------- -EnumToString.cpp: +MiscTests.cpp: ............................................................................... -EnumToString.cpp:: +MiscTests.cpp:: PASSED: - CHECK( Catch::toString(e0) == "0" ) -with expansion: - "0" == "0" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "1" ) -with expansion: - "1" == "1" +with message: + yay ------------------------------------------------------------------------------- -toString(enum w/operator<<) +'Not' checks that should fail ------------------------------------------------------------------------------- -EnumToString.cpp: +ConditionTests.cpp: ............................................................................... -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "E2{0}" ) -with expansion: - "E2{0}" == "E2{0}" +ConditionTests.cpp:: FAILED: + CHECK( false != false ) -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "E2{1}" ) +ConditionTests.cpp:: FAILED: + CHECK( true != true ) + +ConditionTests.cpp:: FAILED: + CHECK( !true ) with expansion: - "E2{1}" == "E2{1}" + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( true ) + +ConditionTests.cpp:: FAILED: + CHECK( !trueValue ) +with expansion: + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( trueValue ) +with expansion: + !true + +ConditionTests.cpp:: FAILED: + CHECK( !(1 == 1) ) +with expansion: + false + +ConditionTests.cpp:: FAILED: + CHECK_FALSE( 1 == 1 ) +with expansion: + !(1 == 1) ------------------------------------------------------------------------------- -toString(enum class) +'Not' checks that should succeed ------------------------------------------------------------------------------- -EnumToString.cpp: +ConditionTests.cpp: ............................................................................... -EnumToString.cpp:: +ConditionTests.cpp:: PASSED: - CHECK( Catch::toString(e0) == "0" ) -with expansion: - "0" == "0" + REQUIRE( false == false ) -EnumToString.cpp:: +ConditionTests.cpp:: PASSED: - CHECK( Catch::toString(e1) == "1" ) + REQUIRE( true == true ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( !false ) with expansion: - "1" == "1" + true + +ConditionTests.cpp:: +PASSED: + REQUIRE_FALSE( false ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( !falseValue ) +with expansion: + true + +ConditionTests.cpp:: +PASSED: + REQUIRE_FALSE( falseValue ) +with expansion: + !false + +ConditionTests.cpp:: +PASSED: + REQUIRE( !(1 == 2) ) +with expansion: + true + +ConditionTests.cpp:: +PASSED: + REQUIRE_FALSE( 1 == 2 ) +with expansion: + !(1 == 2) ------------------------------------------------------------------------------- -toString(enum class w/operator<<) +(unimplemented) static bools can be evaluated + compare to true ------------------------------------------------------------------------------- -EnumToString.cpp: +TrickyTests.cpp: ............................................................................... -EnumToString.cpp:: +TrickyTests.cpp:: PASSED: - CHECK( Catch::toString(e0) == "E2/V0" ) + REQUIRE( is_true::value == true ) with expansion: - "E2/V0" == "E2/V0" + true == true -EnumToString.cpp:: +TrickyTests.cpp:: PASSED: - CHECK( Catch::toString(e1) == "E2/V1" ) + REQUIRE( true == is_true::value ) with expansion: - "E2/V1" == "E2/V1" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e3) == "Unknown enum value 10" ) -with expansion: - "Unknown enum value 10" - == - "Unknown enum value 10" + true == true ------------------------------------------------------------------------------- -Some simple comparisons between doubles +(unimplemented) static bools can be evaluated + compare to false +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( is_true::value == false ) +with expansion: + false == false + +TrickyTests.cpp:: +PASSED: + REQUIRE( false == is_true::value ) +with expansion: + false == false + +------------------------------------------------------------------------------- +(unimplemented) static bools can be evaluated + negation +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( !is_true::value ) +with expansion: + true + +------------------------------------------------------------------------------- +(unimplemented) static bools can be evaluated + double negation +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( !!is_true::value ) +with expansion: + true + +------------------------------------------------------------------------------- +(unimplemented) static bools can be evaluated + direct +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( is_true::value ) +with expansion: + true + +TrickyTests.cpp:: +PASSED: + REQUIRE_FALSE( is_true::value ) +with expansion: + !false + +------------------------------------------------------------------------------- +A METHOD_AS_TEST_CASE based test run that fails +------------------------------------------------------------------------------- +ClassTests.cpp: +............................................................................... + +ClassTests.cpp:: FAILED: + REQUIRE( s == "world" ) +with expansion: + "hello" == "world" + +------------------------------------------------------------------------------- +A METHOD_AS_TEST_CASE based test run that succeeds +------------------------------------------------------------------------------- +ClassTests.cpp: +............................................................................... + +ClassTests.cpp:: +PASSED: + REQUIRE( s == "hello" ) +with expansion: + "hello" == "hello" + +------------------------------------------------------------------------------- +A TEST_CASE_METHOD based test run that fails +------------------------------------------------------------------------------- +ClassTests.cpp: +............................................................................... + +ClassTests.cpp:: FAILED: + REQUIRE( m_a == 2 ) +with expansion: + 1 == 2 + +------------------------------------------------------------------------------- +A TEST_CASE_METHOD based test run that succeeds +------------------------------------------------------------------------------- +ClassTests.cpp: +............................................................................... + +ClassTests.cpp:: +PASSED: + REQUIRE( m_a == 1 ) +with expansion: + 1 == 1 + +------------------------------------------------------------------------------- +A couple of nested sections followed by a failure + Outer + Inner +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: +with message: + that's not flying - that's failing in style + +------------------------------------------------------------------------------- +A couple of nested sections followed by a failure +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +A failing expression with a non streamable type is still captured +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: FAILED: + CHECK( &o1 == &o2 ) +with expansion: + 0x == 0x + +TrickyTests.cpp:: FAILED: + CHECK( o1 == o2 ) +with expansion: + {?} == {?} + +------------------------------------------------------------------------------- +AllOf matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +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" ) + +------------------------------------------------------------------------------- +An expression with side-effects should only be evaluated once +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( i++ == 7 ) +with expansion: + 7 == 7 + +TrickyTests.cpp:: +PASSED: + REQUIRE( i++ == 8 ) +with expansion: + 8 == 8 + +------------------------------------------------------------------------------- +An unchecked exception reports the line of the last assertion +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: +PASSED: + CHECK( 1 == 1 ) + +ExceptionTests.cpp:: FAILED: + {Unknown expression after the reported line} +due to unexpected exception with message: + unexpected exception + +------------------------------------------------------------------------------- +Anonymous test case 1 +------------------------------------------------------------------------------- +VariadicMacrosTests.cpp: +............................................................................... + +VariadicMacrosTests.cpp:: +PASSED: +with message: + anonymous test case + +------------------------------------------------------------------------------- +AnyOf matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +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:: +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" ) + +------------------------------------------------------------------------------- +Approximate PI ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... ApproxTests.cpp:: PASSED: - REQUIRE( d == Approx( 1.23 ) ) + REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ) with expansion: - 1.23 == Approx( 1.23 ) + 3.1428571429 == Approx( 3.141 ) ApproxTests.cpp:: PASSED: - REQUIRE( d != Approx( 1.22 ) ) + REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) ) with expansion: - 1.23 != Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.24 ) ) -with expansion: - 1.23 != Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.22 ) -with expansion: - Approx( 1.23 ) != 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.24 ) -with expansion: - Approx( 1.23 ) != 1.24 + 3.1428571429 != Approx( 3.141 ) ------------------------------------------------------------------------------- Approximate comparisons with different epsilons @@ -216,553 +456,169 @@ with expansion: 1.234 == Approx( 1.2339999676 ) ------------------------------------------------------------------------------- -Use a custom approx +Assertions then sections ------------------------------------------------------------------------------- -ApproxTests.cpp: +TrickyTests.cpp: ............................................................................... -ApproxTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( d == approx( 1.23 ) ) + REQUIRE( Catch::alwaysTrue() ) with expansion: - 1.23 == Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.22 ) ) -with expansion: - 1.23 == Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.24 ) ) -with expansion: - 1.23 == Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != approx( 1.25 ) ) -with expansion: - 1.23 != Approx( 1.25 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.22 ) -with expansion: - Approx( 1.23 ) == 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.24 ) -with expansion: - Approx( 1.23 ) == 1.24 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) != 1.25 ) -with expansion: - Approx( 1.23 ) != 1.25 + true ------------------------------------------------------------------------------- -Approximate PI +Assertions then sections + A section ------------------------------------------------------------------------------- -ApproxTests.cpp: +TrickyTests.cpp: ............................................................................... -ApproxTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ) + REQUIRE( Catch::alwaysTrue() ) with expansion: - 3.1428571429 == Approx( 3.141 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) ) -with expansion: - 3.1428571429 != Approx( 3.141 ) + true ------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that succeeds +Assertions then sections + A section + Another section ------------------------------------------------------------------------------- -ClassTests.cpp: +TrickyTests.cpp: ............................................................................... -ClassTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( s == "hello" ) + REQUIRE( Catch::alwaysTrue() ) with expansion: - "hello" == "hello" + true ------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that fails +Assertions then sections ------------------------------------------------------------------------------- -ClassTests.cpp: +TrickyTests.cpp: ............................................................................... -ClassTests.cpp:: FAILED: - REQUIRE( s == "world" ) -with expansion: - "hello" == "world" - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that succeeds -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( m_a == 1 ) + REQUIRE( Catch::alwaysTrue() ) with expansion: - 1 == 1 + true ------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that fails +Assertions then sections + A section ------------------------------------------------------------------------------- -ClassTests.cpp: +TrickyTests.cpp: ............................................................................... -ClassTests.cpp:: FAILED: - REQUIRE( m_a == 2 ) +TrickyTests.cpp:: +PASSED: + REQUIRE( Catch::alwaysTrue() ) with expansion: - 1 == 2 + true ------------------------------------------------------------------------------- -Equality checks that should succeed +Assertions then sections + A section + Another other section +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( Catch::alwaysTrue() ) +with expansion: + true + +------------------------------------------------------------------------------- +Comparing function pointers +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( a ) +with expansion: + true + +TrickyTests.cpp:: +PASSED: + REQUIRE( a == &foo ) +with expansion: + 0x == 0x + +------------------------------------------------------------------------------- +Comparing member function pointers +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + CHECK( m == &S::f ) +with expansion: + 0x + == + 0x + +------------------------------------------------------------------------------- +Comparisons between ints where one side is computed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... ConditionTests.cpp:: PASSED: - REQUIRE( data.int_seven == 7 ) + CHECK( 54 == 6*9 ) with expansion: - 7 == 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ) -with expansion: - 9.1f == Approx( 9.1000003815 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi == Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415926535 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello == "hello" ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( "hello" == data.str_hello ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() == 5 ) -with expansion: - 5 == 5 - -ConditionTests.cpp:: -PASSED: - REQUIRE( x == Approx( 1.3 ) ) -with expansion: - 1.3 == Approx( 1.3 ) + 54 == 54 ------------------------------------------------------------------------------- -Equality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 6 ) -with expansion: - 7 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 8 ) -with expansion: - 7 == 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 0 ) -with expansion: - 7 == 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.11f ) ) -with expansion: - 9.1f == Approx( 9.1099996567 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.0f ) ) -with expansion: - 9.1f == Approx( 9.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 1 ) ) -with expansion: - 9.1f == Approx( 1.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 0 ) ) -with expansion: - 9.1f == Approx( 0.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi == Approx( 3.1415 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "goodbye" ) -with expansion: - "hello" == "goodbye" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hell" ) -with expansion: - "hello" == "hell" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hello1" ) -with expansion: - "hello" == "hello1" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() == 6 ) -with expansion: - 5 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( x == Approx( 1.301 ) ) -with expansion: - 1.3 == Approx( 1.301 ) - -------------------------------------------------------------------------------- -Inequality checks that should succeed +Comparisons between unsigned ints and negative signed ints match c++ standard +behaviour ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... ConditionTests.cpp:: PASSED: - REQUIRE( data.int_seven != 6 ) + CHECK( ( -1 > 2u ) ) with expansion: - 7 != 6 + true ConditionTests.cpp:: PASSED: - REQUIRE( data.int_seven != 8 ) + CHECK( -1 > 2u ) with expansion: - 7 != 8 + -1 > 2 ConditionTests.cpp:: PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) + CHECK( ( 2u < -1 ) ) with expansion: - 9.1f != Approx( 9.1099996567 ) + true ConditionTests.cpp:: PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) + CHECK( 2u < -1 ) with expansion: - 9.1f != Approx( 9.0 ) + 2 < -1 ConditionTests.cpp:: PASSED: - REQUIRE( data.float_nine_point_one != Approx( 1 ) ) + CHECK( ( minInt > 2u ) ) with expansion: - 9.1f != Approx( 1.0 ) + true ConditionTests.cpp:: PASSED: - REQUIRE( data.float_nine_point_one != Approx( 0 ) ) + CHECK( minInt > 2u ) with expansion: - 9.1f != Approx( 0.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi != Approx( 3.1415 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "goodbye" ) -with expansion: - "hello" != "goodbye" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hell" ) -with expansion: - "hello" != "hell" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hello1" ) -with expansion: - "hello" != "hello1" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() != 6 ) -with expansion: - 5 != 6 - -------------------------------------------------------------------------------- -Inequality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven != 7 ) -with expansion: - 7 != 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one != Approx( 9.1f ) ) -with expansion: - 9.1f != Approx( 9.1000003815 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi != Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415926535 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello != "hello" ) -with expansion: - "hello" != "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() != 5 ) -with expansion: - 5 != 5 - -------------------------------------------------------------------------------- -Ordering comparison checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven < 8 ) -with expansion: - 7 < 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 6 ) -with expansion: - 7 > 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 0 ) -with expansion: - 7 > 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > -1 ) -with expansion: - 7 > -1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 7 ) -with expansion: - 7 >= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 6 ) -with expansion: - 7 >= 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 7 ) -with expansion: - 7 <= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 8 ) -with expansion: - 7 <= 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one > 9 ) -with expansion: - 9.1f > 9 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 10 ) -with expansion: - 9.1f < 10 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 9.2 ) -with expansion: - 9.1f < 9.2 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello <= "hello" ) -with expansion: - "hello" <= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello >= "hello" ) -with expansion: - "hello" >= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "hellp" ) -with expansion: - "hello" < "hellp" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "zebra" ) -with expansion: - "hello" < "zebra" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "hellm" ) -with expansion: - "hello" > "hellm" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "a" ) -with expansion: - "hello" > "a" - -------------------------------------------------------------------------------- -Ordering comparison checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 7 ) -with expansion: - 7 > 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 7 ) -with expansion: - 7 < 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 8 ) -with expansion: - 7 > 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 6 ) -with expansion: - 7 < 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 0 ) -with expansion: - 7 < 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < -1 ) -with expansion: - 7 < -1 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven >= 8 ) -with expansion: - 7 >= 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven <= 6 ) -with expansion: - 7 <= 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one < 9 ) -with expansion: - 9.1f < 9 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 10 ) -with expansion: - 9.1f > 10 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 9.2 ) -with expansion: - 9.1f > 9.2 - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hello" ) -with expansion: - "hello" > "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hello" ) -with expansion: - "hello" < "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hellp" ) -with expansion: - "hello" > "hellp" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "z" ) -with expansion: - "hello" > "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hellm" ) -with expansion: - "hello" < "hellm" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "a" ) -with expansion: - "hello" < "a" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello >= "z" ) -with expansion: - "hello" >= "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello <= "a" ) -with expansion: - "hello" <= "a" + -2147483648 > 2 ------------------------------------------------------------------------------- Comparisons with int literals don't warn when mixing signed/ unsigned @@ -851,390 +707,15 @@ with expansion: 4 ------------------------------------------------------------------------------- -comparisons between int variables +Contains string matcher ------------------------------------------------------------------------------- -ConditionTests.cpp: +MiscTests.cpp: ............................................................................... -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_char_var ) +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_short_var ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_int_var ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_long_var ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -comparisons between const int variables -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_char_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_short_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_int_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_long_var == 1 ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -Comparisons between unsigned ints and negative signed ints match c++ standard -behaviour -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - CHECK( ( -1 > 2u ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( -1 > 2u ) -with expansion: - -1 > 2 - -ConditionTests.cpp:: -PASSED: - CHECK( ( 2u < -1 ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( 2u < -1 ) -with expansion: - 2 < -1 - -ConditionTests.cpp:: -PASSED: - CHECK( ( minInt > 2u ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( minInt > 2u ) -with expansion: - -2147483648 > 2 - -------------------------------------------------------------------------------- -Comparisons between ints where one side is computed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - CHECK( 54 == 6*9 ) -with expansion: - 54 == 54 - -------------------------------------------------------------------------------- -Pointers can be compared to null -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( p == nullptr ) -with expansion: - NULL == nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( p == pNULL ) -with expansion: - NULL == NULL - -ConditionTests.cpp:: -PASSED: - REQUIRE( p != nullptr ) -with expansion: - 0x != nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( cp != nullptr ) -with expansion: - 0x != nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( cpc != nullptr ) -with expansion: - 0x != nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( returnsNull() == nullptr ) -with expansion: - {null string} == nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( returnsConstNull() == nullptr ) -with expansion: - {null string} == nullptr - -ConditionTests.cpp:: -PASSED: - REQUIRE( nullptr != p ) -with expansion: - nullptr != 0x - -------------------------------------------------------------------------------- -'Not' checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( false == false ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( true == true ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( !false ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( false ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( !falseValue ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( falseValue ) -with expansion: - !false - -ConditionTests.cpp:: -PASSED: - REQUIRE( !(1 == 2) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( 1 == 2 ) -with expansion: - !(1 == 2) - -------------------------------------------------------------------------------- -'Not' checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( false != false ) - -ConditionTests.cpp:: FAILED: - CHECK( true != true ) - -ConditionTests.cpp:: FAILED: - CHECK( !true ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( true ) - -ConditionTests.cpp:: FAILED: - CHECK( !trueValue ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( trueValue ) -with expansion: - !true - -ConditionTests.cpp:: FAILED: - CHECK( !(1 == 1) ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( 1 == 1 ) -with expansion: - !(1 == 1) - -------------------------------------------------------------------------------- -When checked exceptions are thrown they can be expected or unexpected -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_AS( thisThrows() ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_NOTHROW( thisDoesntThrow() ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS( thisThrows() ) - -------------------------------------------------------------------------------- -Expected exceptions that don't throw or unexpected exceptions fail the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisThrows() ) -due to unexpected exception with message: - expected exception - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisDoesntThrow() ) -because no exception was thrown where one was expected: - -ExceptionTests.cpp:: FAILED: - CHECK_NOTHROW( thisThrows() ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown directly they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -An unchecked exception reports the line of the last assertion -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - CHECK( 1 == 1 ) - -ExceptionTests.cpp:: 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: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from functions they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: 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: -............................................................................... - -ExceptionTests.cpp:: 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: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -Non-std exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom exception - -------------------------------------------------------------------------------- -Custom std-exceptions can be custom translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom std exception + "this string contains 'abc' as a substring" contains: "not there" ------------------------------------------------------------------------------- Custom exceptions can be translated when testing for nothrow @@ -1259,24 +740,192 @@ due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- -Unexpected exceptions can be translated +Custom std-exceptions can be custom translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... ExceptionTests.cpp:: FAILED: due to unexpected exception with message: - 3.14 + custom std exception ------------------------------------------------------------------------------- -NotImplemented exception +Demonstrate that a non-const == is not used ------------------------------------------------------------------------------- -ExceptionTests.cpp: +TrickyTests.cpp: ............................................................................... -ExceptionTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ) + REQUIRE( t == 1u ) +with expansion: + {?} == 1 + +------------------------------------------------------------------------------- +EndsWith string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) +with expansion: + "this string contains 'abc' as a substring" ends with: "this" + +------------------------------------------------------------------------------- +Equality checks that should fail +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven == 6 ) +with expansion: + 7 == 6 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven == 8 ) +with expansion: + 7 == 8 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven == 0 ) +with expansion: + 7 == 0 + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one == Approx( 9.11f ) ) +with expansion: + 9.1f == Approx( 9.1099996567 ) + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one == Approx( 9.0f ) ) +with expansion: + 9.1f == Approx( 9.0 ) + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one == Approx( 1 ) ) +with expansion: + 9.1f == Approx( 1.0 ) + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one == Approx( 0 ) ) +with expansion: + 9.1f == Approx( 0.0 ) + +ConditionTests.cpp:: FAILED: + CHECK( data.double_pi == Approx( 3.1415 ) ) +with expansion: + 3.1415926535 == Approx( 3.1415 ) + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello == "goodbye" ) +with expansion: + "hello" == "goodbye" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello == "hell" ) +with expansion: + "hello" == "hell" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello == "hello1" ) +with expansion: + "hello" == "hello1" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello.size() == 6 ) +with expansion: + 5 == 6 + +ConditionTests.cpp:: FAILED: + CHECK( x == Approx( 1.301 ) ) +with expansion: + 1.3 == Approx( 1.301 ) + +------------------------------------------------------------------------------- +Equality checks that should succeed +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven == 7 ) +with expansion: + 7 == 7 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ) +with expansion: + 9.1f == Approx( 9.1000003815 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.double_pi == Approx( 3.1415926535 ) ) +with expansion: + 3.1415926535 == Approx( 3.1415926535 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello == "hello" ) +with expansion: + "hello" == "hello" + +ConditionTests.cpp:: +PASSED: + REQUIRE( "hello" == data.str_hello ) +with expansion: + "hello" == "hello" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello.size() == 5 ) +with expansion: + 5 == 5 + +ConditionTests.cpp:: +PASSED: + REQUIRE( x == Approx( 1.3 ) ) +with expansion: + 1.3 == Approx( 1.3 ) + +------------------------------------------------------------------------------- +Equals +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +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" + +------------------------------------------------------------------------------- +Equals string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: 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: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE_THAT( "", Equals(nullptr) ) +with expansion: + "" equals: "" ------------------------------------------------------------------------------- Exception messages can be tested for @@ -1324,1315 +973,78 @@ PASSED: REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) ) ------------------------------------------------------------------------------- -Mismatching exception messages failing the test +Expected exceptions that don't throw or unexpected exceptions fail the test ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) +ExceptionTests.cpp:: FAILED: + CHECK_THROWS_AS( thisThrows() ) +due to unexpected exception with message: + expected exception ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) -with expansion: + CHECK_THROWS_AS( thisDoesntThrow() ) +because no exception was thrown where one was expected: + +ExceptionTests.cpp:: FAILED: + CHECK_NOTHROW( thisThrows() ) +due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -Generators over two ranges +FAIL aborts the test ------------------------------------------------------------------------------- -GeneratorTests.cpp: +MessageTests.cpp: ............................................................................... -GeneratorTests.cpp:: +MessageTests.cpp:: FAILED: +explicitly with message: + This is a failure + +------------------------------------------------------------------------------- +FAIL does not require an argument +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + +------------------------------------------------------------------------------- +Factorials are computed +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) + REQUIRE( Factorial(0) == 1 ) +with expansion: + 1 == 1 + +MiscTests.cpp:: +PASSED: + REQUIRE( Factorial(1) == 1 ) +with expansion: + 1 == 1 + +MiscTests.cpp:: +PASSED: + REQUIRE( Factorial(2) == 2 ) with expansion: 2 == 2 -GeneratorTests.cpp:: +MiscTests.cpp:: PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) + REQUIRE( Factorial(3) == 6 ) with expansion: 6 == 6 -GeneratorTests.cpp:: +MiscTests.cpp:: PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) + REQUIRE( Factorial(10) == 3628800 ) with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 + 3628800 (0x) == 3628800 (0x) ------------------------------------------------------------------------------- Generator over a range of pairs @@ -2658,6 +1070,1302 @@ PASSED: with expansion: 2 == 2 +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 200 == 200 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 202 == 202 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 204 == 204 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 206 == 206 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 208 == 208 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 210 == 210 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 212 == 212 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 2 == 2 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 4 == 4 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 6 == 6 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 8 == 8 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 10 == 10 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 30 == 30 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 40 == 40 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 42 == 42 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + +------------------------------------------------------------------------------- +Generators over two ranges +------------------------------------------------------------------------------- +GeneratorTests.cpp: +............................................................................... + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) +with expansion: + 72 == 72 + +GeneratorTests.cpp:: +PASSED: + CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) +with expansion: + 214 == 214 + ------------------------------------------------------------------------------- INFO and WARN do not abort tests ------------------------------------------------------------------------------- @@ -2669,17 +2377,6 @@ warning: this is a message this is a warning -------------------------------------------------------------------------------- -SUCCEED counts as a test pass -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: -with message: - this is a success - ------------------------------------------------------------------------------- INFO gets logged on failure ------------------------------------------------------------------------------- @@ -2731,1726 +2428,107 @@ with message: but not this ------------------------------------------------------------------------------- -FAIL aborts the test +Inequality checks that should fail ------------------------------------------------------------------------------- -MessageTests.cpp: +ConditionTests.cpp: ............................................................................... -MessageTests.cpp:: FAILED: -explicitly with message: - This is a failure - -------------------------------------------------------------------------------- -FAIL does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - -------------------------------------------------------------------------------- -SUCCESS does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -Output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section one - -------------------------------------------------------------------------------- -Output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section two - -Message from section one -------------------------------------------------------------------------------- -Standard output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - - -No assertions in section 'one' - -Message from section two -------------------------------------------------------------------------------- -Standard output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - - -No assertions in section 'two' - -------------------------------------------------------------------------------- -SCOPED_INFO is reset for each loop -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 0 < 10 -with messages: - current counter 0 - i := 0 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 1 < 10 -with messages: - current counter 1 - i := 1 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 2 < 10 -with messages: - current counter 2 - i := 2 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 3 < 10 -with messages: - current counter 3 - i := 3 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 4 < 10 -with messages: - current counter 4 - i := 4 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 5 < 10 -with messages: - current counter 5 - i := 5 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 6 < 10 -with messages: - current counter 6 - i := 6 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 7 < 10 -with messages: - current counter 7 - i := 7 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 8 < 10 -with messages: - current counter 8 - i := 8 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 9 < 10 -with messages: - current counter 9 - i := 9 - -MessageTests.cpp:: 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: -............................................................................... - -MessageTests.cpp:: -FAILED - but was ok: - CHECK_NOFAIL( 1 == 2 ) - -------------------------------------------------------------------------------- -just failure -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Previous info should not be seen - -------------------------------------------------------------------------------- -sends information to INFO -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -Pointers can be converted to strings -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - actual address of p: 0x - -MessageTests.cpp:: -warning: - toString(p): 0x - -------------------------------------------------------------------------------- -random SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( b != a ) -with expansion: - 2 != 1 - -------------------------------------------------------------------------------- -random SECTION tests - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -nested SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( b != a ) -with expansion: - 2 != 1 - -------------------------------------------------------------------------------- -nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( a == b ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s3 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s4 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a < b ) -with expansion: - 1 < 2 - -------------------------------------------------------------------------------- -even more nested SECTION tests - c - d (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -even more nested SECTION tests - c - e (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -even more nested SECTION tests - f (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -looped SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( b > a ) -with expansion: - 0 > 1 - -------------------------------------------------------------------------------- -looped tests -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[0] (1) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[1] (1) is even - -MiscTests.cpp:: -PASSED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 0 == 0 -with message: - Testing if fib[2] (2) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[3] (3) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[4] (5) is even - -MiscTests.cpp:: -PASSED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 0 == 0 -with message: - Testing if fib[5] (8) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[6] (13) is even - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( makeString( false ) != static_cast(nullptr) ) -with expansion: - "valid string" != {null string} - -MiscTests.cpp:: -PASSED: - REQUIRE( makeString( true ) == static_cast(nullptr) ) -with expansion: - {null string} == {null string} - -------------------------------------------------------------------------------- -checkedIf -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECKED_IF( flag ) -with expansion: - true - -MiscTests.cpp:: -PASSED: - REQUIRE( testCheckedIf( true ) ) -with expansion: - true - -------------------------------------------------------------------------------- -checkedIf, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_IF( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedIf( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -checkedElse -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECKED_ELSE( flag ) -with expansion: - true - -MiscTests.cpp:: -PASSED: - REQUIRE( testCheckedElse( true ) ) -with expansion: - true - -------------------------------------------------------------------------------- -checkedElse, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_ELSE( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedElse( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -xmlentitycheck - embedded xml -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -xmlentitycheck - encoded chars -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -send a single char to INFO -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( false ) -with message: - 3 - -------------------------------------------------------------------------------- -atomic if -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( x == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -String matchers -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE_THAT( testStringForMatching(), Contains( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "string" - -MiscTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), Contains( "abc" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "abc" - -MiscTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), StartsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "this" - -MiscTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "substring" - -------------------------------------------------------------------------------- -Contains string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "not there" - -------------------------------------------------------------------------------- -StartsWith string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "string" - -------------------------------------------------------------------------------- -EndsWith string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "this" - -------------------------------------------------------------------------------- -Equals string matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE_THAT( "", Equals(nullptr) ) -with expansion: - "" equals: "" - -------------------------------------------------------------------------------- -AllOf matcher -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -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:: -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: -............................................................................... - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -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:: -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: -............................................................................... - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" not contains: "substring" - -------------------------------------------------------------------------------- -Factorials are computed -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(0) == 1 ) -with expansion: - 1 == 1 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(1) == 1 ) -with expansion: - 1 == 1 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(2) == 2 ) -with expansion: - 2 == 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(3) == 6 ) -with expansion: - 6 == 6 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(10) == 3628800 ) -with expansion: - 3628800 (0x) == 3628800 (0x) - -------------------------------------------------------------------------------- -Nice descriptive name -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -warning: - This one ran - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing bigger changes size and capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 10 ) -with expansion: - 10 == 10 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing smaller changes size but not capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - reserving bigger changes capacity but not size -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure - Outer - Inner -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - that's not flying - that's failing in style - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: -explicitly with message: - to infinity and beyond - -------------------------------------------------------------------------------- -not allowed -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -Tabs and newlines show in output -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: 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: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on const wchar_t pointer returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on wchar_t const pointer returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on wchar_t returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -XmlEncode - normal string -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "normal string" ) == "normal string" ) -with expansion: - "normal string" == "normal string" - -------------------------------------------------------------------------------- -XmlEncode - empty string -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "" ) == "" ) -with expansion: - "" == "" - -------------------------------------------------------------------------------- -XmlEncode - string with ampersand -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith & jones" ) == "smith & jones" ) -with expansion: - "smith & jones" == "smith & jones" - -------------------------------------------------------------------------------- -XmlEncode - string with less-than -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith < jones" ) == "smith < jones" ) -with expansion: - "smith < jones" == "smith < jones" - -------------------------------------------------------------------------------- -XmlEncode - string with greater-than -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith > jones" ) == "smith > jones" ) -with expansion: - "smith > jones" == "smith > jones" - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" ) -with expansion: - "smith ]]> jones" - == - "smith ]]> jones" - -------------------------------------------------------------------------------- -XmlEncode - string with quotes -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( stringWithQuotes ) == stringWithQuotes ) -with expansion: - "don't "quote" me on that" - == - "don't "quote" me on that" - -MiscTests.cpp:: -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: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "[\x01]" ) == "[]" ) -with expansion: - "[]" == "[]" - -------------------------------------------------------------------------------- -XmlEncode - string with control char (x7F) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "[\x7F]" ) == "[]" ) -with expansion: - "[]" == "[]" - -------------------------------------------------------------------------------- -long long -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( l == std::numeric_limits::max() ) -with expansion: - 9223372036854775807 (0x) - == - 9223372036854775807 (0x) - -------------------------------------------------------------------------------- -This test 'should' fail but doesn't -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - oops! - -------------------------------------------------------------------------------- -# A test name that starts with a # -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - yay - -------------------------------------------------------------------------------- -Process can be configured on command line - default - no arguments -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - CHECK( config.shouldDebugBreak == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - CHECK( config.abortAfter == -1 ) -with expansion: - -1 == -1 - -TestMain.cpp:: -PASSED: - CHECK( config.noThrow == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - CHECK( config.reporterNames.empty() ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - test lists - 1 test -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -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: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -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: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r/console -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "console" ) -with expansion: - "console" == "console" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r/xml -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "xml" ) -with expansion: - "xml" == "xml" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r xml and junit -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames.size() == 2 ) -with expansion: - 2 == 2 - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "xml" ) -with expansion: - "xml" == "xml" - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[1] == "junit" ) -with expansion: - "junit" == "junit" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - --reporter/junit -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "junit" ) -with expansion: - "junit" == "junit" - -------------------------------------------------------------------------------- -Process can be configured on command line - debugger - -b -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.shouldDebugBreak == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - debugger - --break -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.shouldDebugBreak ) +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven != 7 ) with expansion: - true + 7 != 7 -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -a aborts after first failure -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.abortAfter == 1 ) +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one != Approx( 9.1f ) ) with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x 2 aborts after two failures -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + 9.1f != Approx( 9.1000003815 ) -TestMain.cpp:: -PASSED: - REQUIRE( config.abortAfter == 2 ) +ConditionTests.cpp:: FAILED: + CHECK( data.double_pi != Approx( 3.1415926535 ) ) with expansion: - 2 == 2 - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x must be greater than zero -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... + 3.1415926535 != Approx( 3.1415926535 ) -TestMain.cpp:: -PASSED: - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) ) +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello != "hello" ) with expansion: - "Value after -x or --abortAfter must be greater than zero - - while parsing: (-x, --abortx )" contains: "greater than zero" - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x must be numeric -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... + "hello" != "hello" -TestMain.cpp:: -PASSED: - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) ) +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello.size() != 5 ) with expansion: - "Unable to convert oops to destination type - - while parsing: (-x, --abortx )" contains: "-x" + 5 != 5 ------------------------------------------------------------------------------- -Process can be configured on command line - nothrow - -e +Inequality checks that should succeed ------------------------------------------------------------------------------- -TestMain.cpp: +ConditionTests.cpp: ............................................................................... -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.noThrow == true ) + REQUIRE( data.int_seven != 6 ) with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - nothrow - --nothrow -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + 7 != 6 -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - REQUIRE( config.noThrow == true ) + REQUIRE( data.int_seven != 8 ) with expansion: - true == true + 7 != 8 -------------------------------------------------------------------------------- -Process can be configured on command line - output filename - -o filename -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.outputFilename == "filename.ext" ) + REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) with expansion: - "filename.ext" == "filename.ext" - -------------------------------------------------------------------------------- -Process can be configured on command line - output filename - --out -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + 9.1f != Approx( 9.1099996567 ) -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - REQUIRE( config.outputFilename == "filename.ext" ) + REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) with expansion: - "filename.ext" == "filename.ext" - -------------------------------------------------------------------------------- -Process can be configured on command line - combinations - Single character flags can be combined -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... + 9.1f != Approx( 9.0 ) -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - CHECK( config.abortAfter == 1 ) + REQUIRE( data.float_nine_point_one != Approx( 1 ) ) with expansion: - 1 == 1 + 9.1f != Approx( 1.0 ) -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK( config.shouldDebugBreak ) + REQUIRE( data.float_nine_point_one != Approx( 0 ) ) with expansion: - true + 9.1f != Approx( 0.0 ) -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK( config.noThrow == true ) + REQUIRE( data.double_pi != Approx( 3.1415 ) ) with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - without option -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + 3.1415926535 != Approx( 3.1415 ) -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - REQUIRE( config.useColour == UseColour::Auto ) + REQUIRE( data.str_hello != "goodbye" ) with expansion: - 0 == 0 + "hello" != "goodbye" -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - auto -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::Auto ) + REQUIRE( data.str_hello != "hell" ) with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - yes -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + "hello" != "hell" -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - REQUIRE( config.useColour == UseColour::Yes ) + REQUIRE( data.str_hello != "hello1" ) with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - no -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... + "hello" != "hello1" -TestMain.cpp:: +ConditionTests.cpp:: PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::No ) + REQUIRE( data.str_hello.size() != 6 ) with expansion: - 2 == 2 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - error -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) ) + 5 != 6 ------------------------------------------------------------------------------- Long strings can be wrapped @@ -4905,163 +2983,6 @@ with expansion: five six" -------------------------------------------------------------------------------- -replaceInPlace - replace single char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "b", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "azcdefcg" ) -with expansion: - "azcdefcg" == "azcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - replace two chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "c", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "abzdefzg" ) -with expansion: - "abzdefzg" == "abzdefzg" - -------------------------------------------------------------------------------- -replaceInPlace - replace first char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "a", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "zbcdefcg" ) -with expansion: - "zbcdefcg" == "zbcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - replace last char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "g", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "abcdefcz" ) -with expansion: - "abcdefcz" == "abcdefcz" - -------------------------------------------------------------------------------- -replaceInPlace - replace all chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, letters, "replaced" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "replaced" ) -with expansion: - "replaced" == "replaced" - -------------------------------------------------------------------------------- -replaceInPlace - replace no chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_FALSE( replaceInPlace( letters, "x", "z" ) ) -with expansion: - !false - -TestMain.cpp:: -PASSED: - CHECK( letters == letters ) -with expansion: - "abcdefcg" == "abcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - escape ' -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( s, "'", "|'" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( s == "didn|'t" ) -with expansion: - "didn|'t" == "didn|'t" - -hello -hello -------------------------------------------------------------------------------- -Text can be formatted using the Text class -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( "hi there" ).toString() == "hi there" ) -with expansion: - "hi there" == "hi there" - -TestMain.cpp:: -PASSED: - CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" ) -with expansion: - "hi - there" - == - "hi - there" - ------------------------------------------------------------------------------- Long text is truncted ------------------------------------------------------------------------------- @@ -6086,214 +4007,130 @@ with message: was called ------------------------------------------------------------------------------- -Parsing a std::pair +Matchers can be (AllOf) composed with the && operator ------------------------------------------------------------------------------- -TrickyTests.cpp: +MiscTests.cpp: ............................................................................... -TrickyTests.cpp:: +MiscTests.cpp:: PASSED: - REQUIRE( (std::pair( 1, 2 )) == aNicePair ) + CHECK_THAT( testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) ) with expansion: - std::pair( 1, 2 ) == std::pair( 1, 2 ) + "this string contains 'abc' as a substring" ( contains: "string" and + contains: "abc" and contains: "substring" and contains: "contains" ) ------------------------------------------------------------------------------- -Where there is more to the expression after the RHS +Matchers can be (AnyOf) composed with the || operator ------------------------------------------------------------------------------- -TrickyTests.cpp: +MiscTests.cpp: ............................................................................... -TrickyTests.cpp:: +MiscTests.cpp:: +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:: +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: +............................................................................... + +MiscTests.cpp:: +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: +............................................................................... + +MiscTests.cpp:: 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: +............................................................................... + +MiscTests.cpp:: +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: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) +with expansion: + "this string contains 'abc' as a substring" not contains: "substring" + +------------------------------------------------------------------------------- +Mismatching exception messages failing the test +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: +PASSED: + REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) + +ExceptionTests.cpp:: FAILED: + REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) +with expansion: + expected exception + +------------------------------------------------------------------------------- +Nice descriptive name +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: warning: - Uncomment the code in this test to check that it gives a sensible compiler - error + This one ran ------------------------------------------------------------------------------- -Where the LHS is not a simple value +Non-std exceptions can be translated ------------------------------------------------------------------------------- -TrickyTests.cpp: +ExceptionTests.cpp: ............................................................................... -TrickyTests.cpp:: -warning: - Uncomment the code in this test to check that it gives a sensible compiler - error +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + custom exception ------------------------------------------------------------------------------- -A failing expression with a non streamable type is still captured +NotImplemented exception ------------------------------------------------------------------------------- -TrickyTests.cpp: +ExceptionTests.cpp: ............................................................................... -TrickyTests.cpp:: FAILED: - CHECK( &o1 == &o2 ) -with expansion: - 0x == 0x - -TrickyTests.cpp:: FAILED: - CHECK( o1 == o2 ) -with expansion: - {?} == {?} - -------------------------------------------------------------------------------- -string literals of different sizes can be compared -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: FAILED: - REQUIRE( std::string( "first" ) == "second" ) -with expansion: - "first" == "second" - -------------------------------------------------------------------------------- -An expression with side-effects should only be evaluated once -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: +ExceptionTests.cpp:: PASSED: - REQUIRE( i++ == 7 ) -with expansion: - 7 == 7 - -TrickyTests.cpp:: -PASSED: - REQUIRE( i++ == 8 ) -with expansion: - 8 == 8 - -------------------------------------------------------------------------------- -Operators at different namespace levels not hijacked by Koenig lookup -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( 0x == o ) -with expansion: - 3221225472 (0x) == {?} - -------------------------------------------------------------------------------- -Demonstrate that a non-const == is not used -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( t == 1u ) -with expansion: - {?} == 1 - -------------------------------------------------------------------------------- -Test enum bit values -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( 0x == bit30and31 ) -with expansion: - 3221225472 (0x) == 3221225472 - -------------------------------------------------------------------------------- -boolean member -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( obj.prop != nullptr ) -with expansion: - 0x != nullptr - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - compare to true -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value == true ) -with expansion: - true == true - -TrickyTests.cpp:: -PASSED: - REQUIRE( true == is_true::value ) -with expansion: - true == true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - compare to false -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value == false ) -with expansion: - false == false - -TrickyTests.cpp:: -PASSED: - REQUIRE( false == is_true::value ) -with expansion: - false == false - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - negation -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( !is_true::value ) -with expansion: - true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - double negation -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( !!is_true::value ) -with expansion: - true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - direct -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - REQUIRE_FALSE( is_true::value ) -with expansion: - !false + REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ) ------------------------------------------------------------------------------- Objects that evaluated in boolean contexts can be checked @@ -6320,1412 +4157,247 @@ with expansion: !false ------------------------------------------------------------------------------- -Assertions then sections +Operators at different namespace levels not hijacked by Koenig lookup ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... TrickyTests.cpp:: PASSED: - REQUIRE( Catch::alwaysTrue() ) + REQUIRE( 0x == o ) with expansion: - true + 3221225472 (0x) == {?} ------------------------------------------------------------------------------- -Assertions then sections - A section +Ordering comparison checks that should fail ------------------------------------------------------------------------------- -TrickyTests.cpp: +ConditionTests.cpp: ............................................................................... -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven > 7 ) with expansion: - true + 7 > 7 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven < 7 ) +with expansion: + 7 < 7 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven > 8 ) +with expansion: + 7 > 8 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven < 6 ) +with expansion: + 7 < 6 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven < 0 ) +with expansion: + 7 < 0 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven < -1 ) +with expansion: + 7 < -1 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven >= 8 ) +with expansion: + 7 >= 8 + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven <= 6 ) +with expansion: + 7 <= 6 + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one < 9 ) +with expansion: + 9.1f < 9 + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one > 10 ) +with expansion: + 9.1f > 10 + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one > 9.2 ) +with expansion: + 9.1f > 9.2 + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello > "hello" ) +with expansion: + "hello" > "hello" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello < "hello" ) +with expansion: + "hello" < "hello" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello > "hellp" ) +with expansion: + "hello" > "hellp" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello > "z" ) +with expansion: + "hello" > "z" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello < "hellm" ) +with expansion: + "hello" < "hellm" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello < "a" ) +with expansion: + "hello" < "a" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello >= "z" ) +with expansion: + "hello" >= "z" + +ConditionTests.cpp:: FAILED: + CHECK( data.str_hello <= "a" ) +with expansion: + "hello" <= "a" ------------------------------------------------------------------------------- -Assertions then sections - A section - Another section +Ordering comparison checks that should succeed ------------------------------------------------------------------------------- -TrickyTests.cpp: +ConditionTests.cpp: ............................................................................... -TrickyTests.cpp:: +ConditionTests.cpp:: PASSED: - REQUIRE( Catch::alwaysTrue() ) + REQUIRE( data.int_seven < 8 ) with expansion: - true + 7 < 8 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven > 6 ) +with expansion: + 7 > 6 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven > 0 ) +with expansion: + 7 > 0 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven > -1 ) +with expansion: + 7 > -1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven >= 7 ) +with expansion: + 7 >= 7 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven >= 6 ) +with expansion: + 7 >= 6 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven <= 7 ) +with expansion: + 7 <= 7 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven <= 8 ) +with expansion: + 7 <= 8 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one > 9 ) +with expansion: + 9.1f > 9 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one < 10 ) +with expansion: + 9.1f < 10 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one < 9.2 ) +with expansion: + 9.1f < 9.2 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello <= "hello" ) +with expansion: + "hello" <= "hello" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello >= "hello" ) +with expansion: + "hello" >= "hello" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello < "hellp" ) +with expansion: + "hello" < "hellp" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello < "zebra" ) +with expansion: + "hello" < "zebra" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello > "hellm" ) +with expansion: + "hello" > "hellm" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello > "a" ) +with expansion: + "hello" > "a" ------------------------------------------------------------------------------- -Assertions then sections +Output from all sections is reported + one ------------------------------------------------------------------------------- -TrickyTests.cpp: +MessageTests.cpp: ............................................................................... -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true +MessageTests.cpp:: FAILED: +explicitly with message: + Message from section one ------------------------------------------------------------------------------- -Assertions then sections - A section +Output from all sections is reported + two ------------------------------------------------------------------------------- -TrickyTests.cpp: +MessageTests.cpp: ............................................................................... -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections - A section - Another other section -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -non streamable - with conv. op -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( s == "7" ) -with expansion: - "7" == "7" - -------------------------------------------------------------------------------- -Comparing function pointers -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( a ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - REQUIRE( a == &foo ) -with expansion: - 0x == 0x - -------------------------------------------------------------------------------- -Comparing member function pointers -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - CHECK( m == &S::f ) -with expansion: - 0x - == - 0x - -------------------------------------------------------------------------------- -pointer to class -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( p == 0 ) -with expansion: - NULL == 0 - -------------------------------------------------------------------------------- -null_ptr -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( ptr.get() == nullptr ) -with expansion: - NULL == nullptr - -------------------------------------------------------------------------------- -X/level/0/a -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/0/b -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/1/a -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/1/b -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -toString( has_toString ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "toString( has_toString )" ) -with expansion: - "toString( has_toString )" - == - "toString( has_toString )" - -------------------------------------------------------------------------------- -toString( has_maker ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "StringMaker" ) -with expansion: - "StringMaker" - == - "StringMaker" - -------------------------------------------------------------------------------- -toString( has_maker_and_toString ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" ) -with expansion: - "toString( has_maker_and_toString )" - == - "toString( has_maker_and_toString )" - -------------------------------------------------------------------------------- -toString( vectors -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( v ) == "{ {?} }" ) -with expansion: - "{ {?} }" == "{ {?} }" - -------------------------------------------------------------------------------- -toString( vectors -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( v ) == "{ StringMaker }" ) -with expansion: - "{ StringMaker }" - == - "{ StringMaker }" - -------------------------------------------------------------------------------- -toString( vectors -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( v ) == "{ StringMaker }" ) -with expansion: - "{ StringMaker }" - == - "{ StringMaker }" - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - fail one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - fail one section - re-enter after failed section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - fail one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - fail one section - re-enter after failed section and find next section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -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: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -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: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isSuccessfullyCompleted() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -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: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -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: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - open a nested section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - close outer section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - close outer section - Re-enter for second generation -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Start a new inner section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -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: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Fail an inner section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Fail an inner section - Re-enter for second generation -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -std::pair -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" ) -with expansion: - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - -------------------------------------------------------------------------------- -std::pair -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" ) -with expansion: - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - -------------------------------------------------------------------------------- -std::vector > -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" ) -with expansion: - "{ { "green", 55 } }" - == - "{ { "green", 55 } }" - -------------------------------------------------------------------------------- -pair > -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" ) -with expansion: - "{ { 42, "Arthur" }, { "Ford", 24 } }" - == - "{ { 42, "Arthur" }, { "Ford", 24 } }" - -------------------------------------------------------------------------------- -vector -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42 }" ) -with expansion: - "{ 42 }" == "{ 42 }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ) -with expansion: - "{ 42, 250 }" == "{ 42, 250 }" - -------------------------------------------------------------------------------- -vector -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ \"hello\" }" ) -with expansion: - "{ "hello" }" == "{ "hello" }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" ) -with expansion: - "{ "hello", "world" }" - == - "{ "hello", "world" }" - -------------------------------------------------------------------------------- -vector -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42 }" ) -with expansion: - "{ 42 }" == "{ 42 }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ) -with expansion: - "{ 42, 250 }" == "{ 42, 250 }" - -------------------------------------------------------------------------------- -vec> -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(v) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" ) -with expansion: - "{ { "hello" }, { "world" } }" - == - "{ { "hello" }, { "world" } }" +MessageTests.cpp:: FAILED: +explicitly with message: + Message from section two ------------------------------------------------------------------------------- Parse test names and tags @@ -8755,194 +5427,717 @@ with expansion: true == true ------------------------------------------------------------------------------- -tuple<> +Parsing a std::pair ------------------------------------------------------------------------------- -ToStringTuple.cpp: +TrickyTests.cpp: ............................................................................... -ToStringTuple.cpp:: +TrickyTests.cpp:: PASSED: - CHECK( "{ }" == Catch::toString(type{}) ) + REQUIRE( (std::pair( 1, 2 )) == aNicePair ) with expansion: - "{ }" == "{ }" - -ToStringTuple.cpp:: -PASSED: - CHECK( "{ }" == Catch::toString(value) ) -with expansion: - "{ }" == "{ }" + std::pair( 1, 2 ) == std::pair( 1, 2 ) ------------------------------------------------------------------------------- -tuple +Pointers can be compared to null ------------------------------------------------------------------------------- -ToStringTuple.cpp: +ConditionTests.cpp: ............................................................................... -ToStringTuple.cpp:: +ConditionTests.cpp:: PASSED: - CHECK( "{ 0 }" == Catch::toString(type{0}) ) + REQUIRE( p == nullptr ) with expansion: - "{ 0 }" == "{ 0 }" + NULL == nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( p == pNULL ) +with expansion: + NULL == NULL + +ConditionTests.cpp:: +PASSED: + REQUIRE( p != nullptr ) +with expansion: + 0x != nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( cp != nullptr ) +with expansion: + 0x != nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( cpc != nullptr ) +with expansion: + 0x != nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( returnsNull() == nullptr ) +with expansion: + {null string} == nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( returnsConstNull() == nullptr ) +with expansion: + {null string} == nullptr + +ConditionTests.cpp:: +PASSED: + REQUIRE( nullptr != p ) +with expansion: + nullptr != 0x ------------------------------------------------------------------------------- -tuple +Pointers can be converted to strings ------------------------------------------------------------------------------- -ToStringTuple.cpp: +MessageTests.cpp: ............................................................................... -ToStringTuple.cpp:: -PASSED: - CHECK( "1.2f" == Catch::toString(float(1.2)) ) -with expansion: - "1.2f" == "1.2f" +MessageTests.cpp:: +warning: + actual address of p: 0x -ToStringTuple.cpp:: -PASSED: - CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) ) -with expansion: - "{ 1.2f, 0 }" == "{ 1.2f, 0 }" +MessageTests.cpp:: +warning: + toString(p): 0x ------------------------------------------------------------------------------- -tuple +Process can be configured on command line + default - no arguments ------------------------------------------------------------------------------- -ToStringTuple.cpp: +TestMain.cpp: ............................................................................... -ToStringTuple.cpp:: +TestMain.cpp:: PASSED: - CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) ) + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + CHECK( config.shouldDebugBreak == false ) with expansion: - "{ "hello", "world" }" - == - "{ "hello", "world" }" + false == false + +TestMain.cpp:: +PASSED: + CHECK( config.abortAfter == -1 ) +with expansion: + -1 == -1 + +TestMain.cpp:: +PASSED: + CHECK( config.noThrow == false ) +with expansion: + false == false + +TestMain.cpp:: +PASSED: + CHECK( config.reporterNames.empty() ) +with expansion: + true ------------------------------------------------------------------------------- -tuple,tuple<>,float> +Process can be configured on command line + test lists + 1 test ------------------------------------------------------------------------------- -ToStringTuple.cpp: +TestMain.cpp: ............................................................................... -ToStringTuple.cpp:: +TestMain.cpp:: PASSED: - CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) ) + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false ) with expansion: - "{ { 42 }, { }, 1.2f }" - == - "{ { 42 }, { }, 1.2f }" + false == false + +TestMain.cpp:: +PASSED: + REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) ) +with expansion: + true ------------------------------------------------------------------------------- -tuple +Process can be configured on command line + test lists + Specify one test case exclusion using exclude: ------------------------------------------------------------------------------- -ToStringTuple.cpp: +TestMain.cpp: ............................................................................... -ToStringTuple.cpp:: +TestMain.cpp:: PASSED: - CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) ) + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) with expansion: - "{ nullptr, 42, "Catch me" }" - == - "{ nullptr, 42, "Catch me" }" + false == false + +TestMain.cpp:: +PASSED: + REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ) +with expansion: + true ------------------------------------------------------------------------------- -Tag alias can be registered against tag patterns - The same tag alias can only be registered once +Process can be configured on command line + test lists + Specify one test case exclusion using ~ ------------------------------------------------------------------------------- -TagAliasTests.cpp: +TestMain.cpp: ............................................................................... -TagAliasTests.cpp:: +TestMain.cpp:: 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]" + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) -TagAliasTests.cpp:: +TestMain.cpp:: PASSED: - CHECK_THAT( what, Contains( "file" ) ) + REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: - "file" + false == false -TagAliasTests.cpp:: +TestMain.cpp:: PASSED: - CHECK_THAT( what, Contains( "2" ) ) + REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ) with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: - "2" - -TagAliasTests.cpp:: -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" + true ------------------------------------------------------------------------------- -Tag alias can be registered against tag patterns - Tag aliases must be of the form [@name] +Process can be configured on command line + reporter + -r/console ------------------------------------------------------------------------------- -TagAliasTests.cpp: +TestMain.cpp: ............................................................................... -TagAliasTests.cpp:: +TestMain.cpp:: PASSED: - CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) ) + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) -TagAliasTests.cpp:: +TestMain.cpp:: PASSED: - CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) ) + REQUIRE( config.reporterNames[0] == "console" ) +with expansion: + "console" == "console" ------------------------------------------------------------------------------- -Anonymous test case 1 +Process can be configured on command line + reporter + -r/xml ------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: +TestMain.cpp: ............................................................................... -VariadicMacrosTests.cpp:: +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.reporterNames[0] == "xml" ) +with expansion: + "xml" == "xml" + +------------------------------------------------------------------------------- +Process can be configured on command line + reporter + -r xml and junit +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.reporterNames.size() == 2 ) +with expansion: + 2 == 2 + +TestMain.cpp:: +PASSED: + REQUIRE( config.reporterNames[0] == "xml" ) +with expansion: + "xml" == "xml" + +TestMain.cpp:: +PASSED: + REQUIRE( config.reporterNames[1] == "junit" ) +with expansion: + "junit" == "junit" + +------------------------------------------------------------------------------- +Process can be configured on command line + reporter + --reporter/junit +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.reporterNames[0] == "junit" ) +with expansion: + "junit" == "junit" + +------------------------------------------------------------------------------- +Process can be configured on command line + debugger + -b +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.shouldDebugBreak == true ) +with expansion: + true == true + +------------------------------------------------------------------------------- +Process can be configured on command line + debugger + --break +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.shouldDebugBreak ) +with expansion: + true + +------------------------------------------------------------------------------- +Process can be configured on command line + abort + -a aborts after first failure +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +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: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +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: +............................................................................... + +TestMain.cpp:: +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 )" contains: "greater than zero" + +------------------------------------------------------------------------------- +Process can be configured on command line + abort + -x must be numeric +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) ) +with expansion: + "Unable to convert oops to destination type + - while parsing: (-x, --abortx )" contains: "-x" + +------------------------------------------------------------------------------- +Process can be configured on command line + nothrow + -e +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.noThrow == true ) +with expansion: + true == true + +------------------------------------------------------------------------------- +Process can be configured on command line + nothrow + --nothrow +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.noThrow == true ) +with expansion: + true == true + +------------------------------------------------------------------------------- +Process can be configured on command line + output filename + -o filename +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.outputFilename == "filename.ext" ) +with expansion: + "filename.ext" == "filename.ext" + +------------------------------------------------------------------------------- +Process can be configured on command line + output filename + --out +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +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: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + CHECK( config.abortAfter == 1 ) +with expansion: + 1 == 1 + +TestMain.cpp:: +PASSED: + CHECK( config.shouldDebugBreak ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( config.noThrow == true ) +with expansion: + true == true + +------------------------------------------------------------------------------- +Process can be configured on command line + use-colour + without option +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.useColour == UseColour::Auto ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Process can be configured on command line + use-colour + auto +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.useColour == UseColour::Auto ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Process can be configured on command line + use-colour + yes +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.useColour == UseColour::Yes ) +with expansion: + 1 == 1 + +------------------------------------------------------------------------------- +Process can be configured on command line + use-colour + no +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_NOTHROW( parseIntoConfig( argv, config ) ) + +TestMain.cpp:: +PASSED: + REQUIRE( config.useColour == UseColour::No ) +with expansion: + 2 == 2 + +------------------------------------------------------------------------------- +Process can be configured on command line + use-colour + error +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) ) + +------------------------------------------------------------------------------- +SCOPED_INFO is reset for each loop +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 0 < 10 +with messages: + current counter 0 + i := 0 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 1 < 10 +with messages: + current counter 1 + i := 1 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 2 < 10 +with messages: + current counter 2 + i := 2 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 3 < 10 +with messages: + current counter 3 + i := 3 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 4 < 10 +with messages: + current counter 4 + i := 4 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 5 < 10 +with messages: + current counter 5 + i := 5 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 6 < 10 +with messages: + current counter 6 + i := 6 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 7 < 10 +with messages: + current counter 7 + i := 7 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 8 < 10 +with messages: + current counter 8 + i := 8 + +MessageTests.cpp:: +PASSED: + REQUIRE( i < 10 ) +with expansion: + 9 < 10 +with messages: + current counter 9 + i := 9 + +MessageTests.cpp:: FAILED: + REQUIRE( i < 10 ) +with expansion: + 10 < 10 +with messages: + current counter 10 + i := 10 + +------------------------------------------------------------------------------- +SUCCEED counts as a test pass +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: PASSED: with message: - anonymous test case + this is a success ------------------------------------------------------------------------------- -Test case with one argument +SUCCESS does not require an argument ------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: +MessageTests.cpp: ............................................................................... -VariadicMacrosTests.cpp:: +MessageTests.cpp:: PASSED: -with message: - no assertions ------------------------------------------------------------------------------- -Variadic macros - Section with one argument +Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or + methods + Given: No operations precede me ------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: +BDDTests.cpp: ............................................................................... -VariadicMacrosTests.cpp:: +BDDTests.cpp:: PASSED: -with message: - no assertions + 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: +............................................................................... + +BDDTests.cpp:: +PASSED: + REQUIRE( after > before ) +with expansion: + 1 > 0 ------------------------------------------------------------------------------- Scenario: Do that thing with the thing @@ -8975,6 +6170,24 @@ PASSED: with expansion: true +------------------------------------------------------------------------------- +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: +............................................................................... + +BDDTests.cpp:: +PASSED: +with message: + boo! + ------------------------------------------------------------------------------- Scenario: Vector resizing affects size and capacity Given: an empty vector @@ -9066,53 +6279,2840 @@ PASSED: with expansion: 0 == 0 +A string sent directly to stdout +A string sent directly to stderr ------------------------------------------------------------------------------- -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 +Some simple comparisons between doubles ------------------------------------------------------------------------------- -BDDTests.cpp: +ApproxTests.cpp: ............................................................................... -BDDTests.cpp:: +ApproxTests.cpp:: +PASSED: + REQUIRE( d == Approx( 1.23 ) ) +with expansion: + 1.23 == Approx( 1.23 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( d != Approx( 1.22 ) ) +with expansion: + 1.23 != Approx( 1.22 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( d != Approx( 1.24 ) ) +with expansion: + 1.23 != Approx( 1.24 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( Approx( d ) == 1.23 ) +with expansion: + Approx( 1.23 ) == 1.23 + +ApproxTests.cpp:: +PASSED: + REQUIRE( Approx( d ) != 1.22 ) +with expansion: + Approx( 1.23 ) != 1.22 + +ApproxTests.cpp:: +PASSED: + REQUIRE( Approx( d ) != 1.24 ) +with expansion: + Approx( 1.23 ) != 1.24 + +Message from section one +------------------------------------------------------------------------------- +Standard output from all sections is reported + one +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + + +No assertions in section 'one' + +Message from section two +------------------------------------------------------------------------------- +Standard output from all sections is reported + two +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + + +No assertions in section 'two' + +------------------------------------------------------------------------------- +StartsWith string matcher +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) +with expansion: + "this string contains 'abc' as a substring" starts with: "string" + +------------------------------------------------------------------------------- +String matchers +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE_THAT( testStringForMatching(), Contains( "string" ) ) +with expansion: + "this string contains 'abc' as a substring" contains: "string" + +MiscTests.cpp:: +PASSED: + CHECK_THAT( testStringForMatching(), Contains( "abc" ) ) +with expansion: + "this string contains 'abc' as a substring" contains: "abc" + +MiscTests.cpp:: +PASSED: + CHECK_THAT( testStringForMatching(), StartsWith( "this" ) ) +with expansion: + "this string contains 'abc' as a substring" starts with: "this" + +MiscTests.cpp:: +PASSED: + CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) ) +with expansion: + "this string contains 'abc' as a substring" ends with: "substring" + +hello +hello +------------------------------------------------------------------------------- +Tabs and newlines show in output +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK( s1 == s2 ) +with expansion: + "if ($b == 10) { + $a= 20; + }" + == + "if ($b == 10) { + $a = 20; + } + " + +------------------------------------------------------------------------------- +Tag alias can be registered against tag patterns + The same tag alias can only be registered once +------------------------------------------------------------------------------- +TagAliasTests.cpp: +............................................................................... + +TagAliasTests.cpp:: +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:: +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:: +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:: +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: +............................................................................... + +TagAliasTests.cpp:: +PASSED: + CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) ) + +TagAliasTests.cpp:: +PASSED: + CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) + +TagAliasTests.cpp:: +PASSED: + CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) + +TagAliasTests.cpp:: +PASSED: + CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) ) + +------------------------------------------------------------------------------- +Test case with one argument +------------------------------------------------------------------------------- +VariadicMacrosTests.cpp: +............................................................................... + +VariadicMacrosTests.cpp:: PASSED: with message: - boo! + no assertions ------------------------------------------------------------------------------- -Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or - methods - Given: No operations precede me +Test enum bit values ------------------------------------------------------------------------------- -BDDTests.cpp: +TrickyTests.cpp: ............................................................................... -BDDTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( before == 0 ) + REQUIRE( 0x == bit30and31 ) +with expansion: + 3221225472 (0x) == 3221225472 + +------------------------------------------------------------------------------- +Text can be formatted using the Text class +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( Text( "hi there" ).toString() == "hi there" ) +with expansion: + "hi there" == "hi there" + +TestMain.cpp:: +PASSED: + CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" ) +with expansion: + "hi + there" + == + "hi + there" + +------------------------------------------------------------------------------- +The NO_FAIL macro reports a failure but does not fail the test +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: +FAILED - but was ok: + CHECK_NOFAIL( 1 == 2 ) + +------------------------------------------------------------------------------- +This test 'should' fail but doesn't +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: +with message: + oops! + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + successfully close one section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isSuccessfullyCompleted() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + fail one section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + fail one section + re-enter after failed section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + fail one section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + fail one section + re-enter after failed section and find next section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + successfully close one section, then find another +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +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: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +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: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isSuccessfullyCompleted() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isSuccessfullyCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + successfully close one section, then find another +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +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: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +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: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( ctx.completedCycle() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase3.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1c.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2c.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase3.isSuccessfullyCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + open a nested section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + start a generator +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.index() == 0 ) +with expansion: + 0 == 0 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + start a generator + close outer section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + start a generator + close outer section + Re-enter for second generation +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.index() == 1 ) +with expansion: + 1 == 1 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isComplete() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + start a generator +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.index() == 0 ) +with expansion: + 0 == 0 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + start a generator + Start a new inner section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +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: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.index() == 1 ) +with expansion: + 1 == 1 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isComplete() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isOpen() ) +with expansion: + true + +------------------------------------------------------------------------------- +Tracker + start a generator +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.index() == 0 ) +with expansion: + 0 == 0 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + start a generator + Fail an inner section +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2.isSuccessfullyCompleted() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase.isComplete() == false ) +with expansion: + false == false + +------------------------------------------------------------------------------- +Tracker + start a generator + Fail an inner section + Re-enter for second generation +------------------------------------------------------------------------------- +PartTrackerTests.cpp: +............................................................................... + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.index() == 0 ) +with expansion: + 0 == 0 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2b.isOpen() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1b.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1b.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase2.isComplete() == false ) +with expansion: + false == false + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase3.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1c.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1c.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1c.index() == 1 ) +with expansion: + 1 == 1 + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2c.isOpen() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s2c.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( g1c.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( s1c.isComplete() ) +with expansion: + true + +PartTrackerTests.cpp:: +PASSED: + REQUIRE( testCase3.isComplete() ) +with expansion: + true + +------------------------------------------------------------------------------- +Unexpected exceptions can be translated +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + 3.14 + +------------------------------------------------------------------------------- +Use a custom approx +------------------------------------------------------------------------------- +ApproxTests.cpp: +............................................................................... + +ApproxTests.cpp:: +PASSED: + REQUIRE( d == approx( 1.23 ) ) +with expansion: + 1.23 == Approx( 1.23 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( d == approx( 1.22 ) ) +with expansion: + 1.23 == Approx( 1.22 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( d == approx( 1.24 ) ) +with expansion: + 1.23 == Approx( 1.24 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( d != approx( 1.25 ) ) +with expansion: + 1.23 != Approx( 1.25 ) + +ApproxTests.cpp:: +PASSED: + REQUIRE( approx( d ) == 1.23 ) +with expansion: + Approx( 1.23 ) == 1.23 + +ApproxTests.cpp:: +PASSED: + REQUIRE( approx( d ) == 1.22 ) +with expansion: + Approx( 1.23 ) == 1.22 + +ApproxTests.cpp:: +PASSED: + REQUIRE( approx( d ) == 1.24 ) +with expansion: + Approx( 1.23 ) == 1.24 + +ApproxTests.cpp:: +PASSED: + REQUIRE( approx( d ) != 1.25 ) +with expansion: + Approx( 1.23 ) != 1.25 + +------------------------------------------------------------------------------- +Variadic macros + Section with one argument +------------------------------------------------------------------------------- +VariadicMacrosTests.cpp: +............................................................................... + +VariadicMacrosTests.cpp:: +PASSED: +with message: + no assertions + +------------------------------------------------------------------------------- +When checked exceptions are thrown they can be expected or unexpected +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: +PASSED: + REQUIRE_THROWS_AS( thisThrows() ) + +ExceptionTests.cpp:: +PASSED: + REQUIRE_NOTHROW( thisDoesntThrow() ) + +ExceptionTests.cpp:: +PASSED: + REQUIRE_THROWS( thisThrows() ) + +------------------------------------------------------------------------------- +When unchecked exceptions are thrown directly they are always failures +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + unexpected exception + +------------------------------------------------------------------------------- +When unchecked exceptions are thrown during a CHECK the test should abort and +fail +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: 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: +............................................................................... + +ExceptionTests.cpp:: FAILED: + REQUIRE( thisThrows() == 0 ) +due to unexpected exception with message: + expected exception + +------------------------------------------------------------------------------- +When unchecked exceptions are thrown from functions they are always failures +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: + CHECK( thisThrows() == 0 ) +due to unexpected exception with message: + expected exception + +------------------------------------------------------------------------------- +When unchecked exceptions are thrown from sections they are always failures + section name +------------------------------------------------------------------------------- +ExceptionTests.cpp: +............................................................................... + +ExceptionTests.cpp:: FAILED: +due to unexpected exception with message: + unexpected exception + +------------------------------------------------------------------------------- +Where the LHS is not a simple value +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +warning: + Uncomment the code in this test to check that it gives a sensible compiler + error + +------------------------------------------------------------------------------- +Where there is more to the expression after the RHS +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +warning: + Uncomment the code in this test to check that it gives a sensible compiler + error + +------------------------------------------------------------------------------- +X/level/0/a +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +X/level/0/b +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +X/level/1/a +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +X/level/1/b +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +XmlEncode + normal string +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "normal string" ) == "normal string" ) +with expansion: + "normal string" == "normal string" + +------------------------------------------------------------------------------- +XmlEncode + empty string +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "" ) == "" ) +with expansion: + "" == "" + +------------------------------------------------------------------------------- +XmlEncode + string with ampersand +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "smith & jones" ) == "smith & jones" ) +with expansion: + "smith & jones" == "smith & jones" + +------------------------------------------------------------------------------- +XmlEncode + string with less-than +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "smith < jones" ) == "smith < jones" ) +with expansion: + "smith < jones" == "smith < jones" + +------------------------------------------------------------------------------- +XmlEncode + string with greater-than +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "smith > jones" ) == "smith > jones" ) +with expansion: + "smith > jones" == "smith > jones" + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" ) +with expansion: + "smith ]]> jones" + == + "smith ]]> jones" + +------------------------------------------------------------------------------- +XmlEncode + string with quotes +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( stringWithQuotes ) == stringWithQuotes ) +with expansion: + "don't "quote" me on that" + == + "don't "quote" me on that" + +MiscTests.cpp:: +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: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "[\x01]" ) == "[]" ) +with expansion: + "[]" == "[]" + +------------------------------------------------------------------------------- +XmlEncode + string with control char (x7F) +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( encode( "[\x7F]" ) == "[]" ) +with expansion: + "[]" == "[]" + +------------------------------------------------------------------------------- +atomic if +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( x == 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 +boolean member ------------------------------------------------------------------------------- -BDDTests.cpp: +TrickyTests.cpp: ............................................................................... -BDDTests.cpp:: +TrickyTests.cpp:: PASSED: - REQUIRE( after > before ) + REQUIRE( obj.prop != nullptr ) with expansion: - 1 > 0 + 0x != nullptr + +------------------------------------------------------------------------------- +checkedElse +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECKED_ELSE( flag ) +with expansion: + true + +MiscTests.cpp:: +PASSED: + REQUIRE( testCheckedElse( true ) ) +with expansion: + true + +------------------------------------------------------------------------------- +checkedElse, failing +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECKED_ELSE( flag ) +with expansion: + false + +MiscTests.cpp:: FAILED: + REQUIRE( testCheckedElse( false ) ) +with expansion: + false + +------------------------------------------------------------------------------- +checkedIf +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECKED_IF( flag ) +with expansion: + true + +MiscTests.cpp:: +PASSED: + REQUIRE( testCheckedIf( true ) ) +with expansion: + true + +------------------------------------------------------------------------------- +checkedIf, failing +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECKED_IF( flag ) +with expansion: + false + +MiscTests.cpp:: FAILED: + REQUIRE( testCheckedIf( false ) ) +with expansion: + false + +------------------------------------------------------------------------------- +comparisons between const int variables +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: +PASSED: + REQUIRE( unsigned_char_var == 1 ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( unsigned_short_var == 1 ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( unsigned_int_var == 1 ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( unsigned_long_var == 1 ) +with expansion: + 1 == 1 + +------------------------------------------------------------------------------- +comparisons between int variables +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: +PASSED: + REQUIRE( long_var == unsigned_char_var ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( long_var == unsigned_short_var ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( long_var == unsigned_int_var ) +with expansion: + 1 == 1 + +ConditionTests.cpp:: +PASSED: + REQUIRE( long_var == unsigned_long_var ) +with expansion: + 1 == 1 + +------------------------------------------------------------------------------- +even more nested SECTION tests + c + d (leaf) +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +even more nested SECTION tests + c + e (leaf) +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +even more nested SECTION tests + f (leaf) +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +just failure +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: +explicitly with message: + Previous info should not be seen + +------------------------------------------------------------------------------- +long long +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( l == std::numeric_limits::max() ) +with expansion: + 9223372036854775807 (0x) + == + 9223372036854775807 (0x) + +------------------------------------------------------------------------------- +looped SECTION tests + s1 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK( b > a ) +with expansion: + 0 > 1 + +------------------------------------------------------------------------------- +looped tests +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[0] (1) is even + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[1] (1) is even + +MiscTests.cpp:: +PASSED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 0 == 0 +with message: + Testing if fib[2] (2) is even + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[3] (3) is even + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[4] (5) is even + +MiscTests.cpp:: +PASSED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 0 == 0 +with message: + Testing if fib[5] (8) is even + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[6] (13) is even + +MiscTests.cpp:: FAILED: + CHECK( ( fib[i] % 2 ) == 0 ) +with expansion: + 1 == 0 +with message: + Testing if fib[7] (21) is even + +------------------------------------------------------------------------------- +more nested SECTION tests + s1 + s2 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + REQUIRE( a == b ) +with expansion: + 1 == 2 + +------------------------------------------------------------------------------- +more nested SECTION tests + s1 + s3 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +------------------------------------------------------------------------------- +more nested SECTION tests + s1 + s4 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a < b ) +with expansion: + 1 < 2 + +------------------------------------------------------------------------------- +nested SECTION tests + s1 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +MiscTests.cpp:: +PASSED: + REQUIRE( b != a ) +with expansion: + 2 != 1 + +------------------------------------------------------------------------------- +nested SECTION tests + s1 + s2 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +------------------------------------------------------------------------------- +non streamable - with conv. op +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( s == "7" ) +with expansion: + "7" == "7" + +------------------------------------------------------------------------------- +not allowed +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +null strings +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( makeString( false ) != static_cast(nullptr) ) +with expansion: + "valid string" != {null string} + +MiscTests.cpp:: +PASSED: + REQUIRE( makeString( true ) == static_cast(nullptr) ) +with expansion: + {null string} == {null string} + +------------------------------------------------------------------------------- +null_ptr +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( ptr.get() == nullptr ) +with expansion: + NULL == nullptr + +------------------------------------------------------------------------------- +pair > -> toString +------------------------------------------------------------------------------- +ToStringPair.cpp: +............................................................................... + +ToStringPair.cpp:: +PASSED: + REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" ) +with expansion: + "{ { 42, "Arthur" }, { "Ford", 24 } }" + == + "{ { 42, "Arthur" }, { "Ford", 24 } }" + +------------------------------------------------------------------------------- +pointer to class +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +PASSED: + REQUIRE( p == 0 ) +with expansion: + NULL == 0 + +------------------------------------------------------------------------------- +random SECTION tests + s1 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +MiscTests.cpp:: +PASSED: + REQUIRE( b != a ) +with expansion: + 2 != 1 + +------------------------------------------------------------------------------- +random SECTION tests + s2 +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +------------------------------------------------------------------------------- +replaceInPlace + replace single char +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( letters, "b", "z" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( letters == "azcdefcg" ) +with expansion: + "azcdefcg" == "azcdefcg" + +------------------------------------------------------------------------------- +replaceInPlace + replace two chars +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( letters, "c", "z" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( letters == "abzdefzg" ) +with expansion: + "abzdefzg" == "abzdefzg" + +------------------------------------------------------------------------------- +replaceInPlace + replace first char +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( letters, "a", "z" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( letters == "zbcdefcg" ) +with expansion: + "zbcdefcg" == "zbcdefcg" + +------------------------------------------------------------------------------- +replaceInPlace + replace last char +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( letters, "g", "z" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( letters == "abcdefcz" ) +with expansion: + "abcdefcz" == "abcdefcz" + +------------------------------------------------------------------------------- +replaceInPlace + replace all chars +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( letters, letters, "replaced" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( letters == "replaced" ) +with expansion: + "replaced" == "replaced" + +------------------------------------------------------------------------------- +replaceInPlace + replace no chars +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK_FALSE( replaceInPlace( letters, "x", "z" ) ) +with expansion: + !false + +TestMain.cpp:: +PASSED: + CHECK( letters == letters ) +with expansion: + "abcdefcg" == "abcdefcg" + +------------------------------------------------------------------------------- +replaceInPlace + escape ' +------------------------------------------------------------------------------- +TestMain.cpp: +............................................................................... + +TestMain.cpp:: +PASSED: + CHECK( replaceInPlace( s, "'", "|'" ) ) +with expansion: + true + +TestMain.cpp:: +PASSED: + CHECK( s == "didn|'t" ) +with expansion: + "didn|'t" == "didn|'t" + +------------------------------------------------------------------------------- +send a single char to INFO +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: FAILED: + REQUIRE( false ) +with message: + 3 + +------------------------------------------------------------------------------- +sends information to INFO +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + REQUIRE( false ) +with messages: + hi + i := 7 + +------------------------------------------------------------------------------- +std::pair -> toString +------------------------------------------------------------------------------- +ToStringPair.cpp: +............................................................................... + +ToStringPair.cpp:: +PASSED: + REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" ) +with expansion: + "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" + +------------------------------------------------------------------------------- +std::pair -> toString +------------------------------------------------------------------------------- +ToStringPair.cpp: +............................................................................... + +ToStringPair.cpp:: +PASSED: + REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" ) +with expansion: + "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" + +------------------------------------------------------------------------------- +std::vector > -> toString +------------------------------------------------------------------------------- +ToStringPair.cpp: +............................................................................... + +ToStringPair.cpp:: +PASSED: + REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" ) +with expansion: + "{ { "green", 55 } }" + == + "{ { "green", 55 } }" + +------------------------------------------------------------------------------- +string literals of different sizes can be compared +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: FAILED: + REQUIRE( std::string( "first" ) == "second" ) +with expansion: + "first" == "second" + +------------------------------------------------------------------------------- +toString on const wchar_t const pointer returns the string contents +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECK( result == "\"wide load\"" ) +with expansion: + ""wide load"" == ""wide load"" + +------------------------------------------------------------------------------- +toString on const wchar_t pointer returns the string contents +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECK( result == "\"wide load\"" ) +with expansion: + ""wide load"" == ""wide load"" + +------------------------------------------------------------------------------- +toString on wchar_t const pointer returns the string contents +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECK( result == "\"wide load\"" ) +with expansion: + ""wide load"" == ""wide load"" + +------------------------------------------------------------------------------- +toString on wchar_t returns the string contents +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + CHECK( result == "\"wide load\"" ) +with expansion: + ""wide load"" == ""wide load"" + +------------------------------------------------------------------------------- +toString( has_maker ) +------------------------------------------------------------------------------- +ToStringWhich.cpp: +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( item ) == "StringMaker" ) +with expansion: + "StringMaker" + == + "StringMaker" + +------------------------------------------------------------------------------- +toString( has_maker_and_toString ) +------------------------------------------------------------------------------- +ToStringWhich.cpp: +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" ) +with expansion: + "toString( has_maker_and_toString )" + == + "toString( has_maker_and_toString )" + +------------------------------------------------------------------------------- +toString( has_toString ) +------------------------------------------------------------------------------- +ToStringWhich.cpp: +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( item ) == "toString( has_toString )" ) +with expansion: + "toString( has_toString )" + == + "toString( has_toString )" + +------------------------------------------------------------------------------- +toString( vectors +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( v ) == "{ StringMaker }" ) +with expansion: + "{ StringMaker }" + == + "{ StringMaker }" + +------------------------------------------------------------------------------- +toString( vectors +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( v ) == "{ StringMaker }" ) +with expansion: + "{ StringMaker }" + == + "{ StringMaker }" + +------------------------------------------------------------------------------- +toString( vectors +............................................................................... + +ToStringWhich.cpp:: +PASSED: + REQUIRE( Catch::toString( v ) == "{ {?} }" ) +with expansion: + "{ {?} }" == "{ {?} }" + +------------------------------------------------------------------------------- +toString(enum class w/operator<<) +------------------------------------------------------------------------------- +EnumToString.cpp: +............................................................................... + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e0) == "E2/V0" ) +with expansion: + "E2/V0" == "E2/V0" + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e1) == "E2/V1" ) +with expansion: + "E2/V1" == "E2/V1" + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e3) == "Unknown enum value 10" ) +with expansion: + "Unknown enum value 10" + == + "Unknown enum value 10" + +------------------------------------------------------------------------------- +toString(enum class) +------------------------------------------------------------------------------- +EnumToString.cpp: +............................................................................... + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e0) == "0" ) +with expansion: + "0" == "0" + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e1) == "1" ) +with expansion: + "1" == "1" + +------------------------------------------------------------------------------- +toString(enum w/operator<<) +------------------------------------------------------------------------------- +EnumToString.cpp: +............................................................................... + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e0) == "E2{0}" ) +with expansion: + "E2{0}" == "E2{0}" + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e1) == "E2{1}" ) +with expansion: + "E2{1}" == "E2{1}" + +------------------------------------------------------------------------------- +toString(enum) +------------------------------------------------------------------------------- +EnumToString.cpp: +............................................................................... + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e0) == "0" ) +with expansion: + "0" == "0" + +EnumToString.cpp:: +PASSED: + CHECK( Catch::toString(e1) == "1" ) +with expansion: + "1" == "1" + +------------------------------------------------------------------------------- +tuple<> +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ }" == Catch::toString(type{}) ) +with expansion: + "{ }" == "{ }" + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ }" == Catch::toString(value) ) +with expansion: + "{ }" == "{ }" + +------------------------------------------------------------------------------- +tuple +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "1.2f" == Catch::toString(float(1.2)) ) +with expansion: + "1.2f" == "1.2f" + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) ) +with expansion: + "{ 1.2f, 0 }" == "{ 1.2f, 0 }" + +------------------------------------------------------------------------------- +tuple +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ 0 }" == Catch::toString(type{0}) ) +with expansion: + "{ 0 }" == "{ 0 }" + +------------------------------------------------------------------------------- +tuple +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) ) +with expansion: + "{ nullptr, 42, "Catch me" }" + == + "{ nullptr, 42, "Catch me" }" + +------------------------------------------------------------------------------- +tuple +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) ) +with expansion: + "{ "hello", "world" }" + == + "{ "hello", "world" }" + +------------------------------------------------------------------------------- +tuple,tuple<>,float> +------------------------------------------------------------------------------- +ToStringTuple.cpp: +............................................................................... + +ToStringTuple.cpp:: +PASSED: + CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) ) +with expansion: + "{ { 42 }, { }, 1.2f }" + == + "{ { 42 }, { }, 1.2f }" + +------------------------------------------------------------------------------- +vec> -> toString +------------------------------------------------------------------------------- +ToStringVector.cpp: +............................................................................... + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(v) == "{ }" ) +with expansion: + "{ }" == "{ }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" ) +with expansion: + "{ { "hello" }, { "world" } }" + == + "{ { "hello" }, { "world" } }" + +------------------------------------------------------------------------------- +vector -> toString +------------------------------------------------------------------------------- +ToStringVector.cpp: +............................................................................... + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ }" ) +with expansion: + "{ }" == "{ }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ 42 }" ) +with expansion: + "{ 42 }" == "{ 42 }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ) +with expansion: + "{ 42, 250 }" == "{ 42, 250 }" + +------------------------------------------------------------------------------- +vector -> toString +------------------------------------------------------------------------------- +ToStringVector.cpp: +............................................................................... + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ }" ) +with expansion: + "{ }" == "{ }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ 42 }" ) +with expansion: + "{ 42 }" == "{ 42 }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ) +with expansion: + "{ 42, 250 }" == "{ 42, 250 }" + +------------------------------------------------------------------------------- +vector -> toString +------------------------------------------------------------------------------- +ToStringVector.cpp: +............................................................................... + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ }" ) +with expansion: + "{ }" == "{ }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ \"hello\" }" ) +with expansion: + "{ "hello" }" == "{ "hello" }" + +ToStringVector.cpp:: +PASSED: + REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" ) +with expansion: + "{ "hello", "world" }" + == + "{ "hello", "world" }" + +------------------------------------------------------------------------------- +vectors can be sized and resized +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 5 ) +with expansion: + 5 >= 5 + +------------------------------------------------------------------------------- +vectors can be sized and resized + resizing bigger changes size and capacity +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 10 ) +with expansion: + 10 == 10 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 10 ) +with expansion: + 10 >= 10 + +------------------------------------------------------------------------------- +vectors can be sized and resized +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 5 ) +with expansion: + 5 >= 5 + +------------------------------------------------------------------------------- +vectors can be sized and resized + resizing smaller changes size but not capacity +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 0 ) +with expansion: + 0 == 0 + +MiscTests.cpp:: +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: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() == 0 ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +vectors can be sized and resized +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 5 ) +with expansion: + 5 >= 5 + +------------------------------------------------------------------------------- +vectors can be sized and resized + reserving bigger changes capacity but not size +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 10 ) +with expansion: + 10 >= 10 + +------------------------------------------------------------------------------- +vectors can be sized and resized +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +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: +............................................................................... + +MiscTests.cpp:: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp:: +PASSED: + REQUIRE( v.capacity() >= 5 ) +with expansion: + 5 >= 5 + +------------------------------------------------------------------------------- +xmlentitycheck + embedded xml +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: + +------------------------------------------------------------------------------- +xmlentitycheck + encoded chars +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +PASSED: =============================================================================== test cases: 169 | 124 passed | 43 failed | 2 failed as expected diff --git a/projects/SelfTest/Baselines/console.swa4.approved.txt b/projects/SelfTest/Baselines/console.swa4.approved.txt index 76af9f55..5334abc8 100644 --- a/projects/SelfTest/Baselines/console.swa4.approved.txt +++ b/projects/SelfTest/Baselines/console.swa4.approved.txt @@ -4,612 +4,37 @@ CatchSelfTest is a host application. Run with -? for options ------------------------------------------------------------------------------- -toString(enum) +# A test name that starts with a # ------------------------------------------------------------------------------- -EnumToString.cpp: +MiscTests.cpp: ............................................................................... -EnumToString.cpp:: +MiscTests.cpp:: PASSED: - CHECK( Catch::toString(e0) == "0" ) -with expansion: - "0" == "0" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "1" ) -with expansion: - "1" == "1" +with message: + yay ------------------------------------------------------------------------------- -toString(enum w/operator<<) -------------------------------------------------------------------------------- -EnumToString.cpp: -............................................................................... - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "E2{0}" ) -with expansion: - "E2{0}" == "E2{0}" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "E2{1}" ) -with expansion: - "E2{1}" == "E2{1}" - -------------------------------------------------------------------------------- -toString(enum class) -------------------------------------------------------------------------------- -EnumToString.cpp: -............................................................................... - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "0" ) -with expansion: - "0" == "0" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "1" ) -with expansion: - "1" == "1" - -------------------------------------------------------------------------------- -toString(enum class w/operator<<) -------------------------------------------------------------------------------- -EnumToString.cpp: -............................................................................... - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "E2/V0" ) -with expansion: - "E2/V0" == "E2/V0" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "E2/V1" ) -with expansion: - "E2/V1" == "E2/V1" - -EnumToString.cpp:: -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: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == Approx( 1.23 ) ) -with expansion: - 1.23 == Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.22 ) ) -with expansion: - 1.23 != Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.24 ) ) -with expansion: - 1.23 != Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.22 ) -with expansion: - Approx( 1.23 ) != 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.24 ) -with expansion: - Approx( 1.23 ) != 1.24 - -------------------------------------------------------------------------------- -Approximate comparisons with different epsilons -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.231 ) ) -with expansion: - 1.23 != Approx( 1.231 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) ) -with expansion: - 1.23 == Approx( 1.231 ) - -------------------------------------------------------------------------------- -Approximate comparisons with floats -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.23f == Approx( 1.23f ) ) -with expansion: - 1.23f == Approx( 1.2300000191 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0.0f == Approx( 0.0f ) ) -with expansion: - 0.0f == Approx( 0.0 ) - -------------------------------------------------------------------------------- -Approximate comparisons with ints -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1 == Approx( 1 ) ) -with expansion: - 1 == Approx( 1.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( 0 ) ) -with expansion: - 0 == Approx( 0.0 ) - -------------------------------------------------------------------------------- -Approximate comparisons with mixed numeric types -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.0f == Approx( 1 ) ) -with expansion: - 1.0f == Approx( 1.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( dZero) ) -with expansion: - 0 == Approx( 0.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) ) -with expansion: - 0 == Approx( 0.00001 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.234f == Approx( dMedium ) ) -with expansion: - 1.234f == Approx( 1.234 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( dMedium == Approx( 1.234f ) ) -with expansion: - 1.234 == Approx( 1.2339999676 ) - -------------------------------------------------------------------------------- -Use a custom approx -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.23 ) ) -with expansion: - 1.23 == Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.22 ) ) -with expansion: - 1.23 == Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.24 ) ) -with expansion: - 1.23 == Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != approx( 1.25 ) ) -with expansion: - 1.23 != Approx( 1.25 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.22 ) -with expansion: - Approx( 1.23 ) == 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.24 ) -with expansion: - Approx( 1.23 ) == 1.24 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) != 1.25 ) -with expansion: - Approx( 1.23 ) != 1.25 - -------------------------------------------------------------------------------- -Approximate PI -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ) -with expansion: - 3.1428571429 == Approx( 3.141 ) - -ApproxTests.cpp:: -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: -............................................................................... - -ClassTests.cpp:: -PASSED: - REQUIRE( s == "hello" ) -with expansion: - "hello" == "hello" - -------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( s == "world" ) -with expansion: - "hello" == "world" - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that succeeds -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: -PASSED: - REQUIRE( m_a == 1 ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( m_a == 2 ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -Equality checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven == 7 ) -with expansion: - 7 == 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ) -with expansion: - 9.1f == Approx( 9.1000003815 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi == Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415926535 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello == "hello" ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( "hello" == data.str_hello ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() == 5 ) -with expansion: - 5 == 5 - -ConditionTests.cpp:: -PASSED: - REQUIRE( x == Approx( 1.3 ) ) -with expansion: - 1.3 == Approx( 1.3 ) - -------------------------------------------------------------------------------- -Equality checks that should fail +'Not' checks that should fail ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 6 ) -with expansion: - 7 == 6 + CHECK( false != false ) ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 8 ) -with expansion: - 7 == 8 - -------------------------------------------------------------------------------- -Inequality checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven != 6 ) -with expansion: - 7 != 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven != 8 ) -with expansion: - 7 != 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) -with expansion: - 9.1f != Approx( 9.1099996567 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) -with expansion: - 9.1f != Approx( 9.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 1 ) ) -with expansion: - 9.1f != Approx( 1.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 0 ) ) -with expansion: - 9.1f != Approx( 0.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi != Approx( 3.1415 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "goodbye" ) -with expansion: - "hello" != "goodbye" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hell" ) -with expansion: - "hello" != "hell" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hello1" ) -with expansion: - "hello" != "hello1" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() != 6 ) -with expansion: - 5 != 6 - -------------------------------------------------------------------------------- -Inequality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... + CHECK( true != true ) ConditionTests.cpp:: FAILED: - CHECK( data.int_seven != 7 ) + CHECK( !true ) with expansion: - 7 != 7 + false ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one != Approx( 9.1f ) ) -with expansion: - 9.1f != Approx( 9.1000003815 ) - -------------------------------------------------------------------------------- -Ordering comparison checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven < 8 ) -with expansion: - 7 < 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 6 ) -with expansion: - 7 > 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 0 ) -with expansion: - 7 > 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > -1 ) -with expansion: - 7 > -1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 7 ) -with expansion: - 7 >= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 6 ) -with expansion: - 7 >= 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 7 ) -with expansion: - 7 <= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 8 ) -with expansion: - 7 <= 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one > 9 ) -with expansion: - 9.1f > 9 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 10 ) -with expansion: - 9.1f < 10 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 9.2 ) -with expansion: - 9.1f < 9.2 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello <= "hello" ) -with expansion: - "hello" <= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello >= "hello" ) -with expansion: - "hello" >= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "hellp" ) -with expansion: - "hello" < "hellp" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "zebra" ) -with expansion: - "hello" < "zebra" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "hellm" ) -with expansion: - "hello" > "hellm" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "a" ) -with expansion: - "hello" > "a" - -------------------------------------------------------------------------------- -Ordering comparison checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 7 ) -with expansion: - 7 > 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 7 ) -with expansion: - 7 < 7 + CHECK_FALSE( true ) =============================================================================== -test cases: 21 | 16 passed | 3 failed | 2 failed as expected -assertions: 81 | 73 passed | 4 failed | 4 failed as expected +test cases: 2 | 1 passed | 1 failed +assertions: 5 | 1 passed | 4 failed diff --git a/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt index 3fd998f0..02ca9f68 100644 --- a/projects/SelfTest/Baselines/junit.sw.approved.txt +++ b/projects/SelfTest/Baselines/junit.sw.approved.txt @@ -1,30 +1,119 @@ - - - - - - - - - - - - + + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + +ConditionTests.cpp: + + + + + + + + ClassTests.cpp: - + ClassTests.cpp: - + + + +to infinity and beyond +MiscTests.cpp: + + + + + +TrickyTests.cpp: + + +TrickyTests.cpp: + + + + + + +unexpected exception +ExceptionTests.cpp: + + + + + + + + + + + + + + + + + + + + +MiscTests.cpp: + + + + +custom exception - not std +ExceptionTests.cpp: + + + + +custom exception - not std +ExceptionTests.cpp: + + + + +custom std exception +ExceptionTests.cpp: + + + + + +MiscTests.cpp: + + ConditionTests.cpp: @@ -66,7 +155,62 @@ ConditionTests.cpp: ConditionTests.cpp: - + + + + +MiscTests.cpp: + + + + + + + + +expected exception +ExceptionTests.cpp: + + +ExceptionTests.cpp: + + +expected exception +ExceptionTests.cpp: + + + + +This is a failure +MessageTests.cpp: + + + + +MessageTests.cpp: + + + + + + + + +this message should be logged +so should this +MessageTests.cpp: + + + + +this message should be logged +MessageTests.cpp: + + +and this, but later +MessageTests.cpp: + + ConditionTests.cpp: @@ -84,7 +228,50 @@ ConditionTests.cpp: ConditionTests.cpp: - + + + + + + + + + + + + + + + + + + + + +MiscTests.cpp: + + + + + +MiscTests.cpp: + + + + +ExceptionTests.cpp: + + + + + +custom exception +ExceptionTests.cpp: + + + + + ConditionTests.cpp: @@ -144,161 +331,7 @@ ConditionTests.cpp: ConditionTests.cpp: - - - - - - - - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - - - - -expected exception -ExceptionTests.cpp: - - -ExceptionTests.cpp: - - -expected exception -ExceptionTests.cpp: - - - - -unexpected exception -ExceptionTests.cpp: - - - - -unexpected exception -ExceptionTests.cpp: - - - - -unexpected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -custom exception -ExceptionTests.cpp: - - - - -custom std exception -ExceptionTests.cpp: - - - - -custom exception - not std -ExceptionTests.cpp: - - - - -custom exception - not std -ExceptionTests.cpp: - - - - -3.14 -ExceptionTests.cpp: - - - - - - - - -ExceptionTests.cpp: - - - - - - - - -this message should be logged -so should this -MessageTests.cpp: - - - - -this message should be logged -MessageTests.cpp: - - -and this, but later -MessageTests.cpp: - - - - -This is a failure -MessageTests.cpp: - - - - -MessageTests.cpp: - - - + Message from section one @@ -311,320 +344,6 @@ Message from section two MessageTests.cpp: - - -Message from section one -Message from section two - - - - -current counter 10 -i := 10 -MessageTests.cpp: - - - - - -Previous info should not be seen -MessageTests.cpp: - - - - -hi -i := 7 -MessageTests.cpp: - - - - - - - - - -MiscTests.cpp: - - - - - - - - - -MiscTests.cpp: - - - - -Testing if fib[0] (1) is even -MiscTests.cpp: - - -Testing if fib[1] (1) is even -MiscTests.cpp: - - -Testing if fib[3] (3) is even -MiscTests.cpp: - - -Testing if fib[4] (5) is even -MiscTests.cpp: - - -Testing if fib[6] (13) is even -MiscTests.cpp: - - -Testing if fib[7] (21) is even -MiscTests.cpp: - - - - -A string sent directly to stdout - - -A string sent directly to stderr - - - - - - -MiscTests.cpp: - - -MiscTests.cpp: - - - - - -MiscTests.cpp: - - -MiscTests.cpp: - - - - - - -3 -MiscTests.cpp: - - - - - - -MiscTests.cpp: - - - - -MiscTests.cpp: - - - - -MiscTests.cpp: - - - - -MiscTests.cpp: - - - - - - - - - - - -MiscTests.cpp: - - - - - -MiscTests.cpp: - - - - - - - - - - - - -to infinity and beyond -MiscTests.cpp: - - - - - - -MiscTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -hello -hello - - - - - - - - - - -TrickyTests.cpp: - - -TrickyTests.cpp: - - - - -TrickyTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -656,30 +375,311 @@ TrickyTests.cpp: - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +current counter 10 +i := 10 +MessageTests.cpp: + + + + + + + - - - - + + +A string sent directly to stdout + + +A string sent directly to stderr + + + + + Message from section one Message from section two + + + + +MiscTests.cpp: + + + + + +hello +hello + + + + +MiscTests.cpp: + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.14 +ExceptionTests.cpp: + + + + + + + +unexpected exception +ExceptionTests.cpp: + + + + +expected exception +ExceptionTests.cpp: + + + + +expected exception +ExceptionTests.cpp: + + + + +expected exception +ExceptionTests.cpp: + + + + +unexpected exception +ExceptionTests.cpp: + + + + + + + + + + + + + + + + + + + + + +MiscTests.cpp: + + +MiscTests.cpp: + + + + + +MiscTests.cpp: + + +MiscTests.cpp: + + + + + + + + + +Previous info should not be seen +MessageTests.cpp: + + + + + +MiscTests.cpp: + + + + +Testing if fib[0] (1) is even +MiscTests.cpp: + + +Testing if fib[1] (1) is even +MiscTests.cpp: + + +Testing if fib[3] (3) is even +MiscTests.cpp: + + +Testing if fib[4] (5) is even +MiscTests.cpp: + + +Testing if fib[6] (13) is even +MiscTests.cpp: + + +Testing if fib[7] (21) is even +MiscTests.cpp: + + + + +MiscTests.cpp: + + + + + + + + + + + + + + + + + + + + + + + +3 +MiscTests.cpp: + + + + +hi +i := 7 +MessageTests.cpp: + + + + + + + +TrickyTests.cpp: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A string sent directly to stdout +Message from section one +Message from section two hello hello diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt index ed730bbd..3dd64def 100644 --- a/projects/SelfTest/Baselines/xml.sw.approved.txt +++ b/projects/SelfTest/Baselines/xml.sw.approved.txt @@ -1,139 +1,392 @@ - - + + + + + - Catch::toString(e0) == "0" + false != false - "0" == "0" + false != false - + - Catch::toString(e1) == "1" + true != true - "1" == "1" + true != true + + + + + !true + + + false + + + + + !true + + + !true + + + + + !trueValue + + + false + + + + + !trueValue + + + !true + + + + + !(1 == 1) + + + false + + + + + !1 == 1 + + + !(1 == 1) + + + + + + + + false == false + + + false == false + + + + + true == true + + + true == true + + + + + !false + + + true + + + + + !false + + + !false + + + + + !falseValue + + + true + + + + + !falseValue + + + !false + + + + + !(1 == 2) + + + true + + + + + !1 == 2 + + + !(1 == 2) - - + +
+ + + is_true<true>::value == true + + + true == true + + + + + true == is_true<true>::value + + + true == true + + + +
+
+ + + is_true<false>::value == false + + + false == false + + + + + false == is_true<false>::value + + + false == false + + + +
+
+ + + !is_true<false>::value + + + true + + + +
+
+ + + !!is_true<true>::value + + + true + + + +
+
+ + + is_true<true>::value + + + true + + + + + !is_true<false>::value + + + !false + + + +
+ +
+ + - Catch::toString(e0) == "E2{0}" + s == "world" - "E2{0}" == "E2{0}" + "hello" == "world" - + + + + - Catch::toString(e1) == "E2{1}" + s == "hello" - "E2{1}" == "E2{1}" + "hello" == "hello" - - + + - Catch::toString(e0) == "0" + m_a == 2 - "0" == "0" + 1 == 2 - + + + + - Catch::toString(e1) == "1" + m_a == 1 - "1" == "1" + 1 == 1 - - + +
+
+ +
+ +
+ + to infinity and beyond + + +
+ + - Catch::toString(e0) == "E2/V0" + &o1 == &o2 - "E2/V0" == "E2/V0" + 0x == 0x - + - Catch::toString(e1) == "E2/V1" + o1 == o2 - "E2/V1" == "E2/V1" + {?} == {?} - + + + + - Catch::toString(e3) == "Unknown enum value 10" + testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) - "Unknown enum value 10" -== -"Unknown enum value 10" + "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" ) - - + + + + + - d == Approx( 1.23 ) + i++ == 7 - 1.23 == Approx( 1.23 ) + 7 == 7 + + + + + i++ == 8 + + + 8 == 8 + + + + + + + + 1 == 1 + + + 1 == 1 + + + + + {Unknown expression after the reported line} + + + {Unknown expression after the reported line} + + + unexpected exception + + + + + + + + + + + testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) + + + "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" ) + + + + + testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) + + + "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" ) + + + + + + + + divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) + + + 3.1428571429 == Approx( 3.141 ) - d != Approx( 1.22 ) + divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) - 1.23 != Approx( 1.22 ) - - - - - d != Approx( 1.24 ) - - - 1.23 != Approx( 1.24 ) - - - - - Approx( d ) == 1.23 - - - Approx( 1.23 ) == 1.23 - - - - - Approx( d ) != 1.22 - - - Approx( 1.23 ) != 1.22 - - - - - Approx( d ) != 1.24 - - - Approx( 1.23 ) != 1.24 + 3.1428571429 != Approx( 3.141 ) @@ -238,730 +491,163 @@ - - + + - d == approx( 1.23 ) + Catch::alwaysTrue() - 1.23 == Approx( 1.23 ) + true - +
+ + + Catch::alwaysTrue() + + + true + + +
+ + + Catch::alwaysTrue() + + + true + + + +
+ +
+ - d == approx( 1.22 ) + Catch::alwaysTrue() - 1.23 == Approx( 1.22 ) + true - +
+ + + Catch::alwaysTrue() + + + true + + +
+ + + Catch::alwaysTrue() + + + true + + + +
+ +
+ +
+ + - d == approx( 1.24 ) + a - 1.23 == Approx( 1.24 ) + true - + - d != approx( 1.25 ) + a == &foo - 1.23 != Approx( 1.25 ) - - - - - approx( d ) == 1.23 - - - Approx( 1.23 ) == 1.23 - - - - - approx( d ) == 1.22 - - - Approx( 1.23 ) == 1.22 - - - - - approx( d ) == 1.24 - - - Approx( 1.23 ) == 1.24 - - - - - approx( d ) != 1.25 - - - Approx( 1.23 ) != 1.25 + 0x == 0x - - + + - divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) + m == &S::f - 3.1428571429 == Approx( 3.141 ) - - - - - divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) - - - 3.1428571429 != Approx( 3.141 ) + 0x +== +0x - - + + - s == "hello" + 54 == 6*9 - "hello" == "hello" + 54 == 54 - - + + - s == "world" + ( -1 > 2u ) - "hello" == "world" + true - - - - + - m_a == 1 + -1 > 2u - 1 == 1 + -1 > 2 + + + + + ( 2u < -1 ) + + + true + + + + + 2u < -1 + + + 2 < -1 + + + + + ( minInt > 2u ) + + + true + + + + + minInt > 2u + + + -2147483648 > 2 - - - - m_a == 2 - - - 1 == 2 - - - - - - - - data.int_seven == 7 - - - 7 == 7 - - - - - data.float_nine_point_one == Approx( 9.1f ) - - - 9.1f == Approx( 9.1000003815 ) - - - - - data.double_pi == Approx( 3.1415926535 ) - - - 3.1415926535 == Approx( 3.1415926535 ) - - - - - data.str_hello == "hello" - - - "hello" == "hello" - - - - - "hello" == data.str_hello - - - "hello" == "hello" - - - - - data.str_hello.size() == 5 - - - 5 == 5 - - - - - x == Approx( 1.3 ) - - - 1.3 == Approx( 1.3 ) - - - - - - - - data.int_seven == 6 - - - 7 == 6 - - - - - data.int_seven == 8 - - - 7 == 8 - - - - - data.int_seven == 0 - - - 7 == 0 - - - - - data.float_nine_point_one == Approx( 9.11f ) - - - 9.1f == Approx( 9.1099996567 ) - - - - - data.float_nine_point_one == Approx( 9.0f ) - - - 9.1f == Approx( 9.0 ) - - - - - data.float_nine_point_one == Approx( 1 ) - - - 9.1f == Approx( 1.0 ) - - - - - data.float_nine_point_one == Approx( 0 ) - - - 9.1f == Approx( 0.0 ) - - - - - data.double_pi == Approx( 3.1415 ) - - - 3.1415926535 == Approx( 3.1415 ) - - - - - data.str_hello == "goodbye" - - - "hello" == "goodbye" - - - - - data.str_hello == "hell" - - - "hello" == "hell" - - - - - data.str_hello == "hello1" - - - "hello" == "hello1" - - - - - data.str_hello.size() == 6 - - - 5 == 6 - - - - - x == Approx( 1.301 ) - - - 1.3 == Approx( 1.301 ) - - - - - - - - data.int_seven != 6 - - - 7 != 6 - - - - - data.int_seven != 8 - - - 7 != 8 - - - - - data.float_nine_point_one != Approx( 9.11f ) - - - 9.1f != Approx( 9.1099996567 ) - - - - - data.float_nine_point_one != Approx( 9.0f ) - - - 9.1f != Approx( 9.0 ) - - - - - data.float_nine_point_one != Approx( 1 ) - - - 9.1f != Approx( 1.0 ) - - - - - data.float_nine_point_one != Approx( 0 ) - - - 9.1f != Approx( 0.0 ) - - - - - data.double_pi != Approx( 3.1415 ) - - - 3.1415926535 != Approx( 3.1415 ) - - - - - data.str_hello != "goodbye" - - - "hello" != "goodbye" - - - - - data.str_hello != "hell" - - - "hello" != "hell" - - - - - data.str_hello != "hello1" - - - "hello" != "hello1" - - - - - data.str_hello.size() != 6 - - - 5 != 6 - - - - - - - - data.int_seven != 7 - - - 7 != 7 - - - - - data.float_nine_point_one != Approx( 9.1f ) - - - 9.1f != Approx( 9.1000003815 ) - - - - - data.double_pi != Approx( 3.1415926535 ) - - - 3.1415926535 != Approx( 3.1415926535 ) - - - - - data.str_hello != "hello" - - - "hello" != "hello" - - - - - data.str_hello.size() != 5 - - - 5 != 5 - - - - - - - - data.int_seven < 8 - - - 7 < 8 - - - - - data.int_seven > 6 - - - 7 > 6 - - - - - data.int_seven > 0 - - - 7 > 0 - - - - - data.int_seven > -1 - - - 7 > -1 - - - - - data.int_seven >= 7 - - - 7 >= 7 - - - - - data.int_seven >= 6 - - - 7 >= 6 - - - - - data.int_seven <= 7 - - - 7 <= 7 - - - - - data.int_seven <= 8 - - - 7 <= 8 - - - - - data.float_nine_point_one > 9 - - - 9.1f > 9 - - - - - data.float_nine_point_one < 10 - - - 9.1f < 10 - - - - - data.float_nine_point_one < 9.2 - - - 9.1f < 9.2 - - - - - data.str_hello <= "hello" - - - "hello" <= "hello" - - - - - data.str_hello >= "hello" - - - "hello" >= "hello" - - - - - data.str_hello < "hellp" - - - "hello" < "hellp" - - - - - data.str_hello < "zebra" - - - "hello" < "zebra" - - - - - data.str_hello > "hellm" - - - "hello" > "hellm" - - - - - data.str_hello > "a" - - - "hello" > "a" - - - - - - - - data.int_seven > 7 - - - 7 > 7 - - - - - data.int_seven < 7 - - - 7 < 7 - - - - - data.int_seven > 8 - - - 7 > 8 - - - - - data.int_seven < 6 - - - 7 < 6 - - - - - data.int_seven < 0 - - - 7 < 0 - - - - - data.int_seven < -1 - - - 7 < -1 - - - - - data.int_seven >= 8 - - - 7 >= 8 - - - - - data.int_seven <= 6 - - - 7 <= 6 - - - - - data.float_nine_point_one < 9 - - - 9.1f < 9 - - - - - data.float_nine_point_one > 10 - - - 9.1f > 10 - - - - - data.float_nine_point_one > 9.2 - - - 9.1f > 9.2 - - - - - data.str_hello > "hello" - - - "hello" > "hello" - - - - - data.str_hello < "hello" - - - "hello" < "hello" - - - - - data.str_hello > "hellp" - - - "hello" > "hellp" - - - - - data.str_hello > "z" - - - "hello" > "z" - - - - - data.str_hello < "hellm" - - - "hello" < "hellm" - - - - - data.str_hello < "a" - - - "hello" < "a" - - - - - data.str_hello >= "z" - - - "hello" >= "z" - - - - - data.str_hello <= "a" - - - "hello" <= "a" - - - - @@ -1071,491 +757,15 @@ - - + + - long_var == unsigned_char_var + testStringForMatching(), Contains( "not there" ) - 1 == 1 + "this string contains 'abc' as a substring" contains: "not there" - - - long_var == unsigned_short_var - - - 1 == 1 - - - - - long_var == unsigned_int_var - - - 1 == 1 - - - - - long_var == unsigned_long_var - - - 1 == 1 - - - - - - - - unsigned_char_var == 1 - - - 1 == 1 - - - - - unsigned_short_var == 1 - - - 1 == 1 - - - - - unsigned_int_var == 1 - - - 1 == 1 - - - - - unsigned_long_var == 1 - - - 1 == 1 - - - - - - - - ( -1 > 2u ) - - - true - - - - - -1 > 2u - - - -1 > 2 - - - - - ( 2u < -1 ) - - - true - - - - - 2u < -1 - - - 2 < -1 - - - - - ( minInt > 2u ) - - - true - - - - - minInt > 2u - - - -2147483648 > 2 - - - - - - - - 54 == 6*9 - - - 54 == 54 - - - - - - - - p == nullptr - - - NULL == nullptr - - - - - p == pNULL - - - NULL == NULL - - - - - p != nullptr - - - 0x != nullptr - - - - - cp != nullptr - - - 0x != nullptr - - - - - cpc != nullptr - - - 0x != nullptr - - - - - returnsNull() == nullptr - - - {null string} == nullptr - - - - - returnsConstNull() == nullptr - - - {null string} == nullptr - - - - - nullptr != p - - - nullptr != 0x - - - - - - - - false == false - - - false == false - - - - - true == true - - - true == true - - - - - !false - - - true - - - - - !false - - - !false - - - - - !falseValue - - - true - - - - - !falseValue - - - !false - - - - - !(1 == 2) - - - true - - - - - !1 == 2 - - - !(1 == 2) - - - - - - - - false != false - - - false != false - - - - - true != true - - - true != true - - - - - !true - - - false - - - - - !true - - - !true - - - - - !trueValue - - - false - - - - - !trueValue - - - !true - - - - - !(1 == 1) - - - false - - - - - !1 == 1 - - - !(1 == 1) - - - - - - - - thisThrows() - - - thisThrows() - - - - - thisDoesntThrow() - - - thisDoesntThrow() - - - - - thisThrows() - - - thisThrows() - - - - - - - - thisThrows() - - - thisThrows() - - - expected exception - - - - - thisDoesntThrow() - - - thisDoesntThrow() - - - - - thisThrows() - - - thisThrows() - - - expected exception - - - - - - - unexpected exception - - - - - - - 1 == 1 - - - 1 == 1 - - - - - {Unknown expression after the reported line} - - - {Unknown expression after the reported line} - - - unexpected exception - - - - - -
- - unexpected exception - - -
- -
- - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - - - - - - custom exception - - - - - - custom std exception - @@ -1586,19 +796,229 @@
- + - 3.14 + custom std exception - - + + - thisFunctionNotImplemented( 7 ) + t == 1u - thisFunctionNotImplemented( 7 ) + {?} == 1 + + + + + + + + testStringForMatching(), EndsWith( "this" ) + + + "this string contains 'abc' as a substring" ends with: "this" + + + + + + + + data.int_seven == 6 + + + 7 == 6 + + + + + data.int_seven == 8 + + + 7 == 8 + + + + + data.int_seven == 0 + + + 7 == 0 + + + + + data.float_nine_point_one == Approx( 9.11f ) + + + 9.1f == Approx( 9.1099996567 ) + + + + + data.float_nine_point_one == Approx( 9.0f ) + + + 9.1f == Approx( 9.0 ) + + + + + data.float_nine_point_one == Approx( 1 ) + + + 9.1f == Approx( 1.0 ) + + + + + data.float_nine_point_one == Approx( 0 ) + + + 9.1f == Approx( 0.0 ) + + + + + data.double_pi == Approx( 3.1415 ) + + + 3.1415926535 == Approx( 3.1415 ) + + + + + data.str_hello == "goodbye" + + + "hello" == "goodbye" + + + + + data.str_hello == "hell" + + + "hello" == "hell" + + + + + data.str_hello == "hello1" + + + "hello" == "hello1" + + + + + data.str_hello.size() == 6 + + + 5 == 6 + + + + + x == Approx( 1.301 ) + + + 1.3 == Approx( 1.301 ) + + + + + + + + data.int_seven == 7 + + + 7 == 7 + + + + + data.float_nine_point_one == Approx( 9.1f ) + + + 9.1f == Approx( 9.1000003815 ) + + + + + data.double_pi == Approx( 3.1415926535 ) + + + 3.1415926535 == Approx( 3.1415926535 ) + + + + + data.str_hello == "hello" + + + "hello" == "hello" + + + + + "hello" == data.str_hello + + + "hello" == "hello" + + + + + data.str_hello.size() == 5 + + + 5 == 5 + + + + + x == Approx( 1.3 ) + + + 1.3 == Approx( 1.3 ) + + + + + + + + testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) + + + "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" + + + + + + + + testStringForMatching(), Equals( "something else" ) + + + "this string contains 'abc' as a substring" equals: "something else" + + + + + + + + "", Equals(nullptr) + + + "" equals: "" @@ -1663,25 +1083,111 @@ - - + + - thisThrows(), "expected exception" + thisThrows() - thisThrows(), "expected exception" + thisThrows() + + + expected exception + + + + + thisDoesntThrow() + + + thisDoesntThrow() - + - thisThrows(), "should fail" + thisThrows() - expected exception + thisThrows() + + expected exception + + + + This is a failure + + + + + + + + + + + Factorial(0) == 1 + + + 1 == 1 + + + + + Factorial(1) == 1 + + + 1 == 1 + + + + + Factorial(2) == 2 + + + 2 == 2 + + + + + Factorial(3) == 6 + + + 6 == 6 + + + + + Factorial(10) == 3628800 + + + 3628800 (0x) == 3628800 (0x) + + + + + + + + i->first == i->second-1 + + + 0 == 0 + + + + + i->first == i->second-1 + + + 2 == 2 + + + + @@ -2837,25 +2343,6 @@ - - - - i->first == i->second-1 - - - 0 == 0 - - - - - i->first == i->second-1 - - - 2 == 2 - - - - this is a message @@ -2865,9 +2352,6 @@ - - - this message should be logged @@ -2926,1758 +2410,140 @@ - - - This is a failure - - - - - - - - - - - -
- - Message from section one - - -
-
- - Message from section two - - -
- -
- -
- -
-
- -
- -
- - + + - i < 10 + data.int_seven != 7 - 0 < 10 + 7 != 7 - + - i < 10 + data.float_nine_point_one != Approx( 9.1f ) - 1 < 10 + 9.1f != Approx( 9.1000003815 ) - + - i < 10 + data.double_pi != Approx( 3.1415926535 ) - 2 < 10 + 3.1415926535 != Approx( 3.1415926535 ) - + - i < 10 + data.str_hello != "hello" - 3 < 10 + "hello" != "hello" - + - i < 10 + data.str_hello.size() != 5 - 4 < 10 - - - - - i < 10 - - - 5 < 10 - - - - - i < 10 - - - 6 < 10 - - - - - i < 10 - - - 7 < 10 - - - - - i < 10 - - - 8 < 10 - - - - - i < 10 - - - 9 < 10 - - - - current counter 10 - - - i := 10 - - - - i < 10 - - - 10 < 10 - - - - - - - - 1 == 2 - - - 1 == 2 + 5 != 5 - - - - - - Previous info should not be seen - - - - - - hi - - - i := 7 - - + + - false + data.int_seven != 6 - false + 7 != 6 - - - - - actual address of p: 0x - - - toString(p): 0x - - - - -
- - - a != b - - - 1 != 2 - - - - - b != a - - - 2 != 1 - - - -
-
- - - a != b - - - 1 != 2 - - - -
- -
- -
- - - a != b - - - 1 != 2 - - - - - b != a - - - 2 != 1 - - -
- - - a != b - - - 1 != 2 - - - -
- -
- -
- -
-
- - - a == b - - - 1 == 2 - - - -
- -
-
-
- - - a != b - - - 1 != 2 - - - -
- -
-
-
- - - a < b - - - 1 < 2 - - - -
- -
- -
- -
-
- -
- -
-
-
- -
- -
-
- -
- -
- -
- - - b > a - - - 0 > 1 - - - -
- -
- - - Testing if fib[0] (1) is even - - + - ( fib[i] % 2 ) == 0 + data.int_seven != 8 - 1 == 0 + 7 != 8 - - Testing if fib[1] (1) is even - - + - ( fib[i] % 2 ) == 0 + data.float_nine_point_one != Approx( 9.11f ) - 1 == 0 + 9.1f != Approx( 9.1099996567 ) - + - ( fib[i] % 2 ) == 0 + data.float_nine_point_one != Approx( 9.0f ) - 0 == 0 + 9.1f != Approx( 9.0 ) - - Testing if fib[3] (3) is even - - + - ( fib[i] % 2 ) == 0 + data.float_nine_point_one != Approx( 1 ) - 1 == 0 + 9.1f != Approx( 1.0 ) - - Testing if fib[4] (5) is even - - + - ( fib[i] % 2 ) == 0 + data.float_nine_point_one != Approx( 0 ) - 1 == 0 + 9.1f != Approx( 0.0 ) - + - ( fib[i] % 2 ) == 0 + data.double_pi != Approx( 3.1415 ) - 0 == 0 + 3.1415926535 != Approx( 3.1415 ) - - Testing if fib[6] (13) is even - - + - ( fib[i] % 2 ) == 0 + data.str_hello != "goodbye" - 1 == 0 + "hello" != "goodbye" - - Testing if fib[7] (21) is even - - + - ( fib[i] % 2 ) == 0 + data.str_hello != "hell" - 1 == 0 + "hello" != "hell" - - - - - - - + - makeString( false ) != static_cast<char*>(nullptr) + data.str_hello != "hello1" - "valid string" != {null string} + "hello" != "hello1" - + - makeString( true ) == static_cast<char*>(nullptr) + data.str_hello.size() != 6 - {null string} == {null string} + 5 != 6 - - - - flag - - - true - - - - - testCheckedIf( true ) - - - true - - - - - - - - flag - - - false - - - - - testCheckedIf( false ) - - - false - - - - - - - - flag - - - true - - - - - testCheckedElse( true ) - - - true - - - - - - - - flag - - - false - - - - - testCheckedElse( false ) - - - false - - - - - -
- -
-
- -
- -
- - - 3 - - - - false - - - false - - - - - - - - x == 0 - - - 0 == 0 - - - - - - - - testStringForMatching(), Contains( "string" ) - - - "this string contains 'abc' as a substring" contains: "string" - - - - - testStringForMatching(), Contains( "abc" ) - - - "this string contains 'abc' as a substring" contains: "abc" - - - - - testStringForMatching(), StartsWith( "this" ) - - - "this string contains 'abc' as a substring" starts with: "this" - - - - - testStringForMatching(), EndsWith( "substring" ) - - - "this string contains 'abc' as a substring" ends with: "substring" - - - - - - - - testStringForMatching(), Contains( "not there" ) - - - "this string contains 'abc' as a substring" contains: "not there" - - - - - - - - testStringForMatching(), StartsWith( "string" ) - - - "this string contains 'abc' as a substring" starts with: "string" - - - - - - - - testStringForMatching(), EndsWith( "this" ) - - - "this string contains 'abc' as a substring" ends with: "this" - - - - - - - - testStringForMatching(), Equals( "something else" ) - - - "this string contains 'abc' as a substring" equals: "something else" - - - - - - - - "", Equals(nullptr) - - - "" equals: "" - - - - - - - - testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) - - - "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" ) - - - - - - - - testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) - - - "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" ) - - - - - testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) - - - "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" ) - - - - - - - - testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) - - - "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" - - - - - - - - testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) - - - "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" ) - - - - - - - - testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - - - "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" ) - - - - - testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - - - "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" ) - - - - - - - - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) - - - "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" ) - - - - - - - - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) - - - "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" ) - - - - - - - - testStringForMatching(), !Contains( "different" ) - - - "this string contains 'abc' as a substring" not contains: "different" - - - - - - - - testStringForMatching(), !Contains( "substring" ) - - - "this string contains 'abc' as a substring" not contains: "substring" - - - - - - - - Factorial(0) == 1 - - - 1 == 1 - - - - - Factorial(1) == 1 - - - 1 == 1 - - - - - Factorial(2) == 2 - - - 2 == 2 - - - - - Factorial(3) == 6 - - - 6 == 6 - - - - - Factorial(10) == 3628800 - - - 3628800 (0x) == 3628800 (0x) - - - - - - - - - - This one ran - - - - - - - - - - - - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 10 - - - 10 == 10 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 0 - - - 0 == 0 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.capacity() == 0 - - - 0 == 0 - - - -
- -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - - -
- -
- -
-
- -
- -
- - to infinity and beyond - - -
- - - - - - - s1 == s2 - - - "if ($b == 10) { - $a = 20; -}" -== -"if ($b == 10) { - $a = 20; -} -" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - -
- - - encode( "normal string" ) == "normal string" - - - "normal string" == "normal string" - - - -
-
- - - encode( "" ) == "" - - - "" == "" - - - -
-
- - - encode( "smith & jones" ) == "smith &amp; jones" - - - "smith &amp; jones" == "smith &amp; jones" - - - -
-
- - - encode( "smith < jones" ) == "smith &lt; jones" - - - "smith &lt; jones" == "smith &lt; jones" - - - -
-
- - - encode( "smith > jones" ) == "smith > jones" - - - "smith > jones" == "smith > jones" - - - - - encode( "smith ]]> jones" ) == "smith ]]&gt; jones" - - - "smith ]]&gt; jones" -== -"smith ]]&gt; jones" - - - -
-
- - - encode( stringWithQuotes ) == stringWithQuotes - - - "don't "quote" me on that" -== -"don't "quote" me on that" - - - - - encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" - - - "don't &quot;quote&quot; me on that" -== -"don't &quot;quote&quot; me on that" - - - -
-
- - - encode( "[\x01]" ) == "[&#x01;]" - - - "[&#x01;]" == "[&#x01;]" - - - -
-
- - - encode( "[\x7F]" ) == "[&#x7F;]" - - - "[&#x7F;]" == "[&#x7F;]" - - - -
- -
- - - - l == std::numeric_limits<long long>::max() - - - 9223372036854775807 (0x) -== -9223372036854775807 (0x) - - - - - - - - - - - -
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak == false - - - false == false - - - - - config.abortAfter == -1 - - - -1 == -1 - - - - - config.noThrow == false - - - false == false - - - - - config.reporterNames.empty() - - - true - - - -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "console" - - - "console" == "console" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "xml" - - - "xml" == "xml" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames.size() == 2 - - - 2 == 2 - - - - - config.reporterNames[0] == "xml" - - - "xml" == "xml" - - - - - config.reporterNames[1] == "junit" - - - "junit" == "junit" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "junit" - - - "junit" == "junit" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 1 - - - 1 == 1 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 2 - - - 2 == 2 - - - -
- -
-
-
- - - parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) - - - "Value after -x or --abortAfter must be greater than zero -- while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero" - - - -
- -
-
-
- - - parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) - - - "Unable to convert oops to destination type -- while parsing: (-x, --abortx <no. failures>)" contains: "-x" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.outputFilename == "filename.ext" - - - "filename.ext" == "filename.ext" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.outputFilename == "filename.ext" - - - "filename.ext" == "filename.ext" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 1 - - - 1 == 1 - - - - - config.shouldDebugBreak - - - true - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Auto - - - 0 == 0 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Auto - - - 0 == 0 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Yes - - - 1 == 1 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::No - - - 2 == 2 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) - - - parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) - - - -
- -
- -
@@ -5176,168 +3042,6 @@ four"
- -
- - - replaceInPlace( letters, "b", "z" ) - - - true - - - - - letters == "azcdefcg" - - - "azcdefcg" == "azcdefcg" - - - -
-
- - - replaceInPlace( letters, "c", "z" ) - - - true - - - - - letters == "abzdefzg" - - - "abzdefzg" == "abzdefzg" - - - -
-
- - - replaceInPlace( letters, "a", "z" ) - - - true - - - - - letters == "zbcdefcg" - - - "zbcdefcg" == "zbcdefcg" - - - -
-
- - - replaceInPlace( letters, "g", "z" ) - - - true - - - - - letters == "abcdefcz" - - - "abcdefcz" == "abcdefcz" - - - -
-
- - - replaceInPlace( letters, letters, "replaced" ) - - - true - - - - - letters == "replaced" - - - "replaced" == "replaced" - - - -
-
- - - !replaceInPlace( letters, "x", "z" ) - - - !false - - - - - letters == letters - - - "abcdefcg" == "abcdefcg" - - - -
-
- - - replaceInPlace( s, "'", "|'" ) - - - true - - - - - s == "didn|'t" - - - "didn|'t" == "didn|'t" - - - -
- -
- - - - - - - Text( "hi there" ).toString() == "hi there" - - - "hi there" == "hi there" - - - - - Text( "hi there", narrow ).toString() == "hi\nthere" - - - "hi -there" -== -"hi -there" - - - - @@ -6352,204 +4056,122 @@ there" - - + + - (std::pair<int, int>( 1, 2 )) == aNicePair + testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) - std::pair( 1, 2 ) == std::pair( 1, 2 ) + "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" ) - - - Uncomment the code in this test to check that it gives a sensible compiler error - - - - - - Uncomment the code in this test to check that it gives a sensible compiler error - - - - - + + - &o1 == &o2 + testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - 0x == 0x + "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" ) - + - o1 == o2 + testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - {?} == {?} + "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" ) + + + + + + + + testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) + + + "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" ) + + + + + + + + testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) + + + "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" ) - - + + - std::string( "first" ) == "second" + testStringForMatching(), !Contains( "different" ) - "first" == "second" + "this string contains 'abc' as a substring" not contains: "different" + + + + + + + + testStringForMatching(), !Contains( "substring" ) + + + "this string contains 'abc' as a substring" not contains: "substring" - - + + - i++ == 7 + thisThrows(), "expected exception" - 7 == 7 + thisThrows(), "expected exception" - + - i++ == 8 + thisThrows(), "should fail" - 8 == 8 + expected exception + + + + + This one ran + - - + + + custom exception + + + + + - 0x == o + thisFunctionNotImplemented( 7 ) - 3221225472 (0x) == {?} + thisFunctionNotImplemented( 7 ) - - - - t == 1u - - - {?} == 1 - - - - - - - - 0x == bit30and31 - - - 3221225472 (0x) == 3221225472 - - - - - - - - obj.prop != nullptr - - - 0x != nullptr - - - - - -
- - - is_true<true>::value == true - - - true == true - - - - - true == is_true<true>::value - - - true == true - - - -
-
- - - is_true<false>::value == false - - - false == false - - - - - false == is_true<false>::value - - - false == false - - - -
-
- - - !is_true<false>::value - - - true - - - -
-
- - - !!is_true<true>::value - - - true - - - -
-
- - - is_true<true>::value - - - true - - - - - !is_true<false>::value - - - !false - - - -
- -
@@ -6577,1479 +4199,325 @@ there" - + - Catch::alwaysTrue() + 0x == o - true + 3221225472 (0x) == {?} -
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - - -
- + + + + + + data.int_seven > 7 + + + 7 > 7 + + + + + data.int_seven < 7 + + + 7 < 7 + + + + + data.int_seven > 8 + + + 7 > 8 + + + + + data.int_seven < 6 + + + 7 < 6 + + + + + data.int_seven < 0 + + + 7 < 0 + + + + + data.int_seven < -1 + + + 7 < -1 + + + + + data.int_seven >= 8 + + + 7 >= 8 + + + + + data.int_seven <= 6 + + + 7 <= 6 + + + + + data.float_nine_point_one < 9 + + + 9.1f < 9 + + + + + data.float_nine_point_one > 10 + + + 9.1f > 10 + + + + + data.float_nine_point_one > 9.2 + + + 9.1f > 9.2 + + + + + data.str_hello > "hello" + + + "hello" > "hello" + + + + + data.str_hello < "hello" + + + "hello" < "hello" + + + + + data.str_hello > "hellp" + + + "hello" > "hellp" + + + + + data.str_hello > "z" + + + "hello" > "z" + + + + + data.str_hello < "hellm" + + + "hello" < "hellm" + + + + + data.str_hello < "a" + + + "hello" < "a" + + + + + data.str_hello >= "z" + + + "hello" >= "z" + + + + + data.str_hello <= "a" + + + "hello" <= "a" + + + + + + + + data.int_seven < 8 + + + 7 < 8 + + + + + data.int_seven > 6 + + + 7 > 6 + + + + + data.int_seven > 0 + + + 7 > 0 + + + + + data.int_seven > -1 + + + 7 > -1 + + + + + data.int_seven >= 7 + + + 7 >= 7 + + + + + data.int_seven >= 6 + + + 7 >= 6 + + + + + data.int_seven <= 7 + + + 7 <= 7 + + + + + data.int_seven <= 8 + + + 7 <= 8 + + + + + data.float_nine_point_one > 9 + + + 9.1f > 9 + + + + + data.float_nine_point_one < 10 + + + 9.1f < 10 + + + + + data.float_nine_point_one < 9.2 + + + 9.1f < 9.2 + + + + + data.str_hello <= "hello" + + + "hello" <= "hello" + + + + + data.str_hello >= "hello" + + + "hello" >= "hello" + + + + + data.str_hello < "hellp" + + + "hello" < "hellp" + + + + + data.str_hello < "zebra" + + + "hello" < "zebra" + + + + + data.str_hello > "hellm" + + + "hello" > "hellm" + + + + + data.str_hello > "a" + + + "hello" > "a" + + + + + +
+ + Message from section one + +
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - - -
- +
+ + Message from section two + +
- - - - - - s == "7" - - - "7" == "7" - - - - - - - - a - - - true - - - - - a == &foo - - - 0x == 0x - - - - - - - - m == &S::f - - - 0x -== -0x - - - - - - - - p == 0 - - - NULL == 0 - - - - - - - - ptr.get() == nullptr - - - NULL == nullptr - - - - - - - - - - - - - - - - - - - - Catch::toString( item ) == "toString( has_toString )" - - - "toString( has_toString )" -== -"toString( has_toString )" - - - - - - - - Catch::toString( item ) == "StringMaker<has_maker>" - - - "StringMaker<has_maker>" -== -"StringMaker<has_maker>" - - - - - - - - Catch::toString( item ) == "toString( has_maker_and_toString )" - - - "toString( has_maker_and_toString )" -== -"toString( has_maker_and_toString )" - - - - - - - - Catch::toString( v ) == "{ {?} }" - - - "{ {?} }" == "{ {?} }" - - - - - - - - Catch::toString( v ) == "{ StringMaker<has_maker> }" - - - "{ StringMaker<has_maker> }" -== -"{ StringMaker<has_maker> }" - - - - - - - - Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" - - - "{ StringMaker<has_maker_and_toString> }" -== -"{ StringMaker<has_maker_and_toString> }" - - - - - - - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isSuccessfullyCompleted() - - - true - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isComplete() - - - true - - - - - s1.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isComplete() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isComplete() - - - true - - - - - s1.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2.isOpen() - - - true - - - - - ctx.completedCycle() - - - true - - - - - testCase.isComplete() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2b.isOpen() - - - true - - - - - ctx.completedCycle() == false - - - false == false - - -
- - - ctx.completedCycle() - - - true - - - - - s2b.isSuccessfullyCompleted() - - - true - - - - - testCase2.isComplete() == false - - - false == false - - - - - testCase2.isSuccessfullyCompleted() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2b.isOpen() - - - true - - - - - ctx.completedCycle() == false - - - false == false - - -
- - - ctx.completedCycle() - - - true - - - - - s2b.isComplete() - - - true - - - - - s2b.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase2.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase3.isOpen() - - - true - - - - - s1c.isOpen() == false - - - false == false - - - - - s2c.isOpen() == false - - - false == false - - - - - testCase3.isSuccessfullyCompleted() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s1.isComplete() == false - - - false == false - - - - - s1.isComplete() - - - true - - - - - testCase.isComplete() == false - - - false == false - - - - - testCase.isComplete() - - - true - - - -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s1.isComplete() == false - - - false == false - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 1 - - - 1 == 1 - - - - - s1.isComplete() == false - - - false == false - - - - - s1b.isComplete() - - - true - - - - - g1b.isComplete() - - - true - - - - - testCase2.isComplete() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s1.isComplete() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 1 - - - 1 == 1 - - - - - s2b.isOpen() - - - true - - - - - s2b.isComplete() - - - true - - - - - g1b.isComplete() - - - true - - - - - s1b.isComplete() - - - true - - - - - testCase2.isComplete() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s2.isSuccessfullyCompleted() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 0 - - - 0 == 0 - - - - - s2b.isOpen() == false - - - false == false - - - - - g1b.isComplete() == false - - - false == false - - - - - s1b.isComplete() == false - - - false == false - - - - - testCase2.isComplete() == false - - - false == false - - - - - testCase3.isOpen() - - - true - - - - - s1c.isOpen() - - - true - - - - - g1c.isOpen() - - - true - - - - - g1c.index() == 1 - - - 1 == 1 - - - - - s2c.isOpen() - - - true - - - - - s2c.isComplete() - - - true - - - - - g1c.isComplete() - - - true - - - - - s1c.isComplete() - - - true - - - - - testCase3.isComplete() - - - true - - - -
- -
- -
- -
- - - - Catch::toString( value ) == "{ 34, \"xyzzy\" }" - - - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - - - - - - - - Catch::toString(value) == "{ 34, \"xyzzy\" }" - - - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - - - - - - - - Catch::toString( pr ) == "{ { \"green\", 55 } }" - - - "{ { "green", 55 } }" -== -"{ { "green", 55 } }" - - - - - - - - Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" - - - "{ { 42, "Arthur" }, { "Ford", 24 } }" -== -"{ { 42, "Arthur" }, { "Ford", 24 } }" - - - - - - - - Catch::toString(vv) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(vv) == "{ 42 }" - - - "{ 42 }" == "{ 42 }" - - - - - Catch::toString(vv) == "{ 42, 250 }" - - - "{ 42, 250 }" == "{ 42, 250 }" - - - - - - - - Catch::toString(vv) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(vv) == "{ \"hello\" }" - - - "{ "hello" }" == "{ "hello" }" - - - - - Catch::toString(vv) == "{ \"hello\", \"world\" }" - - - "{ "hello", "world" }" -== -"{ "hello", "world" }" - - - - - - - - Catch::toString(vv) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(vv) == "{ 42 }" - - - "{ 42 }" == "{ 42 }" - - - - - Catch::toString(vv) == "{ 42, 250 }" - - - "{ 42, 250 }" == "{ 42, 250 }" - - - - - - - - Catch::toString(v) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" - - - "{ { "hello" }, { "world" } }" -== -"{ { "hello" }, { "world" } }" - - - +
@@ -9227,185 +5695,808 @@ there"
- - + + - "{ }" == Catch::toString(type{}) + (std::pair<int, int>( 1, 2 )) == aNicePair - "{ }" == "{ }" - - - - - "{ }" == Catch::toString(value) - - - "{ }" == "{ }" + std::pair( 1, 2 ) == std::pair( 1, 2 ) - - + + - "{ 0 }" == Catch::toString(type{0}) + p == nullptr - "{ 0 }" == "{ 0 }" + NULL == nullptr + + + + + p == pNULL + + + NULL == NULL + + + + + p != nullptr + + + 0x != nullptr + + + + + cp != nullptr + + + 0x != nullptr + + + + + cpc != nullptr + + + 0x != nullptr + + + + + returnsNull() == nullptr + + + {null string} == nullptr + + + + + returnsConstNull() == nullptr + + + {null string} == nullptr + + + + + nullptr != p + + + nullptr != 0x - - - - "1.2f" == Catch::toString(float(1.2)) - - - "1.2f" == "1.2f" - - - - - "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) - - - "{ 1.2f, 0 }" == "{ 1.2f, 0 }" - - + + + actual address of p: 0x + + + toString(p): 0x + - - - - "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) - - - "{ "hello", "world" }" -== -"{ "hello", "world" }" - - - - - - - - "{ { 42 }, { }, 1.2f }" == Catch::toString(value) - - - "{ { 42 }, { }, 1.2f }" -== -"{ { 42 }, { }, 1.2f }" - - - - - - - - "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) - - - "{ nullptr, 42, "Catch me" }" -== -"{ nullptr, 42, "Catch me" }" - - - - - -
- + +
+ - what, Contains( "[@zzz]" ) + parseIntoConfig( argv, config ) - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "[@zzz]" + parseIntoConfig( argv, config ) - + - what, Contains( "file" ) + config.shouldDebugBreak == false - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "file" + false == false - + - what, Contains( "2" ) + config.abortAfter == -1 - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "2" + -1 == -1 - + - what, Contains( "10" ) + config.noThrow == false - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "10" + false == false + + + config.reporterNames.empty() + + + true + + + +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false + + + false == false + + + + + cfg.testSpec().matches( fakeTestCase( "test1" ) ) + + + true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false + + + false == false + + + + + cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) + + + true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false + + + false == false + + + + + cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) + + + true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.reporterNames[0] == "console" + + + "console" == "console" + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.reporterNames[0] == "xml" + + + "xml" == "xml" + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.reporterNames.size() == 2 + + + 2 == 2 + + + + + config.reporterNames[0] == "xml" + + + "xml" == "xml" + + + + + config.reporterNames[1] == "junit" + + + "junit" == "junit" + + + +
-
- - - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) - - - +
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.reporterNames[0] == "junit" + + + "junit" == "junit" + + + +
+
- - - - - - - - - -
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.shouldDebugBreak == true + + + true == true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.shouldDebugBreak + + + true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.abortAfter == 1 + + + 1 == 1 + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.abortAfter == 2 + + + 2 == 2 + + + +
+ +
+
+
+ + + parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) + + + "Value after -x or --abortAfter must be greater than zero +- while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero" + + + +
+
+
+ + + parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) + + + "Unable to convert oops to destination type +- while parsing: (-x, --abortx <no. failures>)" contains: "-x" + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.noThrow == true + + + true == true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.noThrow == true + + + true == true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.outputFilename == "filename.ext" + + + "filename.ext" == "filename.ext" + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.outputFilename == "filename.ext" + + + "filename.ext" == "filename.ext" + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.abortAfter == 1 + + + 1 == 1 + + + + + config.shouldDebugBreak + + + true + + + + + config.noThrow == true + + + true == true + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.useColour == UseColour::Auto + + + 0 == 0 + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.useColour == UseColour::Auto + + + 0 == 0 + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.useColour == UseColour::Yes + + + 1 == 1 + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ) + + + parseIntoConfig( argv, config ) + + + + + config.useColour == UseColour::No + + + 2 == 2 + + + +
+ +
+
+
+ + + parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) + + + parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) + + + +
+ +
+ + + + + + i < 10 + + + 0 < 10 + + + + + i < 10 + + + 1 < 10 + + + + + i < 10 + + + 2 < 10 + + + + + i < 10 + + + 3 < 10 + + + + + i < 10 + + + 4 < 10 + + + + + i < 10 + + + 5 < 10 + + + + + i < 10 + + + 6 < 10 + + + + + i < 10 + + + 7 < 10 + + + + + i < 10 + + + 8 < 10 + + + + + i < 10 + + + 9 < 10 + + + + current counter 10 + + + i := 10 + + + + i < 10 + + + 10 < 10 + + + + + + + + + + + +
+ + + before == 0 + + + 0 == 0 + + +
+
+ + + after > before + + + 1 > 0 + + + +
+ +
+ +
@@ -9439,6 +6530,18 @@ there"
+ +
+
+
+ +
+ +
+ +
+ +
@@ -9530,44 +6633,2941 @@ there"
- -
-
-
- -
- -
- + + + + + + + d == Approx( 1.23 ) + + + 1.23 == Approx( 1.23 ) + + + + + d != Approx( 1.22 ) + + + 1.23 != Approx( 1.22 ) + + + + + d != Approx( 1.24 ) + + + 1.23 != Approx( 1.24 ) + + + + + Approx( d ) == 1.23 + + + Approx( 1.23 ) == 1.23 + + + + + Approx( d ) != 1.22 + + + Approx( 1.23 ) != 1.22 + + + + + Approx( d ) != 1.24 + + + Approx( 1.23 ) != 1.24 + + + + + +
+ +
+
+ +
+ +
+ + + + testStringForMatching(), StartsWith( "string" ) + + + "this string contains 'abc' as a substring" starts with: "string" + + + + + + + + testStringForMatching(), Contains( "string" ) + + + "this string contains 'abc' as a substring" contains: "string" + + + + + testStringForMatching(), Contains( "abc" ) + + + "this string contains 'abc' as a substring" contains: "abc" + + + + + testStringForMatching(), StartsWith( "this" ) + + + "this string contains 'abc' as a substring" starts with: "this" + + + + + testStringForMatching(), EndsWith( "substring" ) + + + "this string contains 'abc' as a substring" ends with: "substring" + + + + + + + + + + + s1 == s2 + + + "if ($b == 10) { + $a = 20; +}" +== +"if ($b == 10) { + $a = 20; +} +" + + + + + +
+ + + what, Contains( "[@zzz]" ) + + + "error: tag alias, "[@zzz]" already registered. + First seen at file:2 + Redefined at file:10" contains: "[@zzz]" + + + + + what, Contains( "file" ) + + + "error: tag alias, "[@zzz]" already registered. + First seen at file:2 + Redefined at file:10" contains: "file" + + + + + what, Contains( "2" ) + + + "error: tag alias, "[@zzz]" already registered. + First seen at file:2 + Redefined at file:10" contains: "2" + + + + + what, Contains( "10" ) + + + "error: tag alias, "[@zzz]" already registered. + First seen at file:2 + Redefined at file:10" contains: "10" + + + +
+
+ + + registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + + + registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + + + registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) + + + + + registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) + + + registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) + + +
- -
- + + + + + + + 0x == bit30and31 + + + 3221225472 (0x) == 3221225472 + + + + + + + + Text( "hi there" ).toString() == "hi there" + + + "hi there" == "hi there" + + + + + Text( "hi there", narrow ).toString() == "hi\nthere" + + + "hi +there" +== +"hi +there" + + + + + + + + 1 == 2 + + + 1 == 2 + + + + + + + + + + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ - before == 0 + s1.isSuccessfullyCompleted() + + + true + + + + + testCase.isComplete() == false + + + false == false + + + + + ctx.completedCycle() + + + true + + + + + testCase.isSuccessfullyCompleted() + + + true + + + +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + s1.isComplete() + + + true + + + + + s1.isSuccessfullyCompleted() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + + + + ctx.completedCycle() + + + true + + + + + testCase.isSuccessfullyCompleted() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() == false + + + false == false + + + + + ctx.completedCycle() + + + true + + + + + testCase.isComplete() + + + true + + + + + testCase.isSuccessfullyCompleted() + + + true + + + +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + s1.isComplete() + + + true + + + + + s1.isSuccessfullyCompleted() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + + + + ctx.completedCycle() + + + true + + + + + testCase.isSuccessfullyCompleted() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() == false + + + false == false + + + + + s2.isOpen() + + + true + + + + + ctx.completedCycle() + + + true + + + + + testCase.isComplete() + + + true + + + + + testCase.isSuccessfullyCompleted() + + + true + + + +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + s2.isOpen() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() == false + + + false == false + + + + + s2b.isOpen() + + + true + + + + + ctx.completedCycle() == false + + + false == false + + +
+ + + ctx.completedCycle() + + + true + + + + + s2b.isSuccessfullyCompleted() + + + true + + + + + testCase2.isComplete() == false + + + false == false + + + + + testCase2.isSuccessfullyCompleted() + + + true + + + +
+ +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + s2.isOpen() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() == false + + + false == false + + + + + s2b.isOpen() + + + true + + + + + ctx.completedCycle() == false + + + false == false + + +
+ + + ctx.completedCycle() + + + true + + + + + s2b.isComplete() + + + true + + + + + s2b.isSuccessfullyCompleted() == false + + + false == false + + + + + testCase2.isSuccessfullyCompleted() == false + + + false == false + + + + + testCase3.isOpen() + + + true + + + + + s1c.isOpen() == false + + + false == false + + + + + s2c.isOpen() == false + + + false == false + + + + + testCase3.isSuccessfullyCompleted() + + + true + + + +
+ +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + s2.isOpen() + + + true + + + + + s2.isComplete() + + + true + + + + + s1.isComplete() == false + + + false == false + + + + + s1.isComplete() + + + true + + + + + testCase.isComplete() == false + + + false == false + + + + + testCase.isComplete() + + + true + + + +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + g1.isOpen() + + + true + + + + + g1.index() == 0 0 == 0 -
-
- + + + g1.isComplete() == false + + + false == false + + + + + s1.isComplete() == false + + + false == false + + +
+ + + s1.isComplete() == false + + + false == false + + + + + testCase.isSuccessfullyCompleted() == false + + + false == false + + +
+ - after > before + testCase2.isOpen() - 1 > 0 + true - + + + s1b.isOpen() + + + true + + + + + g1b.isOpen() + + + true + + + + + g1b.index() == 1 + + + 1 == 1 + + + + + s1.isComplete() == false + + + false == false + + + + + s1b.isComplete() + + + true + + + + + g1b.isComplete() + + + true + + + + + testCase2.isComplete() + + + true + + +
+ +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + g1.isOpen() + + + true + + + + + g1.index() == 0 + + + 0 == 0 + + + + + g1.isComplete() == false + + + false == false + + + + + s1.isComplete() == false + + + false == false + + +
+ + + s2.isOpen() + + + true + + + + + s2.isComplete() + + + true + + + + + s1.isComplete() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() + + + true + + + + + g1b.isOpen() + + + true + + + + + g1b.index() == 1 + + + 1 == 1 + + + + + s2b.isOpen() + + + true + + + + + s2b.isComplete() + + + true + + + + + g1b.isComplete() + + + true + + + + + s1b.isComplete() + + + true + + + + + testCase2.isComplete() + + + true + + + +
+ +
+ +
+ + + testCase.isOpen() + + + true + + + + + s1.isOpen() + + + true + + +
+ + + g1.isOpen() + + + true + + + + + g1.index() == 0 + + + 0 == 0 + + + + + g1.isComplete() == false + + + false == false + + + + + s1.isComplete() == false + + + false == false + + +
+ + + s2.isOpen() + + + true + + + + + s2.isComplete() + + + true + + + + + s2.isSuccessfullyCompleted() == false + + + false == false + + + + + s1.isComplete() == false + + + false == false + + + + + testCase.isComplete() == false + + + false == false + + +
+ + + testCase2.isOpen() + + + true + + + + + s1b.isOpen() + + + true + + + + + g1b.isOpen() + + + true + + + + + g1b.index() == 0 + + + 0 == 0 + + + + + s2b.isOpen() == false + + + false == false + + + + + g1b.isComplete() == false + + + false == false + + + + + s1b.isComplete() == false + + + false == false + + + + + testCase2.isComplete() == false + + + false == false + + + + + testCase3.isOpen() + + + true + + + + + s1c.isOpen() + + + true + + + + + g1c.isOpen() + + + true + + + + + g1c.index() == 1 + + + 1 == 1 + + + + + s2c.isOpen() + + + true + + + + + s2c.isComplete() + + + true + + + + + g1c.isComplete() + + + true + + + + + s1c.isComplete() + + + true + + + + + testCase3.isComplete() + + + true + + + +
+ +
+ +
+ + + + + 3.14 + + + + + + + d == approx( 1.23 ) + + + 1.23 == Approx( 1.23 ) + + + + + d == approx( 1.22 ) + + + 1.23 == Approx( 1.22 ) + + + + + d == approx( 1.24 ) + + + 1.23 == Approx( 1.24 ) + + + + + d != approx( 1.25 ) + + + 1.23 != Approx( 1.25 ) + + + + + approx( d ) == 1.23 + + + Approx( 1.23 ) == 1.23 + + + + + approx( d ) == 1.22 + + + Approx( 1.23 ) == 1.22 + + + + + approx( d ) == 1.24 + + + Approx( 1.23 ) == 1.24 + + + + + approx( d ) != 1.25 + + + Approx( 1.23 ) != 1.25 + + + + + +
+ +
+ +
+ + + + thisThrows() + + + thisThrows() + + + + + thisDoesntThrow() + + + thisDoesntThrow() + + + + + thisThrows() + + + thisThrows() + + + + + + + unexpected exception + + + + + + + thisThrows() == 0 + + + thisThrows() == 0 + + + expected exception + + + + + + + + thisThrows() == 0 + + + thisThrows() == 0 + + + expected exception + + + + + + + + thisThrows() == 0 + + + thisThrows() == 0 + + + expected exception + + + + + +
+ + unexpected exception + + +
+ +
+ + + + + + Uncomment the code in this test to check that it gives a sensible compiler error + + + + + + Uncomment the code in this test to check that it gives a sensible compiler error + + + + + + + + + + + + + + + + +
+ + + encode( "normal string" ) == "normal string" + + + "normal string" == "normal string" + + + +
+
+ + + encode( "" ) == "" + + + "" == "" + + + +
+
+ + + encode( "smith & jones" ) == "smith &amp; jones" + + + "smith &amp; jones" == "smith &amp; jones" + + + +
+
+ + + encode( "smith < jones" ) == "smith &lt; jones" + + + "smith &lt; jones" == "smith &lt; jones" + + + +
+
+ + + encode( "smith > jones" ) == "smith > jones" + + + "smith > jones" == "smith > jones" + + + + + encode( "smith ]]> jones" ) == "smith ]]&gt; jones" + + + "smith ]]&gt; jones" +== +"smith ]]&gt; jones" + + + +
+
+ + + encode( stringWithQuotes ) == stringWithQuotes + + + "don't "quote" me on that" +== +"don't "quote" me on that" + + + + + encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" + + + "don't &quot;quote&quot; me on that" +== +"don't &quot;quote&quot; me on that" + + + +
+
+ + + encode( "[\x01]" ) == "[&#x01;]" + + + "[&#x01;]" == "[&#x01;]" + + + +
+
+ + + encode( "[\x7F]" ) == "[&#x7F;]" + + + "[&#x7F;]" == "[&#x7F;]" + + + +
+ +
+ + + + x == 0 + + + 0 == 0 + + + + + + + + obj.prop != nullptr + + + 0x != nullptr + + + + + + + + flag + + + true + + + + + testCheckedElse( true ) + + + true + + + + + + + + flag + + + false + + + + + testCheckedElse( false ) + + + false + + + + + + + + flag + + + true + + + + + testCheckedIf( true ) + + + true + + + + + + + + flag + + + false + + + + + testCheckedIf( false ) + + + false + + + + + + + + unsigned_char_var == 1 + + + 1 == 1 + + + + + unsigned_short_var == 1 + + + 1 == 1 + + + + + unsigned_int_var == 1 + + + 1 == 1 + + + + + unsigned_long_var == 1 + + + 1 == 1 + + + + + + + + long_var == unsigned_char_var + + + 1 == 1 + + + + + long_var == unsigned_short_var + + + 1 == 1 + + + + + long_var == unsigned_int_var + + + 1 == 1 + + + + + long_var == unsigned_long_var + + + 1 == 1 + + + + + +
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+ + + + + + Previous info should not be seen + + + + + + + + + + l == std::numeric_limits<long long>::max() + + + 9223372036854775807 (0x) +== +9223372036854775807 (0x) + + + + + +
+ + + b > a + + + 0 > 1 + + + +
+ +
+ + + Testing if fib[0] (1) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + Testing if fib[1] (1) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + + ( fib[i] % 2 ) == 0 + + + 0 == 0 + + + + Testing if fib[3] (3) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + Testing if fib[4] (5) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + + ( fib[i] % 2 ) == 0 + + + 0 == 0 + + + + Testing if fib[6] (13) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + Testing if fib[7] (21) is even + + + + ( fib[i] % 2 ) == 0 + + + 1 == 0 + + + + + +
+
+ + + a == b + + + 1 == 2 + + + +
+ +
+
+
+ + + a != b + + + 1 != 2 + + + +
+ +
+
+
+ + + a < b + + + 1 < 2 + + + +
+ +
+ +
+ +
+ + + a != b + + + 1 != 2 + + + + + b != a + + + 2 != 1 + + +
+ + + a != b + + + 1 != 2 + + + +
+ +
+ +
+ + + + s == "7" + + + "7" == "7" + + + + + + + + + + + makeString( false ) != static_cast<char*>(nullptr) + + + "valid string" != {null string} + + + + + makeString( true ) == static_cast<char*>(nullptr) + + + {null string} == {null string} + + + + + + + + ptr.get() == nullptr + + + NULL == nullptr + + + + + + + + Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" + + + "{ { 42, "Arthur" }, { "Ford", 24 } }" +== +"{ { 42, "Arthur" }, { "Ford", 24 } }" + + + + + + + + p == 0 + + + NULL == 0 + + + + + +
+ + + a != b + + + 1 != 2 + + + + + b != a + + + 2 != 1 + +
+
+ + + a != b + + + 1 != 2 + + + +
+ +
+ +
+ + + replaceInPlace( letters, "b", "z" ) + + + true + + + + + letters == "azcdefcg" + + + "azcdefcg" == "azcdefcg" + + + +
+
+ + + replaceInPlace( letters, "c", "z" ) + + + true + + + + + letters == "abzdefzg" + + + "abzdefzg" == "abzdefzg" + + + +
+
+ + + replaceInPlace( letters, "a", "z" ) + + + true + + + + + letters == "zbcdefcg" + + + "zbcdefcg" == "zbcdefcg" + + + +
+
+ + + replaceInPlace( letters, "g", "z" ) + + + true + + + + + letters == "abcdefcz" + + + "abcdefcz" == "abcdefcz" + + + +
+
+ + + replaceInPlace( letters, letters, "replaced" ) + + + true + + + + + letters == "replaced" + + + "replaced" == "replaced" + + + +
+
+ + + !replaceInPlace( letters, "x", "z" ) + + + !false + + + + + letters == letters + + + "abcdefcg" == "abcdefcg" + + + +
+
+ + + replaceInPlace( s, "'", "|'" ) + + + true + + + + + s == "didn|'t" + + + "didn|'t" == "didn|'t" + + + +
+ +
+ + + + + + 3 + + + + false + + + false + + + + + + + hi + + + i := 7 + + + + false + + + false + + + + + + + + Catch::toString(value) == "{ 34, \"xyzzy\" }" + + + "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" + + + + + + + + Catch::toString( value ) == "{ 34, \"xyzzy\" }" + + + "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" + + + + + + + + Catch::toString( pr ) == "{ { \"green\", 55 } }" + + + "{ { "green", 55 } }" +== +"{ { "green", 55 } }" + + + + + + + + std::string( "first" ) == "second" + + + "first" == "second" + + + + + + + + result == "\"wide load\"" + + + ""wide load"" == ""wide load"" + + + + + + + + result == "\"wide load\"" + + + ""wide load"" == ""wide load"" + + + + + + + + result == "\"wide load\"" + + + ""wide load"" == ""wide load"" + + + + + + + + result == "\"wide load\"" + + + ""wide load"" == ""wide load"" + + + + + + + + Catch::toString( item ) == "StringMaker<has_maker>" + + + "StringMaker<has_maker>" +== +"StringMaker<has_maker>" + + + + + + + + Catch::toString( item ) == "toString( has_maker_and_toString )" + + + "toString( has_maker_and_toString )" +== +"toString( has_maker_and_toString )" + + + + + + + + Catch::toString( item ) == "toString( has_toString )" + + + "toString( has_toString )" +== +"toString( has_toString )" + + + + + + + + Catch::toString( v ) == "{ StringMaker<has_maker> }" + + + "{ StringMaker<has_maker> }" +== +"{ StringMaker<has_maker> }" + + + + + + + + Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" + + + "{ StringMaker<has_maker_and_toString> }" +== +"{ StringMaker<has_maker_and_toString> }" + + + + + + + + Catch::toString( v ) == "{ {?} }" + + + "{ {?} }" == "{ {?} }" + + + + + + + + Catch::toString(e0) == "E2/V0" + + + "E2/V0" == "E2/V0" + + + + + Catch::toString(e1) == "E2/V1" + + + "E2/V1" == "E2/V1" + + + + + Catch::toString(e3) == "Unknown enum value 10" + + + "Unknown enum value 10" +== +"Unknown enum value 10" + + + + + + + + Catch::toString(e0) == "0" + + + "0" == "0" + + + + + Catch::toString(e1) == "1" + + + "1" == "1" + + + + + + + + Catch::toString(e0) == "E2{0}" + + + "E2{0}" == "E2{0}" + + + + + Catch::toString(e1) == "E2{1}" + + + "E2{1}" == "E2{1}" + + + + + + + + Catch::toString(e0) == "0" + + + "0" == "0" + + + + + Catch::toString(e1) == "1" + + + "1" == "1" + + + + + + + + "{ }" == Catch::toString(type{}) + + + "{ }" == "{ }" + + + + + "{ }" == Catch::toString(value) + + + "{ }" == "{ }" + + + + + + + + "1.2f" == Catch::toString(float(1.2)) + + + "1.2f" == "1.2f" + + + + + "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) + + + "{ 1.2f, 0 }" == "{ 1.2f, 0 }" + + + + + + + + "{ 0 }" == Catch::toString(type{0}) + + + "{ 0 }" == "{ 0 }" + + + + + + + + "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) + + + "{ nullptr, 42, "Catch me" }" +== +"{ nullptr, 42, "Catch me" }" + + + + + + + + "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) + + + "{ "hello", "world" }" +== +"{ "hello", "world" }" + + + + + + + + "{ { 42 }, { }, 1.2f }" == Catch::toString(value) + + + "{ { 42 }, { }, 1.2f }" +== +"{ { 42 }, { }, 1.2f }" + + + + + + + + Catch::toString(v) == "{ }" + + + "{ }" == "{ }" + + + + + Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" + + + "{ { "hello" }, { "world" } }" +== +"{ { "hello" }, { "world" } }" + + + + + + + + Catch::toString(vv) == "{ }" + + + "{ }" == "{ }" + + + + + Catch::toString(vv) == "{ 42 }" + + + "{ 42 }" == "{ 42 }" + + + + + Catch::toString(vv) == "{ 42, 250 }" + + + "{ 42, 250 }" == "{ 42, 250 }" + + + + + + + + Catch::toString(vv) == "{ }" + + + "{ }" == "{ }" + + + + + Catch::toString(vv) == "{ 42 }" + + + "{ 42 }" == "{ 42 }" + + + + + Catch::toString(vv) == "{ 42, 250 }" + + + "{ 42, 250 }" == "{ 42, 250 }" + + + + + + + + Catch::toString(vv) == "{ }" + + + "{ }" == "{ }" + + + + + Catch::toString(vv) == "{ \"hello\" }" + + + "{ "hello" }" == "{ "hello" }" + + + + + Catch::toString(vv) == "{ \"hello\", \"world\" }" + + + "{ "hello", "world" }" +== +"{ "hello", "world" }" + + + + + + + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + +
+ + + v.size() == 10 + + + 10 == 10 + + + + + v.capacity() >= 10 + + + 10 >= 10 + + + +
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + +
+ + + v.size() == 0 + + + 0 == 0 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + +
+ + + v.capacity() == 0 + + + 0 == 0 + + + +
+ +
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + +
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 10 + + + 10 >= 10 + + + +
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + +
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + + +
+ +
+ +
+ +
+
+ +
diff --git a/scripts/approvalTests.py b/scripts/approvalTests.py index 618812f8..2fe3245d 100644 --- a/scripts/approvalTests.py +++ b/scripts/approvalTests.py @@ -22,6 +22,7 @@ if len(sys.argv) == 2: cmdPath = sys.argv[1] else: cmdPath = os.path.join( catchPath, 'projects/XCode/CatchSelfTest/DerivedData/CatchSelfTest/Build/Products/Debug/CatchSelfTest' ) +# cmdPath = os.path.join( catchPath, 'projects/CMake/cmake-build-debug/SelfTest' ) overallResult = 0 @@ -100,15 +101,15 @@ def approve( baseName, args ): overallResult = 1 # Standard console reporter -approve( "console.std", ["~_"] ) +approve( "console.std", ["~_", "--order", "lex"] ) # console reporter, include passes, warn about No Assertions -approve( "console.sw", ["~_", "-s", "-w", "NoAssertions"] ) +approve( "console.sw", ["~_", "-s", "-w", "NoAssertions", "--order", "lex"] ) # console reporter, include passes, warn about No Assertions, limit failures to first 4 -approve( "console.swa4", ["~_", "-s", "-w", "NoAssertions", "-x", "4"] ) +approve( "console.swa4", ["~_", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"] ) # junit reporter, include passes, warn about No Assertions -approve( "junit.sw", ["~_", "-s", "-w", "NoAssertions", "-r", "junit"] ) +approve( "junit.sw", ["~_", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"] ) # xml reporter, include passes, warn about No Assertions -approve( "xml.sw", ["~_", "-s", "-w", "NoAssertions", "-r", "xml"] ) +approve( "xml.sw", ["~_", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"] ) if overallResult != 0: print( "run approve.py to approve new baselines" )