Sort test ordering during Approval testing
diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt
index ee8d807..7c5da08 100644
--- a/projects/SelfTest/Baselines/console.std.approved.txt
+++ b/projects/SelfTest/Baselines/console.std.approved.txt
@@ -4,6 +4,46 @@
Run with -? for options
-------------------------------------------------------------------------------
+'Not' checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( false != false )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( true != true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !true )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !trueValue )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( trueValue )
+with expansion:
+ !true
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !(1 == 1) )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( 1 == 1 )
+with expansion:
+ !(1 == 1)
+
+-------------------------------------------------------------------------------
A METHOD_AS_TEST_CASE based test run that fails
-------------------------------------------------------------------------------
ClassTests.cpp:<line number>
@@ -26,6 +66,97 @@
1 == 2
-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+explicitly with message:
+ to infinity and beyond
+
+-------------------------------------------------------------------------------
+A failing expression with a non streamable type is still captured
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( &o1 == &o2 )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( o1 == o2 )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+An unchecked exception reports the line of the last assertion
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ {Unknown expression after the reported line}
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+Contains string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "not there"
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for nothrow
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_NOTHROW( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom exceptions can be translated when testing for throwing as something else
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_AS( throwCustom() )
+due to unexpected exception with message:
+ custom exception - not std
+
+-------------------------------------------------------------------------------
+Custom std-exceptions can be custom translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom std exception
+
+-------------------------------------------------------------------------------
+EndsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "this"
+
+-------------------------------------------------------------------------------
Equality checks that should fail
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
@@ -97,6 +228,100 @@
1.3 == Approx( 1.301 )
-------------------------------------------------------------------------------
+Equals string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "something else"
+
+-------------------------------------------------------------------------------
+Expected exceptions that don't throw or unexpected exceptions fail the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisDoesntThrow() )
+because no exception was thrown where one was expected:
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_NOTHROW( thisThrows() )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+FAIL aborts the test
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+-------------------------------------------------------------------------------
+FAIL does not require an argument
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+INFO and WARN do not abort tests
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ this is a warning
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message should be logged
+ so should this
+
+-------------------------------------------------------------------------------
+INFO gets logged on failure, even if captured before successful assertions
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 1 )
+with expansion:
+ 2 == 1
+with messages:
+ this message may be logged later
+ this message should be logged
+
+MessageTests.cpp:<line number>: FAILED:
+ CHECK( a == 0 )
+with expansion:
+ 2 == 0
+with message:
+ and this, but later
+
+-------------------------------------------------------------------------------
Inequality checks that should fail
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
@@ -128,6 +353,60 @@
5 != 5
-------------------------------------------------------------------------------
+Matchers can be composed with both && and || - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "substring"
+
+-------------------------------------------------------------------------------
+Mismatching exception messages failing the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
+with expansion:
+ expected exception
+
+-------------------------------------------------------------------------------
+Nice descriptive name
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+warning:
+ This one ran
+
+-------------------------------------------------------------------------------
+Non-std exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom exception
+
+-------------------------------------------------------------------------------
Ordering comparison checks that should fail
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
@@ -229,64 +508,99 @@
"hello" <= "a"
-------------------------------------------------------------------------------
-'Not' checks that should fail
+Output from all sections is reported
+ one
-------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( false != false )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( true != true )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !true )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( true )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !trueValue )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( trueValue )
-with expansion:
- !true
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !(1 == 1) )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( 1 == 1 )
-with expansion:
- !(1 == 1)
+MessageTests.cpp:<line number>: 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:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section two
+
+-------------------------------------------------------------------------------
+Pointers can be converted to strings
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+warning:
+ actual address of p: 0x<hex digits>
+
+MessageTests.cpp:<line number>:
+warning:
+ toString(p): 0x<hex digits>
+
+-------------------------------------------------------------------------------
+SCOPED_INFO is reset for each loop
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( i < 10 )
+with expansion:
+ 10 < 10
+with messages:
+ current counter 10
+ i := 10
+
+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:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: 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:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( s1 == s2 )
+with expansion:
+ "if ($b == 10) {
+ $a= 20;
+ }"
+ ==
+ "if ($b == 10) {
+ $a = 20;
+ }
+ "
+
+-------------------------------------------------------------------------------
+Unexpected exceptions can be translated
-------------------------------------------------------------------------------
ExceptionTests.cpp:<line number>
...............................................................................
ExceptionTests.cpp:<line number>: FAILED:
- CHECK_THROWS_AS( thisThrows() )
due to unexpected exception with message:
- expected exception
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK_THROWS_AS( thisDoesntThrow() )
-because no exception was thrown where one was expected:
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK_NOTHROW( thisThrows() )
-due to unexpected exception with message:
- expected exception
+ 3.14
-------------------------------------------------------------------------------
When unchecked exceptions are thrown directly they are always failures
@@ -299,29 +613,8 @@
unexpected exception
-------------------------------------------------------------------------------
-An unchecked exception reports the line of the last assertion
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- {Unknown expression after the reported line}
-due to unexpected exception with message:
- unexpected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown from sections they are always failures
- section name
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- unexpected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown from functions they are always failures
+When unchecked exceptions are thrown during a CHECK the test should abort and
+fail
-------------------------------------------------------------------------------
ExceptionTests.cpp:<line number>
...............................................................................
@@ -344,8 +637,7 @@
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:<line number>
...............................................................................
@@ -356,168 +648,69 @@
expected exception
-------------------------------------------------------------------------------
-Non-std exceptions can be translated
+When unchecked exceptions are thrown from sections they are always failures
+ section name
-------------------------------------------------------------------------------
ExceptionTests.cpp:<line number>
...............................................................................
ExceptionTests.cpp:<line number>: FAILED:
due to unexpected exception with message:
- custom exception
+ unexpected exception
-------------------------------------------------------------------------------
-Custom std-exceptions can be custom translated
+Where the LHS is not a simple value
-------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- custom std exception
-
--------------------------------------------------------------------------------
-Custom exceptions can be translated when testing for nothrow
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- REQUIRE_NOTHROW( throwCustom() )
-due to unexpected exception with message:
- custom exception - not std
-
--------------------------------------------------------------------------------
-Custom exceptions can be translated when testing for throwing as something else
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- REQUIRE_THROWS_AS( throwCustom() )
-due to unexpected exception with message:
- custom exception - not std
-
--------------------------------------------------------------------------------
-Unexpected exceptions can be translated
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- 3.14
-
--------------------------------------------------------------------------------
-Mismatching exception messages failing the test
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
-with expansion:
- expected exception
-
--------------------------------------------------------------------------------
-INFO and WARN do not abort tests
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
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:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-MessageTests.cpp:<line number>: FAILED:
- REQUIRE( a == 1 )
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+checkedElse, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: 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:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
- CHECK( a == 1 )
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedElse( false ) )
with expansion:
- 2 == 1
-with messages:
- this message may be logged later
- this message should be logged
+ false
-MessageTests.cpp:<line number>: FAILED:
- CHECK( a == 0 )
+-------------------------------------------------------------------------------
+checkedIf, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_IF( flag )
with expansion:
- 2 == 0
-with message:
- and this, but later
+ false
--------------------------------------------------------------------------------
-FAIL aborts the test
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- This is a failure
-
--------------------------------------------------------------------------------
-FAIL does not require an argument
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-
--------------------------------------------------------------------------------
-Output from all sections is reported
- one
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- Message from section one
-
--------------------------------------------------------------------------------
-Output from all sections is reported
- two
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- Message from section two
-
-Message from section one
-Message from section two
--------------------------------------------------------------------------------
-SCOPED_INFO is reset for each loop
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
- REQUIRE( i < 10 )
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedIf( false ) )
with expansion:
- 10 < 10
-with messages:
- current counter 10
- i := 10
+ false
-------------------------------------------------------------------------------
just failure
@@ -530,45 +723,6 @@
Previous info should not be seen
-------------------------------------------------------------------------------
-sends information to INFO
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
- REQUIRE( false )
-with messages:
- hi
- i := 7
-
--------------------------------------------------------------------------------
-Pointers can be converted to strings
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
-warning:
- actual address of p: 0x<hex digits>
-
-MessageTests.cpp:<line number>:
-warning:
- toString(p): 0x<hex digits>
-
--------------------------------------------------------------------------------
-more nested SECTION tests
- s1
- s2
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( a == b )
-with expansion:
- 1 == 2
-
--------------------------------------------------------------------------------
looped SECTION tests
s1
-------------------------------------------------------------------------------
@@ -628,39 +782,18 @@
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:<line number>
...............................................................................
MiscTests.cpp:<line number>: FAILED:
- CHECKED_IF( flag )
+ REQUIRE( a == b )
with expansion:
- false
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( testCheckedIf( false ) )
-with expansion:
- false
-
--------------------------------------------------------------------------------
-checkedElse, failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECKED_ELSE( flag )
-with expansion:
- false
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( testCheckedElse( false ) )
-with expansion:
- false
+ 1 == 2
-------------------------------------------------------------------------------
send a single char to INFO
@@ -674,149 +807,16 @@
3
-------------------------------------------------------------------------------
-Contains string matcher
+sends information to INFO
-------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
-with expansion:
- "this string contains 'abc' as a substring" contains: "not there"
-
--------------------------------------------------------------------------------
-StartsWith string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), StartsWith( "string" ) )
-with expansion:
- "this string contains 'abc' as a substring" starts with: "string"
-
--------------------------------------------------------------------------------
-EndsWith string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
-with expansion:
- "this string contains 'abc' as a substring" ends with: "this"
-
--------------------------------------------------------------------------------
-Equals string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
-with expansion:
- "this string contains 'abc' as a substring" equals: "something else"
-
--------------------------------------------------------------------------------
-Matchers can be composed with both && and || - failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
-with expansion:
- "this string contains 'abc' as a substring" ( ( contains: "string" or
- contains: "different" ) and contains: "random" )
-
--------------------------------------------------------------------------------
-Matchers can be negated (Not) with the ! operator - failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
-with expansion:
- "this string contains 'abc' as a substring" not contains: "substring"
-
--------------------------------------------------------------------------------
-Nice descriptive name
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-warning:
- This one ran
-
--------------------------------------------------------------------------------
-A couple of nested sections followed by a failure
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
-explicitly with message:
- to infinity and beyond
-
--------------------------------------------------------------------------------
-Tabs and newlines show in output
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( s1 == s2 )
-with expansion:
- "if ($b == 10) {
- $a= 20;
- }"
- ==
- "if ($b == 10) {
- $a = 20;
- }
- "
-
-hello
-hello
--------------------------------------------------------------------------------
-Where there is more to the expression after the RHS
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-warning:
- Uncomment the code in this test to check that it gives a sensible compiler
- error
-
--------------------------------------------------------------------------------
-Where the LHS is not a simple value
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-warning:
- Uncomment the code in this test to check that it gives a sensible compiler
- error
-
--------------------------------------------------------------------------------
-A failing expression with a non streamable type is still captured
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>: FAILED:
- CHECK( &o1 == &o2 )
-with expansion:
- 0x<hex digits> == 0x<hex digits>
-
-TrickyTests.cpp:<line number>: FAILED:
- CHECK( o1 == o2 )
-with expansion:
- {?} == {?}
+MessageTests.cpp:<line number>: 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 3359a0f..b9fdcea 100644
--- a/projects/SelfTest/Baselines/console.sw.approved.txt
+++ b/projects/SelfTest/Baselines/console.sw.approved.txt
@@ -4,126 +4,366 @@
Run with -? for options
-------------------------------------------------------------------------------
-toString(enum)
+# A test name that starts with a #
-------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
+MiscTests.cpp:<line number>
...............................................................................
-EnumToString.cpp:<line number>:
+MiscTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e0) == "0" )
-with expansion:
- "0" == "0"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "1" )
-with expansion:
- "1" == "1"
+with message:
+ yay
-------------------------------------------------------------------------------
-toString(enum w/operator<<)
+'Not' checks that should fail
-------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e0) == "E2{0}" )
-with expansion:
- "E2{0}" == "E2{0}"
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( false != false )
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "E2{1}" )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( true != true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !true )
with expansion:
- "E2{1}" == "E2{1}"
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( true )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !trueValue )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( trueValue )
+with expansion:
+ !true
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( !(1 == 1) )
+with expansion:
+ false
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK_FALSE( 1 == 1 )
+with expansion:
+ !(1 == 1)
-------------------------------------------------------------------------------
-toString(enum class)
+'Not' checks that should succeed
-------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-EnumToString.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e0) == "0" )
-with expansion:
- "0" == "0"
+ REQUIRE( false == false )
-EnumToString.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e1) == "1" )
+ REQUIRE( true == true )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !false )
with expansion:
- "1" == "1"
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( false )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !falseValue )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( falseValue )
+with expansion:
+ !false
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !(1 == 2) )
+with expansion:
+ true
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( 1 == 2 )
+with expansion:
+ !(1 == 2)
-------------------------------------------------------------------------------
-toString(enum class w/operator<<)
+(unimplemented) static bools can be evaluated
+ compare to true
-------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-EnumToString.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e0) == "E2/V0" )
+ REQUIRE( is_true<true>::value == true )
with expansion:
- "E2/V0" == "E2/V0"
+ true == true
-EnumToString.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e1) == "E2/V1" )
+ REQUIRE( true == is_true<true>::value )
with expansion:
- "E2/V1" == "E2/V1"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e3) == "Unknown enum value 10" )
-with expansion:
- "Unknown enum value 10"
- ==
- "Unknown enum value 10"
+ true == true
-------------------------------------------------------------------------------
-Some simple comparisons between doubles
+(unimplemented) static bools can be evaluated
+ compare to false
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( is_true<false>::value == false )
+with expansion:
+ false == false
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( false == is_true<false>::value )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ negation
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !is_true<false>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ double negation
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( !!is_true<true>::value )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+(unimplemented) static bools can be evaluated
+ direct
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( is_true<true>::value )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE_FALSE( is_true<false>::value )
+with expansion:
+ !false
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( s == "world" )
+with expansion:
+ "hello" == "world"
+
+-------------------------------------------------------------------------------
+A METHOD_AS_TEST_CASE based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s == "hello" )
+with expansion:
+ "hello" == "hello"
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that fails
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>: FAILED:
+ REQUIRE( m_a == 2 )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+A TEST_CASE_METHOD based test run that succeeds
+-------------------------------------------------------------------------------
+ClassTests.cpp:<line number>
+...............................................................................
+
+ClassTests.cpp:<line number>:
+PASSED:
+ REQUIRE( m_a == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+ Outer
+ Inner
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+with message:
+ that's not flying - that's failing in style
+
+-------------------------------------------------------------------------------
+A couple of nested sections followed by a failure
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+explicitly with message:
+ to infinity and beyond
+
+-------------------------------------------------------------------------------
+A failing expression with a non streamable type is still captured
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( &o1 == &o2 )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+TrickyTests.cpp:<line number>: FAILED:
+ CHECK( o1 == o2 )
+with expansion:
+ {?} == {?}
+
+-------------------------------------------------------------------------------
+AllOf matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" and
+ contains: "abc" )
+
+-------------------------------------------------------------------------------
+An expression with side-effects should only be evaluated once
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i++ == 7 )
+with expansion:
+ 7 == 7
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i++ == 8 )
+with expansion:
+ 8 == 8
+
+-------------------------------------------------------------------------------
+An unchecked exception reports the line of the last assertion
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ CHECK( 1 == 1 )
+
+ExceptionTests.cpp:<line number>: FAILED:
+ {Unknown expression after the reported line}
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+Anonymous test case 1
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
+PASSED:
+with message:
+ anonymous test case
+
+-------------------------------------------------------------------------------
+AnyOf matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" or contains:
+ "not there" )
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "not there" or
+ contains: "string" )
+
+-------------------------------------------------------------------------------
+Approximate PI
-------------------------------------------------------------------------------
ApproxTests.cpp:<line number>
...............................................................................
ApproxTests.cpp:<line number>:
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:<line number>:
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:<line number>:
-PASSED:
- REQUIRE( d != Approx( 1.24 ) )
-with expansion:
- 1.23 != Approx( 1.24 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) == 1.23 )
-with expansion:
- Approx( 1.23 ) == 1.23
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) != 1.22 )
-with expansion:
- Approx( 1.23 ) != 1.22
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) != 1.24 )
-with expansion:
- Approx( 1.23 ) != 1.24
+ 3.1428571429 != Approx( 3.141 )
-------------------------------------------------------------------------------
Approximate comparisons with different epsilons
@@ -216,553 +456,169 @@
1.234 == Approx( 1.2339999676 )
-------------------------------------------------------------------------------
-Use a custom approx
+Assertions then sections
-------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ApproxTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE( d == approx( 1.23 ) )
+ REQUIRE( Catch::alwaysTrue() )
with expansion:
- 1.23 == Approx( 1.23 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == approx( 1.22 ) )
-with expansion:
- 1.23 == Approx( 1.22 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == approx( 1.24 ) )
-with expansion:
- 1.23 == Approx( 1.24 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d != approx( 1.25 ) )
-with expansion:
- 1.23 != Approx( 1.25 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.23 )
-with expansion:
- Approx( 1.23 ) == 1.23
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.22 )
-with expansion:
- Approx( 1.23 ) == 1.22
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.24 )
-with expansion:
- Approx( 1.23 ) == 1.24
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) != 1.25 )
-with expansion:
- Approx( 1.23 ) != 1.25
+ true
-------------------------------------------------------------------------------
-Approximate PI
+Assertions then sections
+ A section
-------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ApproxTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
+ REQUIRE( Catch::alwaysTrue() )
with expansion:
- 3.1428571429 == Approx( 3.141 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
-with expansion:
- 3.1428571429 != Approx( 3.141 )
+ true
-------------------------------------------------------------------------------
-A METHOD_AS_TEST_CASE based test run that succeeds
+Assertions then sections
+ A section
+ Another section
-------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ClassTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
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:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ClassTests.cpp:<line number>: FAILED:
- REQUIRE( s == "world" )
-with expansion:
- "hello" == "world"
-
--------------------------------------------------------------------------------
-A TEST_CASE_METHOD based test run that succeeds
--------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
-...............................................................................
-
-ClassTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
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:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ClassTests.cpp:<line number>: FAILED:
- REQUIRE( m_a == 2 )
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
with expansion:
- 1 == 2
+ true
-------------------------------------------------------------------------------
-Equality checks that should succeed
+Assertions then sections
+ A section
+ Another other section
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::alwaysTrue() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Comparing function pointers
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a )
+with expansion:
+ true
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a == &foo )
+with expansion:
+ 0x<hex digits> == 0x<hex digits>
+
+-------------------------------------------------------------------------------
+Comparing member function pointers
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ CHECK( m == &S::f )
+with expansion:
+ 0x<hex digits>
+ ==
+ 0x<hex digits>
+
+-------------------------------------------------------------------------------
+Comparisons between ints where one side is computed
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
...............................................................................
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.int_seven == 7 )
+ CHECK( 54 == 6*9 )
with expansion:
- 7 == 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
-with expansion:
- 9.1f == Approx( 9.1000003815 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
-with expansion:
- 3.1415926535 == Approx( 3.1415926535 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello == "hello" )
-with expansion:
- "hello" == "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( "hello" == data.str_hello )
-with expansion:
- "hello" == "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello.size() == 5 )
-with expansion:
- 5 == 5
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( x == Approx( 1.3 ) )
-with expansion:
- 1.3 == Approx( 1.3 )
+ 54 == 54
-------------------------------------------------------------------------------
-Equality checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven == 6 )
-with expansion:
- 7 == 6
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven == 8 )
-with expansion:
- 7 == 8
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven == 0 )
-with expansion:
- 7 == 0
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one == Approx( 9.11f ) )
-with expansion:
- 9.1f == Approx( 9.1099996567 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one == Approx( 9.0f ) )
-with expansion:
- 9.1f == Approx( 9.0 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one == Approx( 1 ) )
-with expansion:
- 9.1f == Approx( 1.0 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one == Approx( 0 ) )
-with expansion:
- 9.1f == Approx( 0.0 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.double_pi == Approx( 3.1415 ) )
-with expansion:
- 3.1415926535 == Approx( 3.1415 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello == "goodbye" )
-with expansion:
- "hello" == "goodbye"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello == "hell" )
-with expansion:
- "hello" == "hell"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello == "hello1" )
-with expansion:
- "hello" == "hello1"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello.size() == 6 )
-with expansion:
- 5 == 6
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( x == Approx( 1.301 ) )
-with expansion:
- 1.3 == Approx( 1.301 )
-
--------------------------------------------------------------------------------
-Inequality checks that should succeed
+Comparisons between unsigned ints and negative signed ints match c++ standard
+behaviour
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
...............................................................................
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.int_seven != 6 )
+ CHECK( ( -1 > 2u ) )
with expansion:
- 7 != 6
+ true
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.int_seven != 8 )
+ CHECK( -1 > 2u )
with expansion:
- 7 != 8
+ -1 > 2
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
+ CHECK( ( 2u < -1 ) )
with expansion:
- 9.1f != Approx( 9.1099996567 )
+ true
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
+ CHECK( 2u < -1 )
with expansion:
- 9.1f != Approx( 9.0 )
+ 2 < -1
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 1 ) )
+ CHECK( ( minInt > 2u ) )
with expansion:
- 9.1f != Approx( 1.0 )
+ true
ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 0 ) )
+ CHECK( minInt > 2u )
with expansion:
- 9.1f != Approx( 0.0 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.double_pi != Approx( 3.1415 ) )
-with expansion:
- 3.1415926535 != Approx( 3.1415 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "goodbye" )
-with expansion:
- "hello" != "goodbye"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "hell" )
-with expansion:
- "hello" != "hell"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "hello1" )
-with expansion:
- "hello" != "hello1"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello.size() != 6 )
-with expansion:
- 5 != 6
-
--------------------------------------------------------------------------------
-Inequality checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven != 7 )
-with expansion:
- 7 != 7
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one != Approx( 9.1f ) )
-with expansion:
- 9.1f != Approx( 9.1000003815 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.double_pi != Approx( 3.1415926535 ) )
-with expansion:
- 3.1415926535 != Approx( 3.1415926535 )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello != "hello" )
-with expansion:
- "hello" != "hello"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello.size() != 5 )
-with expansion:
- 5 != 5
-
--------------------------------------------------------------------------------
-Ordering comparison checks that should succeed
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven < 8 )
-with expansion:
- 7 < 8
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > 6 )
-with expansion:
- 7 > 6
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > 0 )
-with expansion:
- 7 > 0
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > -1 )
-with expansion:
- 7 > -1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven >= 7 )
-with expansion:
- 7 >= 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven >= 6 )
-with expansion:
- 7 >= 6
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven <= 7 )
-with expansion:
- 7 <= 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven <= 8 )
-with expansion:
- 7 <= 8
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one > 9 )
-with expansion:
- 9.1f > 9
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one < 10 )
-with expansion:
- 9.1f < 10
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one < 9.2 )
-with expansion:
- 9.1f < 9.2
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello <= "hello" )
-with expansion:
- "hello" <= "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello >= "hello" )
-with expansion:
- "hello" >= "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello < "hellp" )
-with expansion:
- "hello" < "hellp"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello < "zebra" )
-with expansion:
- "hello" < "zebra"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello > "hellm" )
-with expansion:
- "hello" > "hellm"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello > "a" )
-with expansion:
- "hello" > "a"
-
--------------------------------------------------------------------------------
-Ordering comparison checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven > 7 )
-with expansion:
- 7 > 7
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven < 7 )
-with expansion:
- 7 < 7
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven > 8 )
-with expansion:
- 7 > 8
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven < 6 )
-with expansion:
- 7 < 6
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven < 0 )
-with expansion:
- 7 < 0
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven < -1 )
-with expansion:
- 7 < -1
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven >= 8 )
-with expansion:
- 7 >= 8
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven <= 6 )
-with expansion:
- 7 <= 6
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one < 9 )
-with expansion:
- 9.1f < 9
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one > 10 )
-with expansion:
- 9.1f > 10
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.float_nine_point_one > 9.2 )
-with expansion:
- 9.1f > 9.2
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello > "hello" )
-with expansion:
- "hello" > "hello"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello < "hello" )
-with expansion:
- "hello" < "hello"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello > "hellp" )
-with expansion:
- "hello" > "hellp"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello > "z" )
-with expansion:
- "hello" > "z"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello < "hellm" )
-with expansion:
- "hello" < "hellm"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello < "a" )
-with expansion:
- "hello" < "a"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello >= "z" )
-with expansion:
- "hello" >= "z"
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.str_hello <= "a" )
-with expansion:
- "hello" <= "a"
+ -2147483648 > 2
-------------------------------------------------------------------------------
Comparisons with int literals don't warn when mixing signed/ unsigned
@@ -851,390 +707,15 @@
4
-------------------------------------------------------------------------------
-comparisons between int variables
+Contains string matcher
-------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
+MiscTests.cpp:<line number>
...............................................................................
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( long_var == unsigned_char_var )
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( long_var == unsigned_short_var )
-with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( long_var == unsigned_int_var )
-with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( long_var == unsigned_long_var )
-with expansion:
- 1 == 1
-
--------------------------------------------------------------------------------
-comparisons between const int variables
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( unsigned_char_var == 1 )
-with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( unsigned_short_var == 1 )
-with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( unsigned_int_var == 1 )
-with expansion:
- 1 == 1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( unsigned_long_var == 1 )
-with expansion:
- 1 == 1
-
--------------------------------------------------------------------------------
-Comparisons between unsigned ints and negative signed ints match c++ standard
-behaviour
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( ( -1 > 2u ) )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( -1 > 2u )
-with expansion:
- -1 > 2
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( ( 2u < -1 ) )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( 2u < -1 )
-with expansion:
- 2 < -1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( ( minInt > 2u ) )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( minInt > 2u )
-with expansion:
- -2147483648 > 2
-
--------------------------------------------------------------------------------
-Comparisons between ints where one side is computed
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- CHECK( 54 == 6*9 )
-with expansion:
- 54 == 54
-
--------------------------------------------------------------------------------
-Pointers can be compared to null
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( p == nullptr )
-with expansion:
- NULL == nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( p == pNULL )
-with expansion:
- NULL == NULL
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( p != nullptr )
-with expansion:
- 0x<hex digits> != nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( cp != nullptr )
-with expansion:
- 0x<hex digits> != nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( cpc != nullptr )
-with expansion:
- 0x<hex digits> != nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( returnsNull() == nullptr )
-with expansion:
- {null string} == nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( returnsConstNull() == nullptr )
-with expansion:
- {null string} == nullptr
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( nullptr != p )
-with expansion:
- nullptr != 0x<hex digits>
-
--------------------------------------------------------------------------------
-'Not' checks that should succeed
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( false == false )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( true == true )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( !false )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE_FALSE( false )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( !falseValue )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE_FALSE( falseValue )
-with expansion:
- !false
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( !(1 == 2) )
-with expansion:
- true
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE_FALSE( 1 == 2 )
-with expansion:
- !(1 == 2)
-
--------------------------------------------------------------------------------
-'Not' checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( false != false )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( true != true )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !true )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( true )
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !trueValue )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( trueValue )
-with expansion:
- !true
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( !(1 == 1) )
-with expansion:
- false
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK_FALSE( 1 == 1 )
-with expansion:
- !(1 == 1)
-
--------------------------------------------------------------------------------
-When checked exceptions are thrown they can be expected or unexpected
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>:
-PASSED:
- REQUIRE_THROWS_AS( thisThrows() )
-
-ExceptionTests.cpp:<line number>:
-PASSED:
- REQUIRE_NOTHROW( thisDoesntThrow() )
-
-ExceptionTests.cpp:<line number>:
-PASSED:
- REQUIRE_THROWS( thisThrows() )
-
--------------------------------------------------------------------------------
-Expected exceptions that don't throw or unexpected exceptions fail the test
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK_THROWS_AS( thisThrows() )
-due to unexpected exception with message:
- expected exception
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK_THROWS_AS( thisDoesntThrow() )
-because no exception was thrown where one was expected:
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK_NOTHROW( thisThrows() )
-due to unexpected exception with message:
- expected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown directly they are always failures
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- unexpected exception
-
--------------------------------------------------------------------------------
-An unchecked exception reports the line of the last assertion
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>:
-PASSED:
- CHECK( 1 == 1 )
-
-ExceptionTests.cpp:<line number>: FAILED:
- {Unknown expression after the reported line}
-due to unexpected exception with message:
- unexpected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown from sections they are always failures
- section name
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- unexpected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown from functions they are always failures
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK( thisThrows() == 0 )
-due to unexpected exception with message:
- expected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown during a REQUIRE the test should abort
-fail
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- REQUIRE( thisThrows() == 0 )
-due to unexpected exception with message:
- expected exception
-
--------------------------------------------------------------------------------
-When unchecked exceptions are thrown during a CHECK the test should abort and
-fail
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
- CHECK( thisThrows() == 0 )
-due to unexpected exception with message:
- expected exception
-
--------------------------------------------------------------------------------
-Non-std exceptions can be translated
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- custom exception
-
--------------------------------------------------------------------------------
-Custom std-exceptions can be custom translated
--------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
-...............................................................................
-
-ExceptionTests.cpp:<line number>: FAILED:
-due to unexpected exception with message:
- custom std exception
+ "this string contains 'abc' as a substring" contains: "not there"
-------------------------------------------------------------------------------
Custom exceptions can be translated when testing for nothrow
@@ -1259,24 +740,192 @@
custom exception - not std
-------------------------------------------------------------------------------
-Unexpected exceptions can be translated
+Custom std-exceptions can be custom translated
-------------------------------------------------------------------------------
ExceptionTests.cpp:<line number>
...............................................................................
ExceptionTests.cpp:<line number>: FAILED:
due to unexpected exception with message:
- 3.14
+ custom std exception
-------------------------------------------------------------------------------
-NotImplemented exception
+Demonstrate that a non-const == is not used
-------------------------------------------------------------------------------
-ExceptionTests.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ExceptionTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) )
+ REQUIRE( t == 1u )
+with expansion:
+ {?} == 1
+
+-------------------------------------------------------------------------------
+EndsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "this"
+
+-------------------------------------------------------------------------------
+Equality checks that should fail
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 6 )
+with expansion:
+ 7 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 8 )
+with expansion:
+ 7 == 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven == 0 )
+with expansion:
+ 7 == 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.11f ) )
+with expansion:
+ 9.1f == Approx( 9.1099996567 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 9.0f ) )
+with expansion:
+ 9.1f == Approx( 9.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 1 ) )
+with expansion:
+ 9.1f == Approx( 1.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one == Approx( 0 ) )
+with expansion:
+ 9.1f == Approx( 0.0 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi == Approx( 3.1415 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415 )
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "goodbye" )
+with expansion:
+ "hello" == "goodbye"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hell" )
+with expansion:
+ "hello" == "hell"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello == "hello1" )
+with expansion:
+ "hello" == "hello1"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() == 6 )
+with expansion:
+ 5 == 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( x == Approx( 1.301 ) )
+with expansion:
+ 1.3 == Approx( 1.301 )
+
+-------------------------------------------------------------------------------
+Equality checks that should succeed
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven == 7 )
+with expansion:
+ 7 == 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
+with expansion:
+ 9.1f == Approx( 9.1000003815 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
+with expansion:
+ 3.1415926535 == Approx( 3.1415926535 )
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello == "hello" )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( "hello" == data.str_hello )
+with expansion:
+ "hello" == "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello.size() == 5 )
+with expansion:
+ 5 == 5
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( x == Approx( 1.3 ) )
+with expansion:
+ 1.3 == Approx( 1.3 )
+
+-------------------------------------------------------------------------------
+Equals
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "this string contains
+ 'abc' as a substring"
+
+-------------------------------------------------------------------------------
+Equals string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
+with expansion:
+ "this string contains 'abc' as a substring" equals: "something else"
+
+-------------------------------------------------------------------------------
+Equals string matcher, with NULL
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( "", Equals(nullptr) )
+with expansion:
+ "" equals: ""
-------------------------------------------------------------------------------
Exception messages can be tested for
@@ -1324,1315 +973,78 @@
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:<line number>
...............................................................................
-ExceptionTests.cpp:<line number>:
-PASSED:
- REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_THROWS_AS( thisThrows() )
+due to unexpected exception with message:
+ expected exception
ExceptionTests.cpp:<line number>: FAILED:
- REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
-with expansion:
+ CHECK_THROWS_AS( thisDoesntThrow() )
+because no exception was thrown where one was expected:
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK_NOTHROW( thisThrows() )
+due to unexpected exception with message:
expected exception
-------------------------------------------------------------------------------
-Generators over two ranges
+FAIL aborts the test
-------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-GeneratorTests.cpp:<line number>:
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ This is a failure
+
+-------------------------------------------------------------------------------
+FAIL does not require an argument
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+
+-------------------------------------------------------------------------------
+Factorials are computed
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+ REQUIRE( Factorial(0) == 1 )
+with expansion:
+ 1 == 1
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(1) == 1 )
+with expansion:
+ 1 == 1
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Factorial(2) == 2 )
with expansion:
2 == 2
-GeneratorTests.cpp:<line number>:
+MiscTests.cpp:<line number>:
PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+ REQUIRE( Factorial(3) == 6 )
with expansion:
6 == 6
-GeneratorTests.cpp:<line number>:
+MiscTests.cpp:<line number>:
PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+ REQUIRE( Factorial(10) == 3628800 )
with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 200 == 200
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 202 == 202
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 204 == 204
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 206 == 206
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 208 == 208
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 210 == 210
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 212 == 212
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 2 == 2
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 4 == 4
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 6 == 6
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 8 == 8
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 10 == 10
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 30 == 30
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 40 == 40
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 42 == 42
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
-
--------------------------------------------------------------------------------
-Generators over two ranges
--------------------------------------------------------------------------------
-GeneratorTests.cpp:<line number>
-...............................................................................
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
-with expansion:
- 72 == 72
-
-GeneratorTests.cpp:<line number>:
-PASSED:
- CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
-with expansion:
- 214 == 214
+ 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
-------------------------------------------------------------------------------
Generator over a range of pairs
@@ -2659,6 +1071,1302 @@
2 == 2
-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 200 == 200
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 202 == 202
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 204 == 204
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 206 == 206
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 208 == 208
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 210 == 210
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 212 == 212
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 2 == 2
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 4 == 4
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 6 == 6
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 8 == 8
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 10 == 10
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 30 == 30
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 40 == 40
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 42 == 42
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
+Generators over two ranges
+-------------------------------------------------------------------------------
+GeneratorTests.cpp:<line number>
+...............................................................................
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( i, 2 ) == i*2 )
+with expansion:
+ 72 == 72
+
+GeneratorTests.cpp:<line number>:
+PASSED:
+ CATCH_REQUIRE( multiply( j, 2 ) == j*2 )
+with expansion:
+ 214 == 214
+
+-------------------------------------------------------------------------------
INFO and WARN do not abort tests
-------------------------------------------------------------------------------
MessageTests.cpp:<line number>
@@ -2670,17 +2378,6 @@
this is a warning
-------------------------------------------------------------------------------
-SUCCEED counts as a test pass
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
-PASSED:
-with message:
- this is a success
-
--------------------------------------------------------------------------------
INFO gets logged on failure
-------------------------------------------------------------------------------
MessageTests.cpp:<line number>
@@ -2731,1726 +2428,107 @@
but not this
-------------------------------------------------------------------------------
-FAIL aborts the test
+Inequality checks that should fail
-------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- This is a failure
-
--------------------------------------------------------------------------------
-FAIL does not require an argument
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-
--------------------------------------------------------------------------------
-SUCCESS does not require an argument
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-Output from all sections is reported
- one
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- Message from section one
-
--------------------------------------------------------------------------------
-Output from all sections is reported
- two
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- Message from section two
-
-Message from section one
--------------------------------------------------------------------------------
-Standard output from all sections is reported
- one
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-
-No assertions in section 'one'
-
-Message from section two
--------------------------------------------------------------------------------
-Standard output from all sections is reported
- two
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-
-No assertions in section 'two'
-
--------------------------------------------------------------------------------
-SCOPED_INFO is reset for each loop
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven != 7 )
with expansion:
- 0 < 10
-with messages:
- current counter 0
- i := 0
+ 7 != 7
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one != Approx( 9.1f ) )
with expansion:
- 1 < 10
-with messages:
- current counter 1
- i := 1
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 2 < 10
-with messages:
- current counter 2
- i := 2
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 3 < 10
-with messages:
- current counter 3
- i := 3
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 4 < 10
-with messages:
- current counter 4
- i := 4
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 5 < 10
-with messages:
- current counter 5
- i := 5
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 6 < 10
-with messages:
- current counter 6
- i := 6
-
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
-with expansion:
- 7 < 10
-with messages:
- current counter 7
- i := 7
+ 9.1f != Approx( 9.1000003815 )
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.double_pi != Approx( 3.1415926535 ) )
with expansion:
- 8 < 10
-with messages:
- current counter 8
- i := 8
+ 3.1415926535 != Approx( 3.1415926535 )
-MessageTests.cpp:<line number>:
-PASSED:
- REQUIRE( i < 10 )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello != "hello" )
with expansion:
- 9 < 10
-with messages:
- current counter 9
- i := 9
+ "hello" != "hello"
-MessageTests.cpp:<line number>: FAILED:
- REQUIRE( i < 10 )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello.size() != 5 )
with expansion:
- 10 < 10
-with messages:
- current counter 10
- i := 10
+ 5 != 5
-------------------------------------------------------------------------------
-The NO_FAIL macro reports a failure but does not fail the test
+Inequality checks that should succeed
-------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-MessageTests.cpp:<line number>:
-FAILED - but was ok:
- CHECK_NOFAIL( 1 == 2 )
-
--------------------------------------------------------------------------------
-just failure
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
-explicitly with message:
- Previous info should not be seen
-
--------------------------------------------------------------------------------
-sends information to INFO
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>: FAILED:
- REQUIRE( false )
-with messages:
- hi
- i := 7
-
--------------------------------------------------------------------------------
-Pointers can be converted to strings
--------------------------------------------------------------------------------
-MessageTests.cpp:<line number>
-...............................................................................
-
-MessageTests.cpp:<line number>:
-warning:
- actual address of p: 0x<hex digits>
-
-MessageTests.cpp:<line number>:
-warning:
- toString(p): 0x<hex digits>
-
--------------------------------------------------------------------------------
-random SECTION tests
- s1
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a != b )
+ REQUIRE( data.int_seven != 6 )
with expansion:
- 1 != 2
+ 7 != 6
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( b != a )
+ REQUIRE( data.int_seven != 8 )
with expansion:
- 2 != 1
+ 7 != 8
--------------------------------------------------------------------------------
-random SECTION tests
- s2
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a != b )
+ REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
with expansion:
- 1 != 2
-
--------------------------------------------------------------------------------
-nested SECTION tests
- s1
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
+ 9.1f != Approx( 9.1099996567 )
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a != b )
+ REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
with expansion:
- 1 != 2
+ 9.1f != Approx( 9.0 )
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( b != a )
+ REQUIRE( data.float_nine_point_one != Approx( 1 ) )
with expansion:
- 2 != 1
+ 9.1f != Approx( 1.0 )
--------------------------------------------------------------------------------
-nested SECTION tests
- s1
- s2
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a != b )
+ REQUIRE( data.float_nine_point_one != Approx( 0 ) )
with expansion:
- 1 != 2
+ 9.1f != Approx( 0.0 )
--------------------------------------------------------------------------------
-more nested SECTION tests
- s1
- s2
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( a == b )
-with expansion:
- 1 == 2
-
--------------------------------------------------------------------------------
-more nested SECTION tests
- s1
- s3
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a != b )
+ REQUIRE( data.double_pi != Approx( 3.1415 ) )
with expansion:
- 1 != 2
+ 3.1415926535 != Approx( 3.1415 )
--------------------------------------------------------------------------------
-more nested SECTION tests
- s1
- s4
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( a < b )
+ REQUIRE( data.str_hello != "goodbye" )
with expansion:
- 1 < 2
+ "hello" != "goodbye"
--------------------------------------------------------------------------------
-even more nested SECTION tests
- c
- d (leaf)
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
-
--------------------------------------------------------------------------------
-even more nested SECTION tests
- c
- e (leaf)
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-even more nested SECTION tests
- f (leaf)
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-looped SECTION tests
- s1
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( b > a )
+ REQUIRE( data.str_hello != "hell" )
with expansion:
- 0 > 1
-
--------------------------------------------------------------------------------
-looped tests
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[0] (1) is even
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[1] (1) is even
+ "hello" != "hell"
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- CHECK( ( fib[i] % 2 ) == 0 )
+ REQUIRE( data.str_hello != "hello1" )
with expansion:
- 0 == 0
-with message:
- Testing if fib[2] (2) is even
+ "hello" != "hello1"
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[3] (3) is even
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[4] (5) is even
-
-MiscTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- CHECK( ( fib[i] % 2 ) == 0 )
+ REQUIRE( data.str_hello.size() != 6 )
with expansion:
- 0 == 0
-with message:
- Testing if fib[5] (8) is even
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[6] (13) is even
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( ( fib[i] % 2 ) == 0 )
-with expansion:
- 1 == 0
-with message:
- Testing if fib[7] (21) is even
-
-A string sent directly to stdout
-A string sent directly to stderr
--------------------------------------------------------------------------------
-null strings
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( makeString( false ) != static_cast<char*>(nullptr) )
-with expansion:
- "valid string" != {null string}
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( makeString( true ) == static_cast<char*>(nullptr) )
-with expansion:
- {null string} == {null string}
-
--------------------------------------------------------------------------------
-checkedIf
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECKED_IF( flag )
-with expansion:
- true
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCheckedIf( true ) )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-checkedIf, failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECKED_IF( flag )
-with expansion:
- false
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( testCheckedIf( false ) )
-with expansion:
- false
-
--------------------------------------------------------------------------------
-checkedElse
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECKED_ELSE( flag )
-with expansion:
- true
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCheckedElse( true ) )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-checkedElse, failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECKED_ELSE( flag )
-with expansion:
- false
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( testCheckedElse( false ) )
-with expansion:
- false
-
--------------------------------------------------------------------------------
-xmlentitycheck
- embedded xml
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-xmlentitycheck
- encoded chars
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-send a single char to INFO
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- REQUIRE( false )
-with message:
- 3
-
--------------------------------------------------------------------------------
-atomic if
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( x == 0 )
-with expansion:
- 0 == 0
-
--------------------------------------------------------------------------------
-String matchers
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE_THAT( testStringForMatching(), Contains( "string" ) )
-with expansion:
- "this string contains 'abc' as a substring" contains: "string"
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), Contains( "abc" ) )
-with expansion:
- "this string contains 'abc' as a substring" contains: "abc"
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), StartsWith( "this" ) )
-with expansion:
- "this string contains 'abc' as a substring" starts with: "this"
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) )
-with expansion:
- "this string contains 'abc' as a substring" ends with: "substring"
-
--------------------------------------------------------------------------------
-Contains string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), Contains( "not there" ) )
-with expansion:
- "this string contains 'abc' as a substring" contains: "not there"
-
--------------------------------------------------------------------------------
-StartsWith string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), StartsWith( "string" ) )
-with expansion:
- "this string contains 'abc' as a substring" starts with: "string"
-
--------------------------------------------------------------------------------
-EndsWith string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), EndsWith( "this" ) )
-with expansion:
- "this string contains 'abc' as a substring" ends with: "this"
-
--------------------------------------------------------------------------------
-Equals string matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), Equals( "something else" ) )
-with expansion:
- "this string contains 'abc' as a substring" equals: "something else"
-
--------------------------------------------------------------------------------
-Equals string matcher, with NULL
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE_THAT( "", Equals(nullptr) )
-with expansion:
- "" equals: ""
-
--------------------------------------------------------------------------------
-AllOf matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) )
-with expansion:
- "this string contains 'abc' as a substring" ( contains: "string" and
- contains: "abc" )
-
--------------------------------------------------------------------------------
-AnyOf matcher
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) )
-with expansion:
- "this string contains 'abc' as a substring" ( contains: "string" or contains:
- "not there" )
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) )
-with expansion:
- "this string contains 'abc' as a substring" ( contains: "not there" or
- contains: "string" )
-
--------------------------------------------------------------------------------
-Equals
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) )
-with expansion:
- "this string contains 'abc' as a substring" equals: "this string contains
- 'abc' as a substring"
-
--------------------------------------------------------------------------------
-Matchers can be (AllOf) composed with the && operator
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) )
-with expansion:
- "this string contains 'abc' as a substring" ( contains: "string" and
- contains: "abc" and contains: "substring" and contains: "contains" )
-
--------------------------------------------------------------------------------
-Matchers can be (AnyOf) composed with the || operator
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
-with expansion:
- "this string contains 'abc' as a substring" ( contains: "string" or contains:
- "different" or contains: "random" )
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
-with expansion:
- "some completely different text that contains one common word" ( contains:
- "string" or contains: "different" or contains: "random" )
-
--------------------------------------------------------------------------------
-Matchers can be composed with both && and ||
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) )
-with expansion:
- "this string contains 'abc' as a substring" ( ( contains: "string" or
- contains: "different" ) and contains: "substring" )
-
--------------------------------------------------------------------------------
-Matchers can be composed with both && and || - failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
-with expansion:
- "this string contains 'abc' as a substring" ( ( contains: "string" or
- contains: "different" ) and contains: "random" )
-
--------------------------------------------------------------------------------
-Matchers can be negated (Not) with the ! operator
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK_THAT( testStringForMatching(), !Contains( "different" ) )
-with expansion:
- "this string contains 'abc' as a substring" not contains: "different"
-
--------------------------------------------------------------------------------
-Matchers can be negated (Not) with the ! operator - failing
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
-with expansion:
- "this string contains 'abc' as a substring" not contains: "substring"
-
--------------------------------------------------------------------------------
-Factorials are computed
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( Factorial(0) == 1 )
-with expansion:
- 1 == 1
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( Factorial(1) == 1 )
-with expansion:
- 1 == 1
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( Factorial(2) == 2 )
-with expansion:
- 2 == 2
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( Factorial(3) == 6 )
-with expansion:
- 6 == 6
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( Factorial(10) == 3628800 )
-with expansion:
- 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
-
--------------------------------------------------------------------------------
-Nice descriptive name
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-warning:
- This one ran
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
- resizing bigger changes size and capacity
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 10 )
-with expansion:
- 10 == 10
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 10 )
-with expansion:
- 10 >= 10
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
- resizing smaller changes size but not capacity
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 0 )
-with expansion:
- 0 == 0
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
- resizing smaller changes size but not capacity
- We can use the 'swap trick' to reset the capacity
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() == 0 )
-with expansion:
- 0 == 0
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
- reserving bigger changes capacity but not size
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 10 )
-with expansion:
- 10 >= 10
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-vectors can be sized and resized
- reserving smaller does not change size or capacity
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.size() == 5 )
-with expansion:
- 5 == 5
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( v.capacity() >= 5 )
-with expansion:
- 5 >= 5
-
--------------------------------------------------------------------------------
-A couple of nested sections followed by a failure
- Outer
- Inner
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-with message:
- that's not flying - that's failing in style
-
--------------------------------------------------------------------------------
-A couple of nested sections followed by a failure
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
-explicitly with message:
- to infinity and beyond
-
--------------------------------------------------------------------------------
-not allowed
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-Tabs and newlines show in output
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>: FAILED:
- CHECK( s1 == s2 )
-with expansion:
- "if ($b == 10) {
- $a= 20;
- }"
- ==
- "if ($b == 10) {
- $a = 20;
- }
- "
-
--------------------------------------------------------------------------------
-toString on const wchar_t const pointer returns the string contents
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK( result == "\"wide load\"" )
-with expansion:
- ""wide load"" == ""wide load""
-
--------------------------------------------------------------------------------
-toString on const wchar_t pointer returns the string contents
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK( result == "\"wide load\"" )
-with expansion:
- ""wide load"" == ""wide load""
-
--------------------------------------------------------------------------------
-toString on wchar_t const pointer returns the string contents
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK( result == "\"wide load\"" )
-with expansion:
- ""wide load"" == ""wide load""
-
--------------------------------------------------------------------------------
-toString on wchar_t returns the string contents
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- CHECK( result == "\"wide load\"" )
-with expansion:
- ""wide load"" == ""wide load""
-
--------------------------------------------------------------------------------
-XmlEncode
- normal string
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "normal string" ) == "normal string" )
-with expansion:
- "normal string" == "normal string"
-
--------------------------------------------------------------------------------
-XmlEncode
- empty string
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "" ) == "" )
-with expansion:
- "" == ""
-
--------------------------------------------------------------------------------
-XmlEncode
- string with ampersand
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "smith & jones" ) == "smith & jones" )
-with expansion:
- "smith & jones" == "smith & jones"
-
--------------------------------------------------------------------------------
-XmlEncode
- string with less-than
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "smith < jones" ) == "smith < jones" )
-with expansion:
- "smith < jones" == "smith < jones"
-
--------------------------------------------------------------------------------
-XmlEncode
- string with greater-than
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "smith > jones" ) == "smith > jones" )
-with expansion:
- "smith > jones" == "smith > jones"
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" )
-with expansion:
- "smith ]]> jones"
- ==
- "smith ]]> jones"
-
--------------------------------------------------------------------------------
-XmlEncode
- string with quotes
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
-with expansion:
- "don't "quote" me on that"
- ==
- "don't "quote" me on that"
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" )
-with expansion:
- "don't "quote" me on that"
- ==
- "don't "quote" me on that"
-
--------------------------------------------------------------------------------
-XmlEncode
- string with control char (1)
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "[\x01]" ) == "[]" )
-with expansion:
- "[]" == "[]"
-
--------------------------------------------------------------------------------
-XmlEncode
- string with control char (x7F)
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( encode( "[\x7F]" ) == "[]" )
-with expansion:
- "[]" == "[]"
-
--------------------------------------------------------------------------------
-long long
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
- REQUIRE( l == std::numeric_limits<long long>::max() )
-with expansion:
- 9223372036854775807 (0x<hex digits>)
- ==
- 9223372036854775807 (0x<hex digits>)
-
--------------------------------------------------------------------------------
-This test 'should' fail but doesn't
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-with message:
- oops!
-
--------------------------------------------------------------------------------
-# A test name that starts with a #
--------------------------------------------------------------------------------
-MiscTests.cpp:<line number>
-...............................................................................
-
-MiscTests.cpp:<line number>:
-PASSED:
-with message:
- yay
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- default - no arguments
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.shouldDebugBreak == false )
-with expansion:
- false == false
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.abortAfter == -1 )
-with expansion:
- -1 == -1
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.noThrow == false )
-with expansion:
- false == false
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.reporterNames.empty() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- test lists
- 1 test
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false )
-with expansion:
- false == false
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- test lists
- Specify one test case exclusion using exclude:
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false )
-with expansion:
- false == false
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- test lists
- Specify one test case exclusion using ~
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false )
-with expansion:
- false == false
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- reporter
- -r/console
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames[0] == "console" )
-with expansion:
- "console" == "console"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- reporter
- -r/xml
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames[0] == "xml" )
-with expansion:
- "xml" == "xml"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- reporter
- -r xml and junit
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames.size() == 2 )
-with expansion:
- 2 == 2
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames[0] == "xml" )
-with expansion:
- "xml" == "xml"
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames[1] == "junit" )
-with expansion:
- "junit" == "junit"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- reporter
- --reporter/junit
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.reporterNames[0] == "junit" )
-with expansion:
- "junit" == "junit"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- debugger
- -b
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.shouldDebugBreak == true )
-with expansion:
- true == true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- debugger
- --break
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.shouldDebugBreak )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- abort
- -a aborts after first failure
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.abortAfter == 1 )
-with expansion:
- 1 == 1
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- abort
- -x 2 aborts after two failures
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.abortAfter == 2 )
-with expansion:
- 2 == 2
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- abort
- -x must be greater than zero
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) )
-with expansion:
- "Value after -x or --abortAfter must be greater than zero
- - while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- abort
- -x must be numeric
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) )
-with expansion:
- "Unable to convert oops to destination type
- - while parsing: (-x, --abortx <no. failures>)" contains: "-x"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- nothrow
- -e
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.noThrow == true )
-with expansion:
- true == true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- nothrow
- --nothrow
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.noThrow == true )
-with expansion:
- true == true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- output filename
- -o filename
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.outputFilename == "filename.ext" )
-with expansion:
- "filename.ext" == "filename.ext"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- output filename
- --out
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.outputFilename == "filename.ext" )
-with expansion:
- "filename.ext" == "filename.ext"
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- combinations
- Single character flags can be combined
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.abortAfter == 1 )
-with expansion:
- 1 == 1
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.shouldDebugBreak )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( config.noThrow == true )
-with expansion:
- true == true
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- use-colour
- without option
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.useColour == UseColour::Auto )
-with expansion:
- 0 == 0
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- use-colour
- auto
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.useColour == UseColour::Auto )
-with expansion:
- 0 == 0
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- use-colour
- yes
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.useColour == UseColour::Yes )
-with expansion:
- 1 == 1
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- use-colour
- no
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE( config.useColour == UseColour::No )
-with expansion:
- 2 == 2
-
--------------------------------------------------------------------------------
-Process can be configured on command line
- use-colour
- error
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) )
+ 5 != 6
-------------------------------------------------------------------------------
Long strings can be wrapped
@@ -4906,163 +2984,6 @@
six"
-------------------------------------------------------------------------------
-replaceInPlace
- replace single char
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( letters, "b", "z" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == "azcdefcg" )
-with expansion:
- "azcdefcg" == "azcdefcg"
-
--------------------------------------------------------------------------------
-replaceInPlace
- replace two chars
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( letters, "c", "z" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == "abzdefzg" )
-with expansion:
- "abzdefzg" == "abzdefzg"
-
--------------------------------------------------------------------------------
-replaceInPlace
- replace first char
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( letters, "a", "z" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == "zbcdefcg" )
-with expansion:
- "zbcdefcg" == "zbcdefcg"
-
--------------------------------------------------------------------------------
-replaceInPlace
- replace last char
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( letters, "g", "z" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == "abcdefcz" )
-with expansion:
- "abcdefcz" == "abcdefcz"
-
--------------------------------------------------------------------------------
-replaceInPlace
- replace all chars
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( letters, letters, "replaced" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == "replaced" )
-with expansion:
- "replaced" == "replaced"
-
--------------------------------------------------------------------------------
-replaceInPlace
- replace no chars
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK_FALSE( replaceInPlace( letters, "x", "z" ) )
-with expansion:
- !false
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( letters == letters )
-with expansion:
- "abcdefcg" == "abcdefcg"
-
--------------------------------------------------------------------------------
-replaceInPlace
- escape '
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( replaceInPlace( s, "'", "|'" ) )
-with expansion:
- true
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( s == "didn|'t" )
-with expansion:
- "didn|'t" == "didn|'t"
-
-hello
-hello
--------------------------------------------------------------------------------
-Text can be formatted using the Text class
--------------------------------------------------------------------------------
-TestMain.cpp:<line number>
-...............................................................................
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( Text( "hi there" ).toString() == "hi there" )
-with expansion:
- "hi there" == "hi there"
-
-TestMain.cpp:<line number>:
-PASSED:
- CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" )
-with expansion:
- "hi
- there"
- ==
- "hi
- there"
-
--------------------------------------------------------------------------------
Long text is truncted
-------------------------------------------------------------------------------
TestMain.cpp:<line number>
@@ -6086,214 +4007,130 @@
was called
-------------------------------------------------------------------------------
-Parsing a std::pair
+Matchers can be (AllOf) composed with the && operator
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+MiscTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
+MiscTests.cpp:<line number>:
PASSED:
- REQUIRE( (std::pair<int, int>( 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:<line number>
+MiscTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( contains: "string" or contains:
+ "different" or contains: "random" )
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) )
+with expansion:
+ "some completely different text that contains one common word" ( contains:
+ "string" or contains: "different" or contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and ||
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "substring" )
+
+-------------------------------------------------------------------------------
+Matchers can be composed with both && and || - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ( ( contains: "string" or
+ contains: "different" ) and contains: "random" )
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), !Contains( "different" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "different"
+
+-------------------------------------------------------------------------------
+Matchers can be negated (Not) with the ! operator - failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), !Contains( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" not contains: "substring"
+
+-------------------------------------------------------------------------------
+Mismatching exception messages failing the test
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
+with expansion:
+ expected exception
+
+-------------------------------------------------------------------------------
+Nice descriptive name
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
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:<line number>
+ExceptionTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
-warning:
- Uncomment the code in this test to check that it gives a sensible compiler
- error
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ custom exception
-------------------------------------------------------------------------------
-A failing expression with a non streamable type is still captured
+NotImplemented exception
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+ExceptionTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>: FAILED:
- CHECK( &o1 == &o2 )
-with expansion:
- 0x<hex digits> == 0x<hex digits>
-
-TrickyTests.cpp:<line number>: FAILED:
- CHECK( o1 == o2 )
-with expansion:
- {?} == {?}
-
--------------------------------------------------------------------------------
-string literals of different sizes can be compared
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>: FAILED:
- REQUIRE( std::string( "first" ) == "second" )
-with expansion:
- "first" == "second"
-
--------------------------------------------------------------------------------
-An expression with side-effects should only be evaluated once
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
+ExceptionTests.cpp:<line number>:
PASSED:
- REQUIRE( i++ == 7 )
-with expansion:
- 7 == 7
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( i++ == 8 )
-with expansion:
- 8 == 8
-
--------------------------------------------------------------------------------
-Operators at different namespace levels not hijacked by Koenig lookup
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0x<hex digits> == o )
-with expansion:
- 3221225472 (0x<hex digits>) == {?}
-
--------------------------------------------------------------------------------
-Demonstrate that a non-const == is not used
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( t == 1u )
-with expansion:
- {?} == 1
-
--------------------------------------------------------------------------------
-Test enum bit values
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0x<hex digits> == bit30and31 )
-with expansion:
- 3221225472 (0x<hex digits>) == 3221225472
-
--------------------------------------------------------------------------------
-boolean member
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( obj.prop != nullptr )
-with expansion:
- 0x<hex digits> != nullptr
-
--------------------------------------------------------------------------------
-(unimplemented) static bools can be evaluated
- compare to true
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( is_true<true>::value == true )
-with expansion:
- true == true
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( true == is_true<true>::value )
-with expansion:
- true == true
-
--------------------------------------------------------------------------------
-(unimplemented) static bools can be evaluated
- compare to false
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( is_true<false>::value == false )
-with expansion:
- false == false
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( false == is_true<false>::value )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-(unimplemented) static bools can be evaluated
- negation
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( !is_true<false>::value )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-(unimplemented) static bools can be evaluated
- double negation
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( !!is_true<true>::value )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-(unimplemented) static bools can be evaluated
- direct
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( is_true<true>::value )
-with expansion:
- true
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE_FALSE( is_true<false>::value )
-with expansion:
- !false
+ REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) )
-------------------------------------------------------------------------------
Objects that evaluated in boolean contexts can be checked
@@ -6320,1412 +4157,247 @@
!false
-------------------------------------------------------------------------------
-Assertions then sections
+Operators at different namespace levels not hijacked by Koenig lookup
-------------------------------------------------------------------------------
TrickyTests.cpp:<line number>
...............................................................................
TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE( Catch::alwaysTrue() )
+ REQUIRE( 0x<hex digits> == o )
with expansion:
- true
+ 3221225472 (0x<hex digits>) == {?}
-------------------------------------------------------------------------------
-Assertions then sections
- A section
+Ordering comparison checks that should fail
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::alwaysTrue() )
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 7 )
with expansion:
- true
+ 7 > 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 7 )
+with expansion:
+ 7 < 7
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven > 8 )
+with expansion:
+ 7 > 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 6 )
+with expansion:
+ 7 < 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < 0 )
+with expansion:
+ 7 < 0
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven < -1 )
+with expansion:
+ 7 < -1
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven >= 8 )
+with expansion:
+ 7 >= 8
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.int_seven <= 6 )
+with expansion:
+ 7 <= 6
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one < 9 )
+with expansion:
+ 9.1f < 9
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 10 )
+with expansion:
+ 9.1f > 10
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.float_nine_point_one > 9.2 )
+with expansion:
+ 9.1f > 9.2
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hello" )
+with expansion:
+ "hello" > "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hello" )
+with expansion:
+ "hello" < "hello"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "hellp" )
+with expansion:
+ "hello" > "hellp"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello > "z" )
+with expansion:
+ "hello" > "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "hellm" )
+with expansion:
+ "hello" < "hellm"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello < "a" )
+with expansion:
+ "hello" < "a"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello >= "z" )
+with expansion:
+ "hello" >= "z"
+
+ConditionTests.cpp:<line number>: FAILED:
+ CHECK( data.str_hello <= "a" )
+with expansion:
+ "hello" <= "a"
-------------------------------------------------------------------------------
-Assertions then sections
- A section
- Another section
+Ordering comparison checks that should succeed
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- REQUIRE( Catch::alwaysTrue() )
+ REQUIRE( data.int_seven < 8 )
with expansion:
- true
+ 7 < 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > 6 )
+with expansion:
+ 7 > 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > 0 )
+with expansion:
+ 7 > 0
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven > -1 )
+with expansion:
+ 7 > -1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven >= 7 )
+with expansion:
+ 7 >= 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven >= 6 )
+with expansion:
+ 7 >= 6
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven <= 7 )
+with expansion:
+ 7 <= 7
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.int_seven <= 8 )
+with expansion:
+ 7 <= 8
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one > 9 )
+with expansion:
+ 9.1f > 9
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one < 10 )
+with expansion:
+ 9.1f < 10
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.float_nine_point_one < 9.2 )
+with expansion:
+ 9.1f < 9.2
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello <= "hello" )
+with expansion:
+ "hello" <= "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello >= "hello" )
+with expansion:
+ "hello" >= "hello"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello < "hellp" )
+with expansion:
+ "hello" < "hellp"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello < "zebra" )
+with expansion:
+ "hello" < "zebra"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello > "hellm" )
+with expansion:
+ "hello" > "hellm"
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( data.str_hello > "a" )
+with expansion:
+ "hello" > "a"
-------------------------------------------------------------------------------
-Assertions then sections
+Output from all sections is reported
+ one
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::alwaysTrue() )
-with expansion:
- true
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section one
-------------------------------------------------------------------------------
-Assertions then sections
- A section
+Output from all sections is reported
+ two
-------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::alwaysTrue() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Assertions then sections
- A section
- Another other section
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::alwaysTrue() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-non streamable - with conv. op
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( s == "7" )
-with expansion:
- "7" == "7"
-
--------------------------------------------------------------------------------
-Comparing function pointers
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( a )
-with expansion:
- true
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( a == &foo )
-with expansion:
- 0x<hex digits> == 0x<hex digits>
-
--------------------------------------------------------------------------------
-Comparing member function pointers
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- CHECK( m == &S::f )
-with expansion:
- 0x<hex digits>
- ==
- 0x<hex digits>
-
--------------------------------------------------------------------------------
-pointer to class
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( p == 0 )
-with expansion:
- NULL == 0
-
--------------------------------------------------------------------------------
-null_ptr
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
- REQUIRE( ptr.get() == nullptr )
-with expansion:
- NULL == nullptr
-
--------------------------------------------------------------------------------
-X/level/0/a
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-X/level/0/b
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-X/level/1/a
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-X/level/1/b
--------------------------------------------------------------------------------
-TrickyTests.cpp:<line number>
-...............................................................................
-
-TrickyTests.cpp:<line number>:
-PASSED:
-
--------------------------------------------------------------------------------
-toString( has_toString )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( item ) == "toString( has_toString )" )
-with expansion:
- "toString( has_toString )"
- ==
- "toString( has_toString )"
-
--------------------------------------------------------------------------------
-toString( has_maker )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( item ) == "StringMaker<has_maker>" )
-with expansion:
- "StringMaker<has_maker>"
- ==
- "StringMaker<has_maker>"
-
--------------------------------------------------------------------------------
-toString( has_maker_and_toString )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" )
-with expansion:
- "toString( has_maker_and_toString )"
- ==
- "toString( has_maker_and_toString )"
-
--------------------------------------------------------------------------------
-toString( vectors<has_toString )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( v ) == "{ {?} }" )
-with expansion:
- "{ {?} }" == "{ {?} }"
-
--------------------------------------------------------------------------------
-toString( vectors<has_maker )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker> }" )
-with expansion:
- "{ StringMaker<has_maker> }"
- ==
- "{ StringMaker<has_maker> }"
-
--------------------------------------------------------------------------------
-toString( vectors<has_maker_and_toString )
--------------------------------------------------------------------------------
-ToStringWhich.cpp:<line number>
-...............................................................................
-
-ToStringWhich.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" )
-with expansion:
- "{ StringMaker<has_maker_and_toString> }"
- ==
- "{ StringMaker<has_maker_and_toString> }"
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isSuccessfullyCompleted() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- fail one section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- fail one section
- re-enter after failed section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- fail one section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- fail one section
- re-enter after failed section and find next section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
- Re-enter - skips S1 and enters S2
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
- Re-enter - skips S1 and enters S2
- Successfully close S2
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isSuccessfullyCompleted() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isSuccessfullyCompleted() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
- Re-enter - skips S1 and enters S2
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- successfully close one section, then find another
- Re-enter - skips S1 and enters S2
- fail S2
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( ctx.completedCycle() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase3.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1c.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2c.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase3.isSuccessfullyCompleted() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- open a nested section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.index() == 0 )
-with expansion:
- 0 == 0
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- close outer section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- close outer section
- Re-enter for second generation
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.index() == 1 )
-with expansion:
- 1 == 1
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isComplete() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.index() == 0 )
-with expansion:
- 0 == 0
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- Start a new inner section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- Start a new inner section
- Re-enter for second generation
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.index() == 1 )
-with expansion:
- 1 == 1
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isComplete() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isOpen() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.index() == 0 )
-with expansion:
- 0 == 0
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- Fail an inner section
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2.isSuccessfullyCompleted() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase.isComplete() == false )
-with expansion:
- false == false
-
--------------------------------------------------------------------------------
-Tracker
- start a generator
- Fail an inner section
- Re-enter for second generation
--------------------------------------------------------------------------------
-PartTrackerTests.cpp:<line number>
-...............................................................................
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.index() == 0 )
-with expansion:
- 0 == 0
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2b.isOpen() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1b.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1b.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase2.isComplete() == false )
-with expansion:
- false == false
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase3.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1c.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1c.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1c.index() == 1 )
-with expansion:
- 1 == 1
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2c.isOpen() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s2c.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( g1c.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( s1c.isComplete() )
-with expansion:
- true
-
-PartTrackerTests.cpp:<line number>:
-PASSED:
- REQUIRE( testCase3.isComplete() )
-with expansion:
- true
-
--------------------------------------------------------------------------------
-std::pair<int,std::string> -> toString
--------------------------------------------------------------------------------
-ToStringPair.cpp:<line number>
-...............................................................................
-
-ToStringPair.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" )
-with expansion:
- "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
-
--------------------------------------------------------------------------------
-std::pair<int,const std::string> -> toString
--------------------------------------------------------------------------------
-ToStringPair.cpp:<line number>
-...............................................................................
-
-ToStringPair.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" )
-with expansion:
- "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
-
--------------------------------------------------------------------------------
-std::vector<std::pair<std::string,int> > -> toString
--------------------------------------------------------------------------------
-ToStringPair.cpp:<line number>
-...............................................................................
-
-ToStringPair.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" )
-with expansion:
- "{ { "green", 55 } }"
- ==
- "{ { "green", 55 } }"
-
--------------------------------------------------------------------------------
-pair<pair<int,const char *,pair<std::string,int> > -> toString
--------------------------------------------------------------------------------
-ToStringPair.cpp:<line number>
-...............................................................................
-
-ToStringPair.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
-with expansion:
- "{ { 42, "Arthur" }, { "Ford", 24 } }"
- ==
- "{ { 42, "Arthur" }, { "Ford", 24 } }"
-
--------------------------------------------------------------------------------
-vector<int> -> toString
--------------------------------------------------------------------------------
-ToStringVector.cpp:<line number>
-...............................................................................
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ }" )
-with expansion:
- "{ }" == "{ }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ 42 }" )
-with expansion:
- "{ 42 }" == "{ 42 }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
-with expansion:
- "{ 42, 250 }" == "{ 42, 250 }"
-
--------------------------------------------------------------------------------
-vector<string> -> toString
--------------------------------------------------------------------------------
-ToStringVector.cpp:<line number>
-...............................................................................
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ }" )
-with expansion:
- "{ }" == "{ }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ \"hello\" }" )
-with expansion:
- "{ "hello" }" == "{ "hello" }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" )
-with expansion:
- "{ "hello", "world" }"
- ==
- "{ "hello", "world" }"
-
--------------------------------------------------------------------------------
-vector<int,allocator> -> toString
--------------------------------------------------------------------------------
-ToStringVector.cpp:<line number>
-...............................................................................
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ }" )
-with expansion:
- "{ }" == "{ }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ 42 }" )
-with expansion:
- "{ 42 }" == "{ 42 }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
-with expansion:
- "{ 42, 250 }" == "{ 42, 250 }"
-
--------------------------------------------------------------------------------
-vec<vec<string,alloc>> -> toString
--------------------------------------------------------------------------------
-ToStringVector.cpp:<line number>
-...............................................................................
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(v) == "{ }" )
-with expansion:
- "{ }" == "{ }"
-
-ToStringVector.cpp:<line number>:
-PASSED:
- REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" )
-with expansion:
- "{ { "hello" }, { "world" } }"
- ==
- "{ { "hello" }, { "world" } }"
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Message from section two
-------------------------------------------------------------------------------
Parse test names and tags
@@ -8755,194 +5427,717 @@
true == true
-------------------------------------------------------------------------------
-tuple<>
+Parsing a std::pair
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- CHECK( "{ }" == Catch::toString(type{}) )
+ REQUIRE( (std::pair<int, int>( 1, 2 )) == aNicePair )
with expansion:
- "{ }" == "{ }"
-
-ToStringTuple.cpp:<line number>:
-PASSED:
- CHECK( "{ }" == Catch::toString(value) )
-with expansion:
- "{ }" == "{ }"
+ std::pair( 1, 2 ) == std::pair( 1, 2 )
-------------------------------------------------------------------------------
-tuple<int>
+Pointers can be compared to null
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+ConditionTests.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
+ConditionTests.cpp:<line number>:
PASSED:
- CHECK( "{ 0 }" == Catch::toString(type{0}) )
+ REQUIRE( p == nullptr )
with expansion:
- "{ 0 }" == "{ 0 }"
+ NULL == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p == pNULL )
+with expansion:
+ NULL == NULL
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( cp != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( cpc != nullptr )
+with expansion:
+ 0x<hex digits> != nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( returnsNull() == nullptr )
+with expansion:
+ {null string} == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( returnsConstNull() == nullptr )
+with expansion:
+ {null string} == nullptr
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( nullptr != p )
+with expansion:
+ nullptr != 0x<hex digits>
-------------------------------------------------------------------------------
-tuple<float,int>
+Pointers can be converted to strings
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
-PASSED:
- CHECK( "1.2f" == Catch::toString(float(1.2)) )
-with expansion:
- "1.2f" == "1.2f"
+MessageTests.cpp:<line number>:
+warning:
+ actual address of p: 0x<hex digits>
-ToStringTuple.cpp:<line number>:
-PASSED:
- CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) )
-with expansion:
- "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+MessageTests.cpp:<line number>:
+warning:
+ toString(p): 0x<hex digits>
-------------------------------------------------------------------------------
-tuple<string,string>
+Process can be configured on command line
+ default - no arguments
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+TestMain.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) )
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.shouldDebugBreak == false )
with expansion:
- "{ "hello", "world" }"
- ==
- "{ "hello", "world" }"
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.abortAfter == -1 )
+with expansion:
+ -1 == -1
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.noThrow == false )
+with expansion:
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.reporterNames.empty() )
+with expansion:
+ true
-------------------------------------------------------------------------------
-tuple<tuple<int>,tuple<>,float>
+Process can be configured on command line
+ test lists
+ 1 test
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+TestMain.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) )
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false )
with expansion:
- "{ { 42 }, { }, 1.2f }"
- ==
- "{ { 42 }, { }, 1.2f }"
+ false == false
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) )
+with expansion:
+ true
-------------------------------------------------------------------------------
-tuple<nullptr,int,const char *>
+Process can be configured on command line
+ test lists
+ Specify one test case exclusion using exclude:
-------------------------------------------------------------------------------
-ToStringTuple.cpp:<line number>
+TestMain.cpp:<line number>
...............................................................................
-ToStringTuple.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) )
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false )
with expansion:
- "{ nullptr, 42, "Catch me" }"
- ==
- "{ nullptr, 42, "Catch me" }"
+ false == false
+
+TestMain.cpp:<line number>:
+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:<line number>
+TestMain.cpp:<line number>
...............................................................................
-TagAliasTests.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK_THAT( what, Contains( "[@zzz]" ) )
-with expansion:
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains: "
- [@zzz]"
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-TagAliasTests.cpp:<line number>:
+TestMain.cpp:<line number>:
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:<line number>:
+TestMain.cpp:<line number>:
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:<line number>:
-PASSED:
- CHECK_THAT( what, Contains( "10" ) )
-with expansion:
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains:
- "10"
+ 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:<line number>
+TestMain.cpp:<line number>
...............................................................................
-TagAliasTests.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
-TagAliasTests.cpp:<line number>:
+TestMain.cpp:<line number>:
PASSED:
- CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
-
-TagAliasTests.cpp:<line number>:
-PASSED:
- CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
-
-TagAliasTests.cpp:<line number>:
-PASSED:
- CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )
+ 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:<line number>
+TestMain.cpp:<line number>
...............................................................................
-VariadicMacrosTests.cpp:<line number>:
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "xml" )
+with expansion:
+ "xml" == "xml"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ -r xml and junit
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames.size() == 2 )
+with expansion:
+ 2 == 2
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "xml" )
+with expansion:
+ "xml" == "xml"
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[1] == "junit" )
+with expansion:
+ "junit" == "junit"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ reporter
+ --reporter/junit
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.reporterNames[0] == "junit" )
+with expansion:
+ "junit" == "junit"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ -b
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.shouldDebugBreak == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ debugger
+ --break
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.shouldDebugBreak )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -a aborts after first failure
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x 2 aborts after two failures
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.abortAfter == 2 )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x must be greater than zero
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) )
+with expansion:
+ "Value after -x or --abortAfter must be greater than zero
+ - while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ abort
+ -x must be numeric
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) )
+with expansion:
+ "Unable to convert oops to destination type
+ - while parsing: (-x, --abortx <no. failures>)" contains: "-x"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ -e
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ nothrow
+ --nothrow
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ -o filename
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.outputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ output filename
+ --out
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.outputFilename == "filename.ext" )
+with expansion:
+ "filename.ext" == "filename.ext"
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ combinations
+ Single character flags can be combined
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.abortAfter == 1 )
+with expansion:
+ 1 == 1
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.shouldDebugBreak )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( config.noThrow == true )
+with expansion:
+ true == true
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ without option
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Auto )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ auto
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Auto )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ yes
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::Yes )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ no
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_NOTHROW( parseIntoConfig( argv, config ) )
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE( config.useColour == UseColour::No )
+with expansion:
+ 2 == 2
+
+-------------------------------------------------------------------------------
+Process can be configured on command line
+ use-colour
+ error
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) )
+
+-------------------------------------------------------------------------------
+SCOPED_INFO is reset for each loop
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 0 < 10
+with messages:
+ current counter 0
+ i := 0
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 1 < 10
+with messages:
+ current counter 1
+ i := 1
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 2 < 10
+with messages:
+ current counter 2
+ i := 2
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 3 < 10
+with messages:
+ current counter 3
+ i := 3
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 4 < 10
+with messages:
+ current counter 4
+ i := 4
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 5 < 10
+with messages:
+ current counter 5
+ i := 5
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 6 < 10
+with messages:
+ current counter 6
+ i := 6
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 7 < 10
+with messages:
+ current counter 7
+ i := 7
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 8 < 10
+with messages:
+ current counter 8
+ i := 8
+
+MessageTests.cpp:<line number>:
+PASSED:
+ REQUIRE( i < 10 )
+with expansion:
+ 9 < 10
+with messages:
+ current counter 9
+ i := 9
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( i < 10 )
+with expansion:
+ 10 < 10
+with messages:
+ current counter 10
+ i := 10
+
+-------------------------------------------------------------------------------
+SUCCEED counts as a test pass
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
PASSED:
with message:
- anonymous test case
+ this is a success
-------------------------------------------------------------------------------
-Test case with one argument
+SUCCESS does not require an argument
-------------------------------------------------------------------------------
-VariadicMacrosTests.cpp:<line number>
+MessageTests.cpp:<line number>
...............................................................................
-VariadicMacrosTests.cpp:<line number>:
+MessageTests.cpp:<line number>:
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:<line number>
+BDDTests.cpp:<line number>
...............................................................................
-VariadicMacrosTests.cpp:<line number>:
+BDDTests.cpp:<line number>:
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:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+ REQUIRE( after > before )
+with expansion:
+ 1 > 0
-------------------------------------------------------------------------------
Scenario: Do that thing with the thing
@@ -8976,6 +6171,24 @@
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:<line number>
+...............................................................................
+
+BDDTests.cpp:<line number>:
+PASSED:
+with message:
+ boo!
+
+-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
Given: an empty vector
-------------------------------------------------------------------------------
@@ -9066,53 +6279,2840 @@
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:<line number>
+ApproxTests.cpp:<line number>
...............................................................................
-BDDTests.cpp:<line number>:
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == Approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.22 ) )
+with expansion:
+ 1.23 != Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != Approx( 1.24 ) )
+with expansion:
+ 1.23 != Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.22 )
+with expansion:
+ Approx( 1.23 ) != 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( Approx( d ) != 1.24 )
+with expansion:
+ Approx( 1.23 ) != 1.24
+
+Message from section one
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ one
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'one'
+
+Message from section two
+-------------------------------------------------------------------------------
+Standard output from all sections is reported
+ two
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+
+No assertions in section 'two'
+
+-------------------------------------------------------------------------------
+StartsWith string matcher
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "string"
+
+-------------------------------------------------------------------------------
+String matchers
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THAT( testStringForMatching(), Contains( "string" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "string"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), Contains( "abc" ) )
+with expansion:
+ "this string contains 'abc' as a substring" contains: "abc"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), StartsWith( "this" ) )
+with expansion:
+ "this string contains 'abc' as a substring" starts with: "this"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) )
+with expansion:
+ "this string contains 'abc' as a substring" ends with: "substring"
+
+hello
+hello
+-------------------------------------------------------------------------------
+Tabs and newlines show in output
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( s1 == s2 )
+with expansion:
+ "if ($b == 10) {
+ $a= 20;
+ }"
+ ==
+ "if ($b == 10) {
+ $a = 20;
+ }
+ "
+
+-------------------------------------------------------------------------------
+Tag alias can be registered against tag patterns
+ The same tag alias can only be registered once
+-------------------------------------------------------------------------------
+TagAliasTests.cpp:<line number>
+...............................................................................
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "[@zzz]" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "
+ [@zzz]"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "file" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains:
+ "file"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "2" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains:
+ "2"
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THAT( what, Contains( "10" ) )
+with expansion:
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains:
+ "10"
+
+-------------------------------------------------------------------------------
+Tag alias can be registered against tag patterns
+ Tag aliases must be of the form [@name]
+-------------------------------------------------------------------------------
+TagAliasTests.cpp:<line number>
+...............................................................................
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+TagAliasTests.cpp:<line number>:
+PASSED:
+ CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )
+
+-------------------------------------------------------------------------------
+Test case with one argument
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
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:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-BDDTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE( before == 0 )
+ REQUIRE( 0x<hex digits> == bit30and31 )
+with expansion:
+ 3221225472 (0x<hex digits>) == 3221225472
+
+-------------------------------------------------------------------------------
+Text can be formatted using the Text class
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "hi there" ).toString() == "hi there" )
+with expansion:
+ "hi there" == "hi there"
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" )
+with expansion:
+ "hi
+ there"
+ ==
+ "hi
+ there"
+
+-------------------------------------------------------------------------------
+The NO_FAIL macro reports a failure but does not fail the test
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>:
+FAILED - but was ok:
+ CHECK_NOFAIL( 1 == 2 )
+
+-------------------------------------------------------------------------------
+This test 'should' fail but doesn't
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+with message:
+ oops!
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ fail one section
+ re-enter after failed section and find next section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ Successfully close S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ successfully close one section, then find another
+ Re-enter - skips S1 and enters S2
+ fail S2
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ctx.completedCycle() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isSuccessfullyCompleted() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ open a nested section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ close outer section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ close outer section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Start a new inner section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Start a new inner section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isOpen() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Fail an inner section
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2.isSuccessfullyCompleted() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase.isComplete() == false )
+with expansion:
+ false == false
+
+-------------------------------------------------------------------------------
+Tracker
+ start a generator
+ Fail an inner section
+ Re-enter for second generation
+-------------------------------------------------------------------------------
+PartTrackerTests.cpp:<line number>
+...............................................................................
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.index() == 0 )
+with expansion:
+ 0 == 0
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2b.isOpen() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1b.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1b.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase2.isComplete() == false )
+with expansion:
+ false == false
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.index() == 1 )
+with expansion:
+ 1 == 1
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isOpen() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s2c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( g1c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s1c.isComplete() )
+with expansion:
+ true
+
+PartTrackerTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCase3.isComplete() )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+Unexpected exceptions can be translated
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ 3.14
+
+-------------------------------------------------------------------------------
+Use a custom approx
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.23 ) )
+with expansion:
+ 1.23 == Approx( 1.23 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.22 ) )
+with expansion:
+ 1.23 == Approx( 1.22 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d == approx( 1.24 ) )
+with expansion:
+ 1.23 == Approx( 1.24 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( d != approx( 1.25 ) )
+with expansion:
+ 1.23 != Approx( 1.25 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.23 )
+with expansion:
+ Approx( 1.23 ) == 1.23
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.22 )
+with expansion:
+ Approx( 1.23 ) == 1.22
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) == 1.24 )
+with expansion:
+ Approx( 1.23 ) == 1.24
+
+ApproxTests.cpp:<line number>:
+PASSED:
+ REQUIRE( approx( d ) != 1.25 )
+with expansion:
+ Approx( 1.23 ) != 1.25
+
+-------------------------------------------------------------------------------
+Variadic macros
+ Section with one argument
+-------------------------------------------------------------------------------
+VariadicMacrosTests.cpp:<line number>
+...............................................................................
+
+VariadicMacrosTests.cpp:<line number>:
+PASSED:
+with message:
+ no assertions
+
+-------------------------------------------------------------------------------
+When checked exceptions are thrown they can be expected or unexpected
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS_AS( thisThrows() )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_NOTHROW( thisDoesntThrow() )
+
+ExceptionTests.cpp:<line number>:
+PASSED:
+ REQUIRE_THROWS( thisThrows() )
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown directly they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a CHECK the test should abort and
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown during a REQUIRE the test should abort
+fail
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ REQUIRE( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from functions they are always failures
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+ CHECK( thisThrows() == 0 )
+due to unexpected exception with message:
+ expected exception
+
+-------------------------------------------------------------------------------
+When unchecked exceptions are thrown from sections they are always failures
+ section name
+-------------------------------------------------------------------------------
+ExceptionTests.cpp:<line number>
+...............................................................................
+
+ExceptionTests.cpp:<line number>: FAILED:
+due to unexpected exception with message:
+ unexpected exception
+
+-------------------------------------------------------------------------------
+Where the LHS is not a simple value
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+Where there is more to the expression after the RHS
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+warning:
+ Uncomment the code in this test to check that it gives a sensible compiler
+ error
+
+-------------------------------------------------------------------------------
+X/level/0/a
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/0/b
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/a
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+X/level/1/b
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+XmlEncode
+ normal string
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "normal string" ) == "normal string" )
+with expansion:
+ "normal string" == "normal string"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ empty string
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "" ) == "" )
+with expansion:
+ "" == ""
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with ampersand
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith & jones" ) == "smith & jones" )
+with expansion:
+ "smith & jones" == "smith & jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with less-than
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith < jones" ) == "smith < jones" )
+with expansion:
+ "smith < jones" == "smith < jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with greater-than
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith > jones" ) == "smith > jones" )
+with expansion:
+ "smith > jones" == "smith > jones"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" )
+with expansion:
+ "smith ]]> jones"
+ ==
+ "smith ]]> jones"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with quotes
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
+with expansion:
+ "don't "quote" me on that"
+ ==
+ "don't "quote" me on that"
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" )
+with expansion:
+ "don't "quote" me on that"
+ ==
+ "don't "quote" me on that"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (1)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "[\x01]" ) == "[]" )
+with expansion:
+ "[]" == "[]"
+
+-------------------------------------------------------------------------------
+XmlEncode
+ string with control char (x7F)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( encode( "[\x7F]" ) == "[]" )
+with expansion:
+ "[]" == "[]"
+
+-------------------------------------------------------------------------------
+atomic if
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+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:<line number>
+TrickyTests.cpp:<line number>
...............................................................................
-BDDTests.cpp:<line number>:
+TrickyTests.cpp:<line number>:
PASSED:
- REQUIRE( after > before )
+ REQUIRE( obj.prop != nullptr )
with expansion:
- 1 > 0
+ 0x<hex digits> != nullptr
+
+-------------------------------------------------------------------------------
+checkedElse
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECKED_ELSE( flag )
+with expansion:
+ true
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCheckedElse( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedElse, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_ELSE( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedElse( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+checkedIf
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECKED_IF( flag )
+with expansion:
+ true
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( testCheckedIf( true ) )
+with expansion:
+ true
+
+-------------------------------------------------------------------------------
+checkedIf, failing
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECKED_IF( flag )
+with expansion:
+ false
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( testCheckedIf( false ) )
+with expansion:
+ false
+
+-------------------------------------------------------------------------------
+comparisons between const int variables
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_char_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_short_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_int_var == 1 )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( unsigned_long_var == 1 )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+comparisons between int variables
+-------------------------------------------------------------------------------
+ConditionTests.cpp:<line number>
+...............................................................................
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_char_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_short_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_int_var )
+with expansion:
+ 1 == 1
+
+ConditionTests.cpp:<line number>:
+PASSED:
+ REQUIRE( long_var == unsigned_long_var )
+with expansion:
+ 1 == 1
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ d (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ c
+ e (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+even more nested SECTION tests
+ f (leaf)
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+just failure
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+explicitly with message:
+ Previous info should not be seen
+
+-------------------------------------------------------------------------------
+long long
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( l == std::numeric_limits<long long>::max() )
+with expansion:
+ 9223372036854775807 (0x<hex digits>)
+ ==
+ 9223372036854775807 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
+looped SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( b > a )
+with expansion:
+ 0 > 1
+
+-------------------------------------------------------------------------------
+looped tests
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[0] (1) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[1] (1) is even
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[2] (2) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[3] (3) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[4] (5) is even
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 0 == 0
+with message:
+ Testing if fib[5] (8) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[6] (13) is even
+
+MiscTests.cpp:<line number>: FAILED:
+ CHECK( ( fib[i] % 2 ) == 0 )
+with expansion:
+ 1 == 0
+with message:
+ Testing if fib[7] (21) is even
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( a == b )
+with expansion:
+ 1 == 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s3
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+more nested SECTION tests
+ s1
+ s4
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a < b )
+with expansion:
+ 1 < 2
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+nested SECTION tests
+ s1
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+non streamable - with conv. op
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( s == "7" )
+with expansion:
+ "7" == "7"
+
+-------------------------------------------------------------------------------
+not allowed
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+null strings
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( makeString( false ) != static_cast<char*>(nullptr) )
+with expansion:
+ "valid string" != {null string}
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( makeString( true ) == static_cast<char*>(nullptr) )
+with expansion:
+ {null string} == {null string}
+
+-------------------------------------------------------------------------------
+null_ptr
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( ptr.get() == nullptr )
+with expansion:
+ NULL == nullptr
+
+-------------------------------------------------------------------------------
+pair<pair<int,const char *,pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
+with expansion:
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+ ==
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+
+-------------------------------------------------------------------------------
+pointer to class
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+ REQUIRE( p == 0 )
+with expansion:
+ NULL == 0
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ s1
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( b != a )
+with expansion:
+ 2 != 1
+
+-------------------------------------------------------------------------------
+random SECTION tests
+ s2
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( a != b )
+with expansion:
+ 1 != 2
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace single char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "b", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "azcdefcg" )
+with expansion:
+ "azcdefcg" == "azcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace two chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "c", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "abzdefzg" )
+with expansion:
+ "abzdefzg" == "abzdefzg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace first char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "a", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "zbcdefcg" )
+with expansion:
+ "zbcdefcg" == "zbcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace last char
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, "g", "z" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "abcdefcz" )
+with expansion:
+ "abcdefcz" == "abcdefcz"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace all chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( letters, letters, "replaced" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == "replaced" )
+with expansion:
+ "replaced" == "replaced"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ replace no chars
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK_FALSE( replaceInPlace( letters, "x", "z" ) )
+with expansion:
+ !false
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( letters == letters )
+with expansion:
+ "abcdefcg" == "abcdefcg"
+
+-------------------------------------------------------------------------------
+replaceInPlace
+ escape '
+-------------------------------------------------------------------------------
+TestMain.cpp:<line number>
+...............................................................................
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( replaceInPlace( s, "'", "|'" ) )
+with expansion:
+ true
+
+TestMain.cpp:<line number>:
+PASSED:
+ CHECK( s == "didn|'t" )
+with expansion:
+ "didn|'t" == "didn|'t"
+
+-------------------------------------------------------------------------------
+send a single char to INFO
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with message:
+ 3
+
+-------------------------------------------------------------------------------
+sends information to INFO
+-------------------------------------------------------------------------------
+MessageTests.cpp:<line number>
+...............................................................................
+
+MessageTests.cpp:<line number>: FAILED:
+ REQUIRE( false )
+with messages:
+ hi
+ i := 7
+
+-------------------------------------------------------------------------------
+std::pair<int,const std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::pair<int,std::string> -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" )
+with expansion:
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+
+-------------------------------------------------------------------------------
+std::vector<std::pair<std::string,int> > -> toString
+-------------------------------------------------------------------------------
+ToStringPair.cpp:<line number>
+...............................................................................
+
+ToStringPair.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" )
+with expansion:
+ "{ { "green", 55 } }"
+ ==
+ "{ { "green", 55 } }"
+
+-------------------------------------------------------------------------------
+string literals of different sizes can be compared
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>: FAILED:
+ REQUIRE( std::string( "first" ) == "second" )
+with expansion:
+ "first" == "second"
+
+-------------------------------------------------------------------------------
+toString on const wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on const wchar_t pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t const pointer returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString on wchar_t returns the string contents
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ CHECK( result == "\"wide load\"" )
+with expansion:
+ ""wide load"" == ""wide load""
+
+-------------------------------------------------------------------------------
+toString( has_maker )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "StringMaker<has_maker>" )
+with expansion:
+ "StringMaker<has_maker>"
+ ==
+ "StringMaker<has_maker>"
+
+-------------------------------------------------------------------------------
+toString( has_maker_and_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" )
+with expansion:
+ "toString( has_maker_and_toString )"
+ ==
+ "toString( has_maker_and_toString )"
+
+-------------------------------------------------------------------------------
+toString( has_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( item ) == "toString( has_toString )" )
+with expansion:
+ "toString( has_toString )"
+ ==
+ "toString( has_toString )"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_maker )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker> }" )
+with expansion:
+ "{ StringMaker<has_maker> }"
+ ==
+ "{ StringMaker<has_maker> }"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_maker_and_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }" )
+with expansion:
+ "{ StringMaker<has_maker_and_toString> }"
+ ==
+ "{ StringMaker<has_maker_and_toString> }"
+
+-------------------------------------------------------------------------------
+toString( vectors<has_toString )
+-------------------------------------------------------------------------------
+ToStringWhich.cpp:<line number>
+...............................................................................
+
+ToStringWhich.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString( v ) == "{ {?} }" )
+with expansion:
+ "{ {?} }" == "{ {?} }"
+
+-------------------------------------------------------------------------------
+toString(enum class w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2/V0" )
+with expansion:
+ "E2/V0" == "E2/V0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2/V1" )
+with expansion:
+ "E2/V1" == "E2/V1"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e3) == "Unknown enum value 10" )
+with expansion:
+ "Unknown enum value 10"
+ ==
+ "Unknown enum value 10"
+
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+toString(enum w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "E2{0}" )
+with expansion:
+ "E2{0}" == "E2{0}"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "E2{1}" )
+with expansion:
+ "E2{1}" == "E2{1}"
+
+-------------------------------------------------------------------------------
+toString(enum)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e0) == "0" )
+with expansion:
+ "0" == "0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+ CHECK( Catch::toString(e1) == "1" )
+with expansion:
+ "1" == "1"
+
+-------------------------------------------------------------------------------
+tuple<>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ }" == Catch::toString(type{}) )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ }" == Catch::toString(value) )
+with expansion:
+ "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+tuple<float,int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "1.2f" == Catch::toString(float(1.2)) )
+with expansion:
+ "1.2f" == "1.2f"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) )
+with expansion:
+ "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+
+-------------------------------------------------------------------------------
+tuple<int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ 0 }" == Catch::toString(type{0}) )
+with expansion:
+ "{ 0 }" == "{ 0 }"
+
+-------------------------------------------------------------------------------
+tuple<nullptr,int,const char *>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) )
+with expansion:
+ "{ nullptr, 42, "Catch me" }"
+ ==
+ "{ nullptr, 42, "Catch me" }"
+
+-------------------------------------------------------------------------------
+tuple<string,string>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+tuple<tuple<int>,tuple<>,float>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+ CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) )
+with expansion:
+ "{ { 42 }, { }, 1.2f }"
+ ==
+ "{ { 42 }, { }, 1.2f }"
+
+-------------------------------------------------------------------------------
+vec<vec<string,alloc>> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(v) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" )
+with expansion:
+ "{ { "hello" }, { "world" } }"
+ ==
+ "{ { "hello" }, { "world" } }"
+
+-------------------------------------------------------------------------------
+vector<int,allocator> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vector<int> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42 }" )
+with expansion:
+ "{ 42 }" == "{ 42 }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ 42, 250 }" )
+with expansion:
+ "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
+vector<string> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ }" )
+with expansion:
+ "{ }" == "{ }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ \"hello\" }" )
+with expansion:
+ "{ "hello" }" == "{ "hello" }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+ REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" )
+with expansion:
+ "{ "hello", "world" }"
+ ==
+ "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing bigger changes size and capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 10 )
+with expansion:
+ 10 == 10
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 0 )
+with expansion:
+ 0 == 0
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ resizing smaller changes size but not capacity
+ We can use the 'swap trick' to reset the capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() == 0 )
+with expansion:
+ 0 == 0
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving bigger changes capacity but not size
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 10 )
+with expansion:
+ 10 >= 10
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+vectors can be sized and resized
+ reserving smaller does not change size or capacity
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.size() == 5 )
+with expansion:
+ 5 == 5
+
+MiscTests.cpp:<line number>:
+PASSED:
+ REQUIRE( v.capacity() >= 5 )
+with expansion:
+ 5 >= 5
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ embedded xml
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+
+-------------------------------------------------------------------------------
+xmlentitycheck
+ encoded chars
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+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 76af9f5..5334abc 100644
--- a/projects/SelfTest/Baselines/console.swa4.approved.txt
+++ b/projects/SelfTest/Baselines/console.swa4.approved.txt
@@ -4,612 +4,37 @@
Run with -? for options
-------------------------------------------------------------------------------
-toString(enum)
+# A test name that starts with a #
-------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
+MiscTests.cpp:<line number>
...............................................................................
-EnumToString.cpp:<line number>:
+MiscTests.cpp:<line number>:
PASSED:
- CHECK( Catch::toString(e0) == "0" )
-with expansion:
- "0" == "0"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "1" )
-with expansion:
- "1" == "1"
+with message:
+ yay
-------------------------------------------------------------------------------
-toString(enum w/operator<<)
--------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
-...............................................................................
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e0) == "E2{0}" )
-with expansion:
- "E2{0}" == "E2{0}"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "E2{1}" )
-with expansion:
- "E2{1}" == "E2{1}"
-
--------------------------------------------------------------------------------
-toString(enum class)
--------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
-...............................................................................
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e0) == "0" )
-with expansion:
- "0" == "0"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "1" )
-with expansion:
- "1" == "1"
-
--------------------------------------------------------------------------------
-toString(enum class w/operator<<)
--------------------------------------------------------------------------------
-EnumToString.cpp:<line number>
-...............................................................................
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e0) == "E2/V0" )
-with expansion:
- "E2/V0" == "E2/V0"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e1) == "E2/V1" )
-with expansion:
- "E2/V1" == "E2/V1"
-
-EnumToString.cpp:<line number>:
-PASSED:
- CHECK( Catch::toString(e3) == "Unknown enum value 10" )
-with expansion:
- "Unknown enum value 10"
- ==
- "Unknown enum value 10"
-
--------------------------------------------------------------------------------
-Some simple comparisons between doubles
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == Approx( 1.23 ) )
-with expansion:
- 1.23 == Approx( 1.23 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d != Approx( 1.22 ) )
-with expansion:
- 1.23 != Approx( 1.22 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d != Approx( 1.24 ) )
-with expansion:
- 1.23 != Approx( 1.24 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) == 1.23 )
-with expansion:
- Approx( 1.23 ) == 1.23
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) != 1.22 )
-with expansion:
- Approx( 1.23 ) != 1.22
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( Approx( d ) != 1.24 )
-with expansion:
- Approx( 1.23 ) != 1.24
-
--------------------------------------------------------------------------------
-Approximate comparisons with different epsilons
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d != Approx( 1.231 ) )
-with expansion:
- 1.23 != Approx( 1.231 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
-with expansion:
- 1.23 == Approx( 1.231 )
-
--------------------------------------------------------------------------------
-Approximate comparisons with floats
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 1.23f == Approx( 1.23f ) )
-with expansion:
- 1.23f == Approx( 1.2300000191 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0.0f == Approx( 0.0f ) )
-with expansion:
- 0.0f == Approx( 0.0 )
-
--------------------------------------------------------------------------------
-Approximate comparisons with ints
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 1 == Approx( 1 ) )
-with expansion:
- 1 == Approx( 1.0 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0 == Approx( 0 ) )
-with expansion:
- 0 == Approx( 0.0 )
-
--------------------------------------------------------------------------------
-Approximate comparisons with mixed numeric types
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 1.0f == Approx( 1 ) )
-with expansion:
- 1.0f == Approx( 1.0 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0 == Approx( dZero) )
-with expansion:
- 0 == Approx( 0.0 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) )
-with expansion:
- 0 == Approx( 0.00001 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( 1.234f == Approx( dMedium ) )
-with expansion:
- 1.234f == Approx( 1.234 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( dMedium == Approx( 1.234f ) )
-with expansion:
- 1.234 == Approx( 1.2339999676 )
-
--------------------------------------------------------------------------------
-Use a custom approx
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == approx( 1.23 ) )
-with expansion:
- 1.23 == Approx( 1.23 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == approx( 1.22 ) )
-with expansion:
- 1.23 == Approx( 1.22 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d == approx( 1.24 ) )
-with expansion:
- 1.23 == Approx( 1.24 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( d != approx( 1.25 ) )
-with expansion:
- 1.23 != Approx( 1.25 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.23 )
-with expansion:
- Approx( 1.23 ) == 1.23
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.22 )
-with expansion:
- Approx( 1.23 ) == 1.22
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) == 1.24 )
-with expansion:
- Approx( 1.23 ) == 1.24
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( approx( d ) != 1.25 )
-with expansion:
- Approx( 1.23 ) != 1.25
-
--------------------------------------------------------------------------------
-Approximate PI
--------------------------------------------------------------------------------
-ApproxTests.cpp:<line number>
-...............................................................................
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
-with expansion:
- 3.1428571429 == Approx( 3.141 )
-
-ApproxTests.cpp:<line number>:
-PASSED:
- REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
-with expansion:
- 3.1428571429 != Approx( 3.141 )
-
--------------------------------------------------------------------------------
-A METHOD_AS_TEST_CASE based test run that succeeds
--------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
-...............................................................................
-
-ClassTests.cpp:<line number>:
-PASSED:
- REQUIRE( s == "hello" )
-with expansion:
- "hello" == "hello"
-
--------------------------------------------------------------------------------
-A METHOD_AS_TEST_CASE based test run that fails
--------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
-...............................................................................
-
-ClassTests.cpp:<line number>: FAILED:
- REQUIRE( s == "world" )
-with expansion:
- "hello" == "world"
-
--------------------------------------------------------------------------------
-A TEST_CASE_METHOD based test run that succeeds
--------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
-...............................................................................
-
-ClassTests.cpp:<line number>:
-PASSED:
- REQUIRE( m_a == 1 )
-with expansion:
- 1 == 1
-
--------------------------------------------------------------------------------
-A TEST_CASE_METHOD based test run that fails
--------------------------------------------------------------------------------
-ClassTests.cpp:<line number>
-...............................................................................
-
-ClassTests.cpp:<line number>: FAILED:
- REQUIRE( m_a == 2 )
-with expansion:
- 1 == 2
-
--------------------------------------------------------------------------------
-Equality checks that should succeed
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven == 7 )
-with expansion:
- 7 == 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
-with expansion:
- 9.1f == Approx( 9.1000003815 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
-with expansion:
- 3.1415926535 == Approx( 3.1415926535 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello == "hello" )
-with expansion:
- "hello" == "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( "hello" == data.str_hello )
-with expansion:
- "hello" == "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello.size() == 5 )
-with expansion:
- 5 == 5
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( x == Approx( 1.3 ) )
-with expansion:
- 1.3 == Approx( 1.3 )
-
--------------------------------------------------------------------------------
-Equality checks that should fail
+'Not' checks that should fail
-------------------------------------------------------------------------------
ConditionTests.cpp:<line number>
...............................................................................
ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven == 6 )
-with expansion:
- 7 == 6
+ CHECK( false != false )
ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven == 8 )
-with expansion:
- 7 == 8
-
--------------------------------------------------------------------------------
-Inequality checks that should succeed
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven != 6 )
-with expansion:
- 7 != 6
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven != 8 )
-with expansion:
- 7 != 8
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
-with expansion:
- 9.1f != Approx( 9.1099996567 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
-with expansion:
- 9.1f != Approx( 9.0 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 1 ) )
-with expansion:
- 9.1f != Approx( 1.0 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one != Approx( 0 ) )
-with expansion:
- 9.1f != Approx( 0.0 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.double_pi != Approx( 3.1415 ) )
-with expansion:
- 3.1415926535 != Approx( 3.1415 )
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "goodbye" )
-with expansion:
- "hello" != "goodbye"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "hell" )
-with expansion:
- "hello" != "hell"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello != "hello1" )
-with expansion:
- "hello" != "hello1"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello.size() != 6 )
-with expansion:
- 5 != 6
-
--------------------------------------------------------------------------------
-Inequality checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
+ CHECK( true != true )
ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven != 7 )
+ CHECK( !true )
with expansion:
- 7 != 7
+ false
ConditionTests.cpp:<line number>: 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:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven < 8 )
-with expansion:
- 7 < 8
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > 6 )
-with expansion:
- 7 > 6
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > 0 )
-with expansion:
- 7 > 0
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven > -1 )
-with expansion:
- 7 > -1
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven >= 7 )
-with expansion:
- 7 >= 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven >= 6 )
-with expansion:
- 7 >= 6
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven <= 7 )
-with expansion:
- 7 <= 7
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.int_seven <= 8 )
-with expansion:
- 7 <= 8
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one > 9 )
-with expansion:
- 9.1f > 9
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one < 10 )
-with expansion:
- 9.1f < 10
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.float_nine_point_one < 9.2 )
-with expansion:
- 9.1f < 9.2
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello <= "hello" )
-with expansion:
- "hello" <= "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello >= "hello" )
-with expansion:
- "hello" >= "hello"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello < "hellp" )
-with expansion:
- "hello" < "hellp"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello < "zebra" )
-with expansion:
- "hello" < "zebra"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello > "hellm" )
-with expansion:
- "hello" > "hellm"
-
-ConditionTests.cpp:<line number>:
-PASSED:
- REQUIRE( data.str_hello > "a" )
-with expansion:
- "hello" > "a"
-
--------------------------------------------------------------------------------
-Ordering comparison checks that should fail
--------------------------------------------------------------------------------
-ConditionTests.cpp:<line number>
-...............................................................................
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven > 7 )
-with expansion:
- 7 > 7
-
-ConditionTests.cpp:<line number>: FAILED:
- CHECK( data.int_seven < 7 )
-with expansion:
- 7 < 7
+ 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 3fd998f..02ca9f6 100644
--- a/projects/SelfTest/Baselines/junit.sw.approved.txt
+++ b/projects/SelfTest/Baselines/junit.sw.approved.txt
@@ -1,30 +1,119 @@
<?xml version="1.1" encoding="UTF-8"?>
<testsuites>
<testsuite name="CatchSelfTest" errors="13" failures="68" tests="924" hostname="tbd" time="{duration}" timestamp="tbd">
- <testcase classname="global" name="toString(enum)" time="{duration}"/>
- <testcase classname="global" name="toString(enum w/operator<<)" time="{duration}"/>
- <testcase classname="global" name="toString(enum class)" time="{duration}"/>
- <testcase classname="global" name="toString(enum class w/operator<<)" time="{duration}"/>
- <testcase classname="global" name="Some simple comparisons between doubles" time="{duration}"/>
- <testcase classname="global" name="Approximate comparisons with different epsilons" time="{duration}"/>
- <testcase classname="global" name="Approximate comparisons with floats" time="{duration}"/>
- <testcase classname="global" name="Approximate comparisons with ints" time="{duration}"/>
- <testcase classname="global" name="Approximate comparisons with mixed numeric types" time="{duration}"/>
- <testcase classname="global" name="Use a custom approx" time="{duration}"/>
- <testcase classname="global" name="Approximate PI" time="{duration}"/>
- <testcase classname="TestClass" name="A METHOD_AS_TEST_CASE based test run that succeeds" time="{duration}"/>
+ <testcase classname="global" name="# A test name that starts with a #" time="{duration}"/>
+ <testcase classname="global" name="'Not' checks that should fail" time="{duration}">
+ <failure message="false != false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="true != true" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!true" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!true" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="CHECK">
+ConditionTests.cpp:<line number>
+ </failure>
+ <failure message="!(1 == 1)" type="CHECK_FALSE">
+ConditionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="'Not' checks that should succeed" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="compare to true" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="compare to false" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="negation" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="double negation" time="{duration}"/>
+ <testcase classname="(unimplemented) static bools can be evaluated" name="direct" time="{duration}"/>
<testcase classname="TestClass" name="A METHOD_AS_TEST_CASE based test run that fails" time="{duration}">
<failure message=""hello" == "world"" type="REQUIRE">
ClassTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/>
+ <testcase classname="TestClass" name="A METHOD_AS_TEST_CASE based test run that succeeds" time="{duration}"/>
<testcase classname="Fixture" name="A TEST_CASE_METHOD based test run that fails" time="{duration}">
<failure message="1 == 2" type="REQUIRE">
ClassTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="global" name="Equality checks that should succeed" time="{duration}"/>
+ <testcase classname="Fixture" name="A TEST_CASE_METHOD based test run that succeeds" time="{duration}"/>
+ <testcase classname="A couple of nested sections followed by a failure" name="root" time="{duration}">
+ <failure type="FAIL">
+to infinity and beyond
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="A couple of nested sections followed by a failure" name="Outer/Inner" time="{duration}"/>
+ <testcase classname="global" name="A failing expression with a non streamable type is still captured" time="{duration}">
+ <failure message="0x<hex digits> == 0x<hex digits>" type="CHECK">
+TrickyTests.cpp:<line number>
+ </failure>
+ <failure message="{?} == {?}" type="CHECK">
+TrickyTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="AllOf matcher" time="{duration}"/>
+ <testcase classname="global" name="An expression with side-effects should only be evaluated once" time="{duration}"/>
+ <testcase classname="global" name="An unchecked exception reports the line of the last assertion" time="{duration}">
+ <error message="{Unknown expression after the reported line}">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Anonymous test case 1" time="{duration}"/>
+ <testcase classname="global" name="AnyOf matcher" time="{duration}"/>
+ <testcase classname="global" name="Approximate PI" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with different epsilons" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with floats" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with ints" time="{duration}"/>
+ <testcase classname="global" name="Approximate comparisons with mixed numeric types" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="root" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section/Another section" time="{duration}"/>
+ <testcase classname="Assertions then sections" name="A section/Another other section" time="{duration}"/>
+ <testcase classname="global" name="Comparing function pointers" time="{duration}"/>
+ <testcase classname="global" name="Comparing member function pointers" time="{duration}"/>
+ <testcase classname="global" name="Comparisons between ints where one side is computed" time="{duration}"/>
+ <testcase classname="global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/>
+ <testcase classname="global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/>
+ <testcase classname="global" name="Contains string matcher" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" contains: "not there"" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Custom exceptions can be translated when testing for nothrow" time="{duration}">
+ <error message="throwCustom()" type="REQUIRE_NOTHROW">
+custom exception - not std
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Custom exceptions can be translated when testing for throwing as something else" time="{duration}">
+ <error message="throwCustom()" type="REQUIRE_THROWS_AS">
+custom exception - not std
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Custom std-exceptions can be custom translated" time="{duration}">
+ <error type="TEST_CASE">
+custom std exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Demonstrate that a non-const == is not used" time="{duration}"/>
+ <testcase classname="global" name="EndsWith string matcher" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" ends with: "this"" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
<testcase classname="global" name="Equality checks that should fail" time="{duration}">
<failure message="7 == 6" type="CHECK">
ConditionTests.cpp:<line number>
@@ -66,7 +155,62 @@
ConditionTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="global" name="Inequality checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Equality checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Equals" time="{duration}"/>
+ <testcase classname="global" name="Equals string matcher" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" equals: "something else"" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Equals string matcher, with NULL" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="exact match" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="different case" time="{duration}"/>
+ <testcase classname="Exception messages can be tested for" name="wildcarded" time="{duration}"/>
+ <testcase classname="global" name="Expected exceptions that don't throw or unexpected exceptions fail the test" time="{duration}">
+ <error message="thisThrows()" type="CHECK_THROWS_AS">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ <failure message="thisDoesntThrow()" type="CHECK_THROWS_AS">
+ExceptionTests.cpp:<line number>
+ </failure>
+ <error message="thisThrows()" type="CHECK_NOTHROW">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="FAIL aborts the test" time="{duration}">
+ <failure type="FAIL">
+This is a failure
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="FAIL does not require an argument" time="{duration}">
+ <failure type="FAIL">
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Factorials are computed" time="{duration}"/>
+ <testcase classname="global" name="Generator over a range of pairs" time="{duration}"/>
+ <testcase classname="global" name="Generators over two ranges" time="{duration}"/>
+ <testcase classname="global" name="INFO and WARN do not abort tests" time="{duration}"/>
+ <testcase classname="global" name="INFO gets logged on failure" time="{duration}">
+ <failure message="2 == 1" type="REQUIRE">
+this message should be logged
+so should this
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="INFO gets logged on failure, even if captured before successful assertions" time="{duration}">
+ <failure message="2 == 1" type="CHECK">
+this message should be logged
+MessageTests.cpp:<line number>
+ </failure>
+ <failure message="2 == 0" type="CHECK">
+and this, but later
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
<testcase classname="global" name="Inequality checks that should fail" time="{duration}">
<failure message="7 != 7" type="CHECK">
ConditionTests.cpp:<line number>
@@ -84,7 +228,50 @@
ConditionTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="global" name="Ordering comparison checks that should succeed" time="{duration}"/>
+ <testcase classname="global" name="Inequality checks that should succeed" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/No wrapping" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped once" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped twice" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Wrapped three times" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Short wrap" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/As container" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="plain string/Indent first line differently" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/No wrapping" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Trailing newline" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped once" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped twice" time="{duration}"/>
+ <testcase classname="Long strings can be wrapped" name="With tabs" time="{duration}"/>
+ <testcase classname="global" name="Long text is truncted" time="{duration}"/>
+ <testcase classname="global" name="ManuallyRegistered" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be (AllOf) composed with the && operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be (AnyOf) composed with the || operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be composed with both && and ||" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be composed with both && and || - failing" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Matchers can be negated (Not) with the ! operator" time="{duration}"/>
+ <testcase classname="global" name="Matchers can be negated (Not) with the ! operator - failing" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" not contains: "substring"" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Mismatching exception messages failing the test" time="{duration}">
+ <failure message="expected exception" type="REQUIRE_THROWS_WITH">
+ExceptionTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="Nice descriptive name" time="{duration}"/>
+ <testcase classname="global" name="Non-std exceptions can be translated" time="{duration}">
+ <error type="TEST_CASE">
+custom exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="NotImplemented exception" time="{duration}"/>
+ <testcase classname="global" name="Objects that evaluated in boolean contexts can be checked" time="{duration}"/>
+ <testcase classname="global" name="Operators at different namespace levels not hijacked by Koenig lookup" time="{duration}"/>
<testcase classname="global" name="Ordering comparison checks that should fail" time="{duration}">
<failure message="7 > 7" type="CHECK">
ConditionTests.cpp:<line number>
@@ -144,161 +331,7 @@
ConditionTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/>
- <testcase classname="global" name="comparisons between int variables" time="{duration}"/>
- <testcase classname="global" name="comparisons between const int variables" time="{duration}"/>
- <testcase classname="global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/>
- <testcase classname="global" name="Comparisons between ints where one side is computed" time="{duration}"/>
- <testcase classname="global" name="Pointers can be compared to null" time="{duration}"/>
- <testcase classname="global" name="'Not' checks that should succeed" time="{duration}"/>
- <testcase classname="global" name="'Not' checks that should fail" time="{duration}">
- <failure message="false != false" type="CHECK">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="true != true" type="CHECK">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="false" type="CHECK">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="!true" type="CHECK_FALSE">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="false" type="CHECK">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="!true" type="CHECK_FALSE">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="false" type="CHECK">
-ConditionTests.cpp:<line number>
- </failure>
- <failure message="!(1 == 1)" type="CHECK_FALSE">
-ConditionTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="When checked exceptions are thrown they can be expected or unexpected" time="{duration}"/>
- <testcase classname="global" name="Expected exceptions that don't throw or unexpected exceptions fail the test" time="{duration}">
- <error message="thisThrows()" type="CHECK_THROWS_AS">
-expected exception
-ExceptionTests.cpp:<line number>
- </error>
- <failure message="thisDoesntThrow()" type="CHECK_THROWS_AS">
-ExceptionTests.cpp:<line number>
- </failure>
- <error message="thisThrows()" type="CHECK_NOTHROW">
-expected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="When unchecked exceptions are thrown directly they are always failures" time="{duration}">
- <error type="TEST_CASE">
-unexpected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="An unchecked exception reports the line of the last assertion" time="{duration}">
- <error message="{Unknown expression after the reported line}">
-unexpected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="When unchecked exceptions are thrown from sections they are always failures" name="section name" time="{duration}">
- <error type="TEST_CASE">
-unexpected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="When unchecked exceptions are thrown from functions they are always failures" time="{duration}">
- <error message="thisThrows() == 0" type="CHECK">
-expected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail" time="{duration}">
- <error message="thisThrows() == 0" type="REQUIRE">
-expected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="When unchecked exceptions are thrown during a CHECK the test should abort and fail" time="{duration}">
- <error message="thisThrows() == 0" type="CHECK">
-expected exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="Non-std exceptions can be translated" time="{duration}">
- <error type="TEST_CASE">
-custom exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="Custom std-exceptions can be custom translated" time="{duration}">
- <error type="TEST_CASE">
-custom std exception
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="Custom exceptions can be translated when testing for nothrow" time="{duration}">
- <error message="throwCustom()" type="REQUIRE_NOTHROW">
-custom exception - not std
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="Custom exceptions can be translated when testing for throwing as something else" time="{duration}">
- <error message="throwCustom()" type="REQUIRE_THROWS_AS">
-custom exception - not std
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="Unexpected exceptions can be translated" time="{duration}">
- <error type="TEST_CASE">
-3.14
-ExceptionTests.cpp:<line number>
- </error>
- </testcase>
- <testcase classname="global" name="NotImplemented exception" time="{duration}"/>
- <testcase classname="Exception messages can be tested for" name="exact match" time="{duration}"/>
- <testcase classname="Exception messages can be tested for" name="different case" time="{duration}"/>
- <testcase classname="Exception messages can be tested for" name="wildcarded" time="{duration}"/>
- <testcase classname="global" name="Mismatching exception messages failing the test" time="{duration}">
- <failure message="expected exception" type="REQUIRE_THROWS_WITH">
-ExceptionTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Generators over two ranges" time="{duration}"/>
- <testcase classname="global" name="Generator over a range of pairs" time="{duration}"/>
- <testcase classname="global" name="INFO and WARN do not abort tests" time="{duration}"/>
- <testcase classname="global" name="SUCCEED counts as a test pass" time="{duration}"/>
- <testcase classname="global" name="INFO gets logged on failure" time="{duration}">
- <failure message="2 == 1" type="REQUIRE">
-this message should be logged
-so should this
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="INFO gets logged on failure, even if captured before successful assertions" time="{duration}">
- <failure message="2 == 1" type="CHECK">
-this message should be logged
-MessageTests.cpp:<line number>
- </failure>
- <failure message="2 == 0" type="CHECK">
-and this, but later
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="FAIL aborts the test" time="{duration}">
- <failure type="FAIL">
-This is a failure
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="FAIL does not require an argument" time="{duration}">
- <failure type="FAIL">
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="SUCCESS does not require an argument" time="{duration}"/>
+ <testcase classname="global" name="Ordering comparison checks that should succeed" time="{duration}"/>
<testcase classname="Output from all sections is reported" name="one" time="{duration}">
<failure type="FAIL">
Message from section one
@@ -311,320 +344,6 @@
MessageTests.cpp:<line number>
</failure>
</testcase>
- <testcase classname="Standard output from all sections is reported" name="two" time="{duration}">
- <system-out>
-Message from section one
-Message from section two
- </system-out>
- </testcase>
- <testcase classname="global" name="SCOPED_INFO is reset for each loop" time="{duration}">
- <failure message="10 < 10" type="REQUIRE">
-current counter 10
-i := 10
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="The NO_FAIL macro reports a failure but does not fail the test" time="{duration}"/>
- <testcase classname="global" name="just failure" time="{duration}">
- <failure type="FAIL">
-Previous info should not be seen
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="sends information to INFO" time="{duration}">
- <failure message="false" type="REQUIRE">
-hi
-i := 7
-MessageTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Pointers can be converted to strings" time="{duration}"/>
- <testcase classname="random SECTION tests" name="s1" time="{duration}"/>
- <testcase classname="random SECTION tests" name="s2" time="{duration}"/>
- <testcase classname="nested SECTION tests" name="s1" time="{duration}"/>
- <testcase classname="nested SECTION tests" name="s1/s2" time="{duration}"/>
- <testcase classname="more nested SECTION tests" name="s2/s1" time="{duration}">
- <failure message="1 == 2" type="REQUIRE">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="more nested SECTION tests" name="s1/s3" time="{duration}"/>
- <testcase classname="more nested SECTION tests" name="s1/s4" time="{duration}"/>
- <testcase classname="even more nested SECTION tests" name="c/d (leaf)" time="{duration}"/>
- <testcase classname="even more nested SECTION tests" name="c/e (leaf)" time="{duration}"/>
- <testcase classname="even more nested SECTION tests" name="f (leaf)" time="{duration}"/>
- <testcase classname="looped SECTION tests" name="s1" time="{duration}">
- <failure message="0 > 1" type="CHECK">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="looped tests" time="{duration}">
- <failure message="1 == 0" type="CHECK">
-Testing if fib[0] (1) is even
-MiscTests.cpp:<line number>
- </failure>
- <failure message="1 == 0" type="CHECK">
-Testing if fib[1] (1) is even
-MiscTests.cpp:<line number>
- </failure>
- <failure message="1 == 0" type="CHECK">
-Testing if fib[3] (3) is even
-MiscTests.cpp:<line number>
- </failure>
- <failure message="1 == 0" type="CHECK">
-Testing if fib[4] (5) is even
-MiscTests.cpp:<line number>
- </failure>
- <failure message="1 == 0" type="CHECK">
-Testing if fib[6] (13) is even
-MiscTests.cpp:<line number>
- </failure>
- <failure message="1 == 0" type="CHECK">
-Testing if fib[7] (21) is even
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Sends stuff to stdout and stderr" time="{duration}">
- <system-out>
-A string sent directly to stdout
- </system-out>
- <system-err>
-A string sent directly to stderr
- </system-err>
- </testcase>
- <testcase classname="global" name="null strings" time="{duration}"/>
- <testcase classname="global" name="checkedIf" time="{duration}"/>
- <testcase classname="global" name="checkedIf, failing" time="{duration}">
- <failure message="false" type="CHECKED_IF">
-MiscTests.cpp:<line number>
- </failure>
- <failure message="false" type="REQUIRE">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="checkedElse" time="{duration}"/>
- <testcase classname="global" name="checkedElse, failing" time="{duration}">
- <failure message="false" type="CHECKED_ELSE">
-MiscTests.cpp:<line number>
- </failure>
- <failure message="false" type="REQUIRE">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="xmlentitycheck" name="embedded xml" time="{duration}"/>
- <testcase classname="xmlentitycheck" name="encoded chars" time="{duration}"/>
- <testcase classname="global" name="send a single char to INFO" time="{duration}">
- <failure message="false" type="REQUIRE">
-3
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="atomic if" time="{duration}"/>
- <testcase classname="global" name="String matchers" time="{duration}"/>
- <testcase classname="global" name="Contains string matcher" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" contains: "not there"" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="StartsWith string matcher" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" starts with: "string"" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="EndsWith string matcher" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" ends with: "this"" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Equals string matcher" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" equals: "something else"" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Equals string matcher, with NULL" time="{duration}"/>
- <testcase classname="global" name="AllOf matcher" time="{duration}"/>
- <testcase classname="global" name="AnyOf matcher" time="{duration}"/>
- <testcase classname="global" name="Equals" time="{duration}"/>
- <testcase classname="global" name="Matchers can be (AllOf) composed with the && operator" time="{duration}"/>
- <testcase classname="global" name="Matchers can be (AnyOf) composed with the || operator" time="{duration}"/>
- <testcase classname="global" name="Matchers can be composed with both && and ||" time="{duration}"/>
- <testcase classname="global" name="Matchers can be composed with both && and || - failing" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Matchers can be negated (Not) with the ! operator" time="{duration}"/>
- <testcase classname="global" name="Matchers can be negated (Not) with the ! operator - failing" time="{duration}">
- <failure message=""this string contains 'abc' as a substring" not contains: "substring"" type="CHECK_THAT">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="Factorials are computed" time="{duration}"/>
- <testcase classname="global" name="Nice descriptive name" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="root" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="resizing bigger changes size and capacity" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity/We can use the 'swap trick' to reset the capacity" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="reserving bigger changes capacity but not size" time="{duration}"/>
- <testcase classname="vectors can be sized and resized" name="reserving smaller does not change size or capacity" time="{duration}"/>
- <testcase classname="A couple of nested sections followed by a failure" name="root" time="{duration}">
- <failure type="FAIL">
-to infinity and beyond
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="A couple of nested sections followed by a failure" name="Outer/Inner" time="{duration}"/>
- <testcase classname="global" name="not allowed" time="{duration}"/>
- <testcase classname="global" name="Tabs and newlines show in output" time="{duration}">
- <failure message=""if ($b == 10) {
- $a = 20;
-}"
-==
-"if ($b == 10) {
- $a = 20;
-}
-"" type="CHECK">
-MiscTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="toString on const wchar_t const pointer returns the string contents" time="{duration}"/>
- <testcase classname="global" name="toString on const wchar_t pointer returns the string contents" time="{duration}"/>
- <testcase classname="global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/>
- <testcase classname="global" name="toString on wchar_t returns the string contents" time="{duration}"/>
- <testcase classname="XmlEncode" name="normal string" time="{duration}"/>
- <testcase classname="XmlEncode" name="empty string" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with ampersand" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with less-than" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with greater-than" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with quotes" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with control char (1)" time="{duration}"/>
- <testcase classname="XmlEncode" name="string with control char (x7F)" time="{duration}"/>
- <testcase classname="global" name="long long" time="{duration}"/>
- <testcase classname="global" name="This test 'should' fail but doesn't" time="{duration}"/>
- <testcase classname="global" name="# A test name that starts with a #" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="default - no arguments" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="test lists/1 test" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using exclude:" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using ~" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="reporter/-r/console" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="reporter/-r/xml" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="reporter/-r xml and junit" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="reporter/--reporter/junit" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="debugger/-b" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="debugger/--break" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="abort/-a aborts after first failure" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="abort/-x 2 aborts after two failures" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="abort/-x must be greater than zero" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="abort/-x must be numeric" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="nothrow/-e" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="nothrow/--nothrow" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="output filename/-o filename" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="output filename/--out" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="combinations/Single character flags can be combined" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="use-colour/without option" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="use-colour/auto" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="use-colour/yes" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="use-colour/no" time="{duration}"/>
- <testcase classname="Process can be configured on command line" name="use-colour/error" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/No wrapping" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/Wrapped once" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/Wrapped twice" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/Wrapped three times" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/Short wrap" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/As container" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="plain string/Indent first line differently" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="With newlines/No wrapping" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="With newlines/Trailing newline" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped once" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="With newlines/Wrapped twice" time="{duration}"/>
- <testcase classname="Long strings can be wrapped" name="With tabs" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace single char" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace two chars" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace first char" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace last char" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace all chars" time="{duration}"/>
- <testcase classname="replaceInPlace" name="replace no chars" time="{duration}"/>
- <testcase classname="replaceInPlace" name="escape '" time="{duration}"/>
- <testcase classname="global" name="Strings can be rendered with colour" time="{duration}">
- <system-out>
-hello
-hello
- </system-out>
- </testcase>
- <testcase classname="global" name="Text can be formatted using the Text class" time="{duration}"/>
- <testcase classname="global" name="Long text is truncted" time="{duration}"/>
- <testcase classname="global" name="ManuallyRegistered" time="{duration}"/>
- <testcase classname="global" name="Parsing a std::pair" time="{duration}"/>
- <testcase classname="global" name="Where there is more to the expression after the RHS" time="{duration}"/>
- <testcase classname="global" name="Where the LHS is not a simple value" time="{duration}"/>
- <testcase classname="global" name="A failing expression with a non streamable type is still captured" time="{duration}">
- <failure message="0x<hex digits> == 0x<hex digits>" type="CHECK">
-TrickyTests.cpp:<line number>
- </failure>
- <failure message="{?} == {?}" type="CHECK">
-TrickyTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="string literals of different sizes can be compared" time="{duration}">
- <failure message=""first" == "second"" type="REQUIRE">
-TrickyTests.cpp:<line number>
- </failure>
- </testcase>
- <testcase classname="global" name="An expression with side-effects should only be evaluated once" time="{duration}"/>
- <testcase classname="global" name="Operators at different namespace levels not hijacked by Koenig lookup" time="{duration}"/>
- <testcase classname="global" name="Demonstrate that a non-const == is not used" time="{duration}"/>
- <testcase classname="global" name="Test enum bit values" time="{duration}"/>
- <testcase classname="global" name="boolean member" time="{duration}"/>
- <testcase classname="(unimplemented) static bools can be evaluated" name="compare to true" time="{duration}"/>
- <testcase classname="(unimplemented) static bools can be evaluated" name="compare to false" time="{duration}"/>
- <testcase classname="(unimplemented) static bools can be evaluated" name="negation" time="{duration}"/>
- <testcase classname="(unimplemented) static bools can be evaluated" name="double negation" time="{duration}"/>
- <testcase classname="(unimplemented) static bools can be evaluated" name="direct" time="{duration}"/>
- <testcase classname="global" name="Objects that evaluated in boolean contexts can be checked" time="{duration}"/>
- <testcase classname="Assertions then sections" name="root" time="{duration}"/>
- <testcase classname="Assertions then sections" name="A section" time="{duration}"/>
- <testcase classname="Assertions then sections" name="A section/Another section" time="{duration}"/>
- <testcase classname="Assertions then sections" name="A section/Another other section" time="{duration}"/>
- <testcase classname="global" name="non streamable - with conv. op" time="{duration}"/>
- <testcase classname="global" name="Comparing function pointers" time="{duration}"/>
- <testcase classname="global" name="Comparing member function pointers" time="{duration}"/>
- <testcase classname="global" name="pointer to class" time="{duration}"/>
- <testcase classname="global" name="null_ptr" time="{duration}"/>
- <testcase classname="global" name="X/level/0/a" time="{duration}"/>
- <testcase classname="global" name="X/level/0/b" time="{duration}"/>
- <testcase classname="global" name="X/level/1/a" time="{duration}"/>
- <testcase classname="global" name="X/level/1/b" time="{duration}"/>
- <testcase classname="global" name="toString( has_toString )" time="{duration}"/>
- <testcase classname="global" name="toString( has_maker )" time="{duration}"/>
- <testcase classname="global" name="toString( has_maker_and_toString )" time="{duration}"/>
- <testcase classname="global" name="toString( vectors<has_toString )" time="{duration}"/>
- <testcase classname="global" name="toString( vectors<has_maker )" time="{duration}"/>
- <testcase classname="global" name="toString( vectors<has_maker_and_toString )" time="{duration}"/>
- <testcase classname="Tracker" name="root" time="{duration}"/>
- <testcase classname="Tracker" name="successfully close one section" time="{duration}"/>
- <testcase classname="Tracker" name="fail one section" time="{duration}"/>
- <testcase classname="Tracker" name="fail one section/re-enter after failed section" time="{duration}"/>
- <testcase classname="Tracker" name="fail one section/re-enter after failed section and find next section" time="{duration}"/>
- <testcase classname="Tracker" name="successfully close one section, then find another" time="{duration}"/>
- <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2" time="{duration}"/>
- <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/Successfully close S2" time="{duration}"/>
- <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/fail S2" time="{duration}"/>
- <testcase classname="Tracker" name="open a nested section" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/close outer section" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/close outer section/Re-enter for second generation" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/Start a new inner section" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/Start a new inner section/Re-enter for second generation" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/Fail an inner section" time="{duration}"/>
- <testcase classname="Tracker" name="start a generator/Fail an inner section/Re-enter for second generation" time="{duration}"/>
- <testcase classname="global" name="std::pair<int,std::string> -> toString" time="{duration}"/>
- <testcase classname="global" name="std::pair<int,const std::string> -> toString" time="{duration}"/>
- <testcase classname="global" name="std::vector<std::pair<std::string,int> > -> toString" time="{duration}"/>
- <testcase classname="global" name="pair<pair<int,const char *,pair<std::string,int> > -> toString" time="{duration}"/>
- <testcase classname="global" name="vector<int> -> toString" time="{duration}"/>
- <testcase classname="global" name="vector<string> -> toString" time="{duration}"/>
- <testcase classname="global" name="vector<int,allocator> -> toString" time="{duration}"/>
- <testcase classname="global" name="vec<vec<string,alloc>> -> toString" time="{duration}"/>
<testcase classname="Parse test names and tags" name="Empty test spec should have no filters" time="{duration}"/>
<testcase classname="Parse test names and tags" name="Test spec from empty string should have no filters" time="{duration}"/>
<testcase classname="Parse test names and tags" name="Test spec from just a comma should have no filters" time="{duration}"/>
@@ -656,30 +375,311 @@
<testcase classname="Parse test names and tags" name="empty tag" time="{duration}"/>
<testcase classname="Parse test names and tags" name="empty quoted name" time="{duration}"/>
<testcase classname="Parse test names and tags" name="quoted string followed by tag exclusion" time="{duration}"/>
- <testcase classname="global" name="tuple<>" time="{duration}"/>
- <testcase classname="global" name="tuple<int>" time="{duration}"/>
- <testcase classname="global" name="tuple<float,int>" time="{duration}"/>
- <testcase classname="global" name="tuple<string,string>" time="{duration}"/>
- <testcase classname="global" name="tuple<tuple<int>,tuple<>,float>" time="{duration}"/>
- <testcase classname="global" name="tuple<nullptr,int,const char *>" time="{duration}"/>
- <testcase classname="Tag alias can be registered against tag patterns" name="The same tag alias can only be registered once" time="{duration}"/>
- <testcase classname="Tag alias can be registered against tag patterns" name="Tag aliases must be of the form [@name]" time="{duration}"/>
- <testcase classname="global" name="Anonymous test case 1" time="{duration}"/>
- <testcase classname="global" name="Test case with one argument" time="{duration}"/>
- <testcase classname="Variadic macros" name="Section with one argument" time="{duration}"/>
+ <testcase classname="global" name="Parsing a std::pair" time="{duration}"/>
+ <testcase classname="global" name="Pointers can be compared to null" time="{duration}"/>
+ <testcase classname="global" name="Pointers can be converted to strings" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="default - no arguments" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/1 test" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using exclude:" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="test lists/Specify one test case exclusion using ~" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r/console" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r/xml" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/-r xml and junit" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="reporter/--reporter/junit" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="debugger/-b" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="debugger/--break" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-a aborts after first failure" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x 2 aborts after two failures" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x must be greater than zero" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="abort/-x must be numeric" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="nothrow/-e" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="nothrow/--nothrow" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="output filename/-o filename" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="output filename/--out" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="combinations/Single character flags can be combined" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/without option" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/auto" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/yes" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/no" time="{duration}"/>
+ <testcase classname="Process can be configured on command line" name="use-colour/error" time="{duration}"/>
+ <testcase classname="global" name="SCOPED_INFO is reset for each loop" time="{duration}">
+ <failure message="10 < 10" type="REQUIRE">
+current counter 10
+i := 10
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="SUCCEED counts as a test pass" time="{duration}"/>
+ <testcase classname="global" name="SUCCESS does not require an argument" time="{duration}"/>
+ <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me" time="{duration}"/>
+ <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me/When: We get the count/Then: Subsequently values are higher" time="{duration}"/>
<testcase classname="Scenario: Do that thing with the thing" name="Given: This stuff exists/When: I do this/Then: it should do this" time="{duration}"/>
<testcase classname="Scenario: Do that thing with the thing" name="Given: This stuff exists/When: I do this/Then: it should do this/And: do that" time="{duration}"/>
+ <testcase classname="Scenario: This is a really long scenario name to see how the list command deals with wrapping" name="Given: A section name that is so long that it cannot fit in a single console width/When: The test headers are printed as part of the normal running of the scenario/Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent" time="{duration}"/>
<testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector" time="{duration}"/>
<testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: it is made larger/Then: the size and capacity go up" time="{duration}"/>
<testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: it is made larger/Then: the size and capacity go up/And when: it is made smaller again/Then: the size goes down but the capacity stays the same" time="{duration}"/>
<testcase classname="Scenario: Vector resizing affects size and capacity" name="Given: an empty vector/When: we reserve more space/Then: The capacity is increased but the size remains the same" time="{duration}"/>
- <testcase classname="Scenario: This is a really long scenario name to see how the list command deals with wrapping" name="Given: A section name that is so long that it cannot fit in a single console width/When: The test headers are printed as part of the normal running of the scenario/Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent" time="{duration}"/>
- <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me" time="{duration}"/>
- <testcase classname="Fixture" name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods/Given: No operations precede me/When: We get the count/Then: Subsequently values are higher" time="{duration}"/>
- <system-out>
+ <testcase classname="global" name="Sends stuff to stdout and stderr" time="{duration}">
+ <system-out>
+A string sent directly to stdout
+ </system-out>
+ <system-err>
+A string sent directly to stderr
+ </system-err>
+ </testcase>
+ <testcase classname="global" name="Some simple comparisons between doubles" time="{duration}"/>
+ <testcase classname="Standard output from all sections is reported" name="two" time="{duration}">
+ <system-out>
Message from section one
Message from section two
+ </system-out>
+ </testcase>
+ <testcase classname="global" name="StartsWith string matcher" time="{duration}">
+ <failure message=""this string contains 'abc' as a substring" starts with: "string"" type="CHECK_THAT">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="String matchers" time="{duration}"/>
+ <testcase classname="global" name="Strings can be rendered with colour" time="{duration}">
+ <system-out>
+hello
+hello
+ </system-out>
+ </testcase>
+ <testcase classname="global" name="Tabs and newlines show in output" time="{duration}">
+ <failure message=""if ($b == 10) {
+ $a = 20;
+}"
+==
+"if ($b == 10) {
+ $a = 20;
+}
+"" type="CHECK">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="Tag alias can be registered against tag patterns" name="The same tag alias can only be registered once" time="{duration}"/>
+ <testcase classname="Tag alias can be registered against tag patterns" name="Tag aliases must be of the form [@name]" time="{duration}"/>
+ <testcase classname="global" name="Test case with one argument" time="{duration}"/>
+ <testcase classname="global" name="Test enum bit values" time="{duration}"/>
+ <testcase classname="global" name="Text can be formatted using the Text class" time="{duration}"/>
+ <testcase classname="global" name="The NO_FAIL macro reports a failure but does not fail the test" time="{duration}"/>
+ <testcase classname="global" name="This test 'should' fail but doesn't" time="{duration}"/>
+ <testcase classname="Tracker" name="root" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section/re-enter after failed section" time="{duration}"/>
+ <testcase classname="Tracker" name="fail one section/re-enter after failed section and find next section" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/Successfully close S2" time="{duration}"/>
+ <testcase classname="Tracker" name="successfully close one section, then find another/Re-enter - skips S1 and enters S2/fail S2" time="{duration}"/>
+ <testcase classname="Tracker" name="open a nested section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/close outer section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/close outer section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Start a new inner section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Start a new inner section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Fail an inner section" time="{duration}"/>
+ <testcase classname="Tracker" name="start a generator/Fail an inner section/Re-enter for second generation" time="{duration}"/>
+ <testcase classname="global" name="Unexpected exceptions can be translated" time="{duration}">
+ <error type="TEST_CASE">
+3.14
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Use a custom approx" time="{duration}"/>
+ <testcase classname="Variadic macros" name="Section with one argument" time="{duration}"/>
+ <testcase classname="global" name="When checked exceptions are thrown they can be expected or unexpected" time="{duration}"/>
+ <testcase classname="global" name="When unchecked exceptions are thrown directly they are always failures" time="{duration}">
+ <error type="TEST_CASE">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown during a CHECK the test should abort and fail" time="{duration}">
+ <error message="thisThrows() == 0" type="CHECK">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail" time="{duration}">
+ <error message="thisThrows() == 0" type="REQUIRE">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="When unchecked exceptions are thrown from functions they are always failures" time="{duration}">
+ <error message="thisThrows() == 0" type="CHECK">
+expected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="When unchecked exceptions are thrown from sections they are always failures" name="section name" time="{duration}">
+ <error type="TEST_CASE">
+unexpected exception
+ExceptionTests.cpp:<line number>
+ </error>
+ </testcase>
+ <testcase classname="global" name="Where the LHS is not a simple value" time="{duration}"/>
+ <testcase classname="global" name="Where there is more to the expression after the RHS" time="{duration}"/>
+ <testcase classname="global" name="X/level/0/a" time="{duration}"/>
+ <testcase classname="global" name="X/level/0/b" time="{duration}"/>
+ <testcase classname="global" name="X/level/1/a" time="{duration}"/>
+ <testcase classname="global" name="X/level/1/b" time="{duration}"/>
+ <testcase classname="XmlEncode" name="normal string" time="{duration}"/>
+ <testcase classname="XmlEncode" name="empty string" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with ampersand" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with less-than" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with greater-than" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with quotes" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with control char (1)" time="{duration}"/>
+ <testcase classname="XmlEncode" name="string with control char (x7F)" time="{duration}"/>
+ <testcase classname="global" name="atomic if" time="{duration}"/>
+ <testcase classname="global" name="boolean member" time="{duration}"/>
+ <testcase classname="global" name="checkedElse" time="{duration}"/>
+ <testcase classname="global" name="checkedElse, failing" time="{duration}">
+ <failure message="false" type="CHECKED_ELSE">
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="checkedIf" time="{duration}"/>
+ <testcase classname="global" name="checkedIf, failing" time="{duration}">
+ <failure message="false" type="CHECKED_IF">
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="false" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="comparisons between const int variables" time="{duration}"/>
+ <testcase classname="global" name="comparisons between int variables" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="c/d (leaf)" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="c/e (leaf)" time="{duration}"/>
+ <testcase classname="even more nested SECTION tests" name="f (leaf)" time="{duration}"/>
+ <testcase classname="global" name="just failure" time="{duration}">
+ <failure type="FAIL">
+Previous info should not be seen
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="long long" time="{duration}"/>
+ <testcase classname="looped SECTION tests" name="s1" time="{duration}">
+ <failure message="0 > 1" type="CHECK">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="looped tests" time="{duration}">
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[0] (1) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[1] (1) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[3] (3) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[4] (5) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[6] (13) is even
+MiscTests.cpp:<line number>
+ </failure>
+ <failure message="1 == 0" type="CHECK">
+Testing if fib[7] (21) is even
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="more nested SECTION tests" name="s2/s1" time="{duration}">
+ <failure message="1 == 2" type="REQUIRE">
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="more nested SECTION tests" name="s1/s3" time="{duration}"/>
+ <testcase classname="more nested SECTION tests" name="s1/s4" time="{duration}"/>
+ <testcase classname="nested SECTION tests" name="s1" time="{duration}"/>
+ <testcase classname="nested SECTION tests" name="s1/s2" time="{duration}"/>
+ <testcase classname="global" name="non streamable - with conv. op" time="{duration}"/>
+ <testcase classname="global" name="not allowed" time="{duration}"/>
+ <testcase classname="global" name="null strings" time="{duration}"/>
+ <testcase classname="global" name="null_ptr" time="{duration}"/>
+ <testcase classname="global" name="pair<pair<int,const char *,pair<std::string,int> > -> toString" time="{duration}"/>
+ <testcase classname="global" name="pointer to class" time="{duration}"/>
+ <testcase classname="random SECTION tests" name="s1" time="{duration}"/>
+ <testcase classname="random SECTION tests" name="s2" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace single char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace two chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace first char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace last char" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace all chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="replace no chars" time="{duration}"/>
+ <testcase classname="replaceInPlace" name="escape '" time="{duration}"/>
+ <testcase classname="global" name="send a single char to INFO" time="{duration}">
+ <failure message="false" type="REQUIRE">
+3
+MiscTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="sends information to INFO" time="{duration}">
+ <failure message="false" type="REQUIRE">
+hi
+i := 7
+MessageTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="std::pair<int,const std::string> -> toString" time="{duration}"/>
+ <testcase classname="global" name="std::pair<int,std::string> -> toString" time="{duration}"/>
+ <testcase classname="global" name="std::vector<std::pair<std::string,int> > -> toString" time="{duration}"/>
+ <testcase classname="global" name="string literals of different sizes can be compared" time="{duration}">
+ <failure message=""first" == "second"" type="REQUIRE">
+TrickyTests.cpp:<line number>
+ </failure>
+ </testcase>
+ <testcase classname="global" name="toString on const wchar_t const pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on const wchar_t pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString on wchar_t returns the string contents" time="{duration}"/>
+ <testcase classname="global" name="toString( has_maker )" time="{duration}"/>
+ <testcase classname="global" name="toString( has_maker_and_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( has_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors<has_maker )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors<has_maker_and_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString( vectors<has_toString )" time="{duration}"/>
+ <testcase classname="global" name="toString(enum class w/operator<<)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum class)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum w/operator<<)" time="{duration}"/>
+ <testcase classname="global" name="toString(enum)" time="{duration}"/>
+ <testcase classname="global" name="tuple<>" time="{duration}"/>
+ <testcase classname="global" name="tuple<float,int>" time="{duration}"/>
+ <testcase classname="global" name="tuple<int>" time="{duration}"/>
+ <testcase classname="global" name="tuple<nullptr,int,const char *>" time="{duration}"/>
+ <testcase classname="global" name="tuple<string,string>" time="{duration}"/>
+ <testcase classname="global" name="tuple<tuple<int>,tuple<>,float>" time="{duration}"/>
+ <testcase classname="global" name="vec<vec<string,alloc>> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector<int,allocator> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector<int> -> toString" time="{duration}"/>
+ <testcase classname="global" name="vector<string> -> toString" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="root" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing bigger changes size and capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="resizing smaller changes size but not capacity/We can use the 'swap trick' to reset the capacity" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="reserving bigger changes capacity but not size" time="{duration}"/>
+ <testcase classname="vectors can be sized and resized" name="reserving smaller does not change size or capacity" time="{duration}"/>
+ <testcase classname="xmlentitycheck" name="embedded xml" time="{duration}"/>
+ <testcase classname="xmlentitycheck" name="encoded chars" time="{duration}"/>
+ <system-out>
A string sent directly to stdout
+Message from section one
+Message from section two
hello
hello
</system-out>
diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt
index ed730bb..3dd64de 100644
--- a/projects/SelfTest/Baselines/xml.sw.approved.txt
+++ b/projects/SelfTest/Baselines/xml.sw.approved.txt
@@ -1,139 +1,392 @@
<?xml version="1.1" encoding="UTF-8"?>
<Catch name="CatchSelfTest">
<Group name="CatchSelfTest">
- <TestCase name="toString(enum)">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <TestCase name="# A test name that starts with a #">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="'Not' checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- Catch::toString(e0) == "0"
+ false != false
</Original>
<Expanded>
- "0" == "0"
+ false != false
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- Catch::toString(e1) == "1"
+ true != true
</Original>
<Expanded>
- "1" == "1"
+ true != true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !true
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !true
+ </Original>
+ <Expanded>
+ !true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !trueValue
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !trueValue
+ </Original>
+ <Expanded>
+ !true
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !(1 == 1)
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !1 == 1
+ </Original>
+ <Expanded>
+ !(1 == 1)
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="'Not' checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ false == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ true == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !false
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !false
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !falseValue
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !falseValue
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !(1 == 2)
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ !1 == 2
+ </Original>
+ <Expanded>
+ !(1 == 2)
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="toString(enum w/operator<<)">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <TestCase name="(unimplemented) static bools can be evaluated">
+ <Section name="compare to true">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true<true>::value == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ true == is_true<true>::value
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="compare to false">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true<false>::value == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ false == is_true<false>::value
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="negation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !is_true<false>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="double negation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !!is_true<true>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="direct">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ is_true<true>::value
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ !is_true<false>::value
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="A METHOD_AS_TEST_CASE based test run that fails">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
<Original>
- Catch::toString(e0) == "E2{0}"
+ s == "world"
</Original>
<Expanded>
- "E2{0}" == "E2{0}"
+ "hello" == "world"
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="A METHOD_AS_TEST_CASE based test run that succeeds">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
<Original>
- Catch::toString(e1) == "E2{1}"
+ s == "hello"
</Original>
<Expanded>
- "E2{1}" == "E2{1}"
+ "hello" == "hello"
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="toString(enum class)">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <TestCase name="A TEST_CASE_METHOD based test run that fails">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
<Original>
- Catch::toString(e0) == "0"
+ m_a == 2
</Original>
<Expanded>
- "0" == "0"
+ 1 == 2
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="A TEST_CASE_METHOD based test run that succeeds">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
<Original>
- Catch::toString(e1) == "1"
+ m_a == 1
</Original>
<Expanded>
- "1" == "1"
+ 1 == 1
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="toString(enum class w/operator<<)">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <TestCase name="A couple of nested sections followed by a failure">
+ <Section name="Outer">
+ <Section name="Inner">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Failure>
+ to infinity and beyond
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="A failing expression with a non streamable type is still captured">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- Catch::toString(e0) == "E2/V0"
+ &o1 == &o2
</Original>
<Expanded>
- "E2/V0" == "E2/V0"
+ 0x<hex digits> == 0x<hex digits>
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- Catch::toString(e1) == "E2/V1"
+ o1 == o2
</Original>
<Expanded>
- "E2/V1" == "E2/V1"
+ {?} == {?}
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="AllOf matcher">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- Catch::toString(e3) == "Unknown enum value 10"
+ testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) )
</Original>
<Expanded>
- "Unknown enum value 10"
-==
-"Unknown enum value 10"
+ "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" )
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Some simple comparisons between doubles">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <TestCase name="An empty test with no assertions">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="An expression with side-effects should only be evaluated once">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- d == Approx( 1.23 )
+ i++ == 7
</Original>
<Expanded>
- 1.23 == Approx( 1.23 )
+ 7 == 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ i++ == 8
+ </Original>
+ <Expanded>
+ 8 == 8
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="An unchecked exception reports the line of the last assertion">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ 1 == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="false" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ {Unknown expression after the reported line}
+ </Original>
+ <Expanded>
+ {Unknown expression after the reported line}
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Anonymous test case 1">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="AnyOf matcher">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Approximate PI">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 )
+ </Original>
+ <Expanded>
+ 3.1428571429 == Approx( 3.141 )
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
<Original>
- d != Approx( 1.22 )
+ divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 )
</Original>
<Expanded>
- 1.23 != Approx( 1.22 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- d != Approx( 1.24 )
- </Original>
- <Expanded>
- 1.23 != Approx( 1.24 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- Approx( d ) == 1.23
- </Original>
- <Expanded>
- Approx( 1.23 ) == 1.23
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- Approx( d ) != 1.22
- </Original>
- <Expanded>
- Approx( 1.23 ) != 1.22
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- Approx( d ) != 1.24
- </Original>
- <Expanded>
- Approx( 1.23 ) != 1.24
+ 3.1428571429 != Approx( 3.141 )
</Expanded>
</Expression>
<OverallResult success="true"/>
@@ -238,730 +491,163 @@
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Use a custom approx">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <TestCase name="Assertions then sections">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- d == approx( 1.23 )
+ Catch::alwaysTrue()
</Original>
<Expanded>
- 1.23 == Approx( 1.23 )
+ true
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Section name="A section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="Another section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- d == approx( 1.22 )
+ Catch::alwaysTrue()
</Original>
<Expanded>
- 1.23 == Approx( 1.22 )
+ true
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Section name="A section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="Another other section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ Catch::alwaysTrue()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Comparing function pointers">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- d == approx( 1.24 )
+ a
</Original>
<Expanded>
- 1.23 == Approx( 1.24 )
+ true
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- d != approx( 1.25 )
+ a == &foo
</Original>
<Expanded>
- 1.23 != Approx( 1.25 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- approx( d ) == 1.23
- </Original>
- <Expanded>
- Approx( 1.23 ) == 1.23
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- approx( d ) == 1.22
- </Original>
- <Expanded>
- Approx( 1.23 ) == 1.22
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- approx( d ) == 1.24
- </Original>
- <Expanded>
- Approx( 1.23 ) == 1.24
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- approx( d ) != 1.25
- </Original>
- <Expanded>
- Approx( 1.23 ) != 1.25
+ 0x<hex digits> == 0x<hex digits>
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Approximate PI">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <TestCase name="Comparing member function pointers">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 )
+ m == &S::f
</Original>
<Expanded>
- 3.1428571429 == Approx( 3.141 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
- <Original>
- divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 )
- </Original>
- <Expanded>
- 3.1428571429 != Approx( 3.141 )
+ 0x<hex digits>
+==
+0x<hex digits>
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="A METHOD_AS_TEST_CASE based test run that succeeds">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <TestCase name="Comparisons between ints where one side is computed">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- s == "hello"
+ 54 == 6*9
</Original>
<Expanded>
- "hello" == "hello"
+ 54 == 54
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="A METHOD_AS_TEST_CASE based test run that fails">
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <TestCase name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- s == "world"
+ ( -1 > 2u )
</Original>
<Expanded>
- "hello" == "world"
+ true
</Expanded>
</Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="A TEST_CASE_METHOD based test run that succeeds">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- m_a == 1
+ -1 > 2u
</Original>
<Expanded>
- 1 == 1
+ -1 > 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ( 2u < -1 )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ 2u < -1
+ </Original>
+ <Expanded>
+ 2 < -1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ ( minInt > 2u )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ minInt > 2u
+ </Original>
+ <Expanded>
+ -2147483648 > 2
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="A TEST_CASE_METHOD based test run that fails">
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
- <Original>
- m_a == 2
- </Original>
- <Expanded>
- 1 == 2
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Equality checks that should succeed">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven == 7
- </Original>
- <Expanded>
- 7 == 7
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one == Approx( 9.1f )
- </Original>
- <Expanded>
- 9.1f == Approx( 9.1000003815 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.double_pi == Approx( 3.1415926535 )
- </Original>
- <Expanded>
- 3.1415926535 == Approx( 3.1415926535 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello == "hello"
- </Original>
- <Expanded>
- "hello" == "hello"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- "hello" == data.str_hello
- </Original>
- <Expanded>
- "hello" == "hello"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- x == Approx( 1.3 )
- </Original>
- <Expanded>
- 1.3 == Approx( 1.3 )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Equality checks that should fail">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven == 6
- </Original>
- <Expanded>
- 7 == 6
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven == 8
- </Original>
- <Expanded>
- 7 == 8
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven == 0
- </Original>
- <Expanded>
- 7 == 0
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one == Approx( 9.11f )
- </Original>
- <Expanded>
- 9.1f == Approx( 9.1099996567 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one == Approx( 9.0f )
- </Original>
- <Expanded>
- 9.1f == Approx( 9.0 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one == Approx( 1 )
- </Original>
- <Expanded>
- 9.1f == Approx( 1.0 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one == Approx( 0 )
- </Original>
- <Expanded>
- 9.1f == Approx( 0.0 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.double_pi == Approx( 3.1415 )
- </Original>
- <Expanded>
- 3.1415926535 == Approx( 3.1415 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello == "goodbye"
- </Original>
- <Expanded>
- "hello" == "goodbye"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello == "hell"
- </Original>
- <Expanded>
- "hello" == "hell"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello == "hello1"
- </Original>
- <Expanded>
- "hello" == "hello1"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello.size() == 6
- </Original>
- <Expanded>
- 5 == 6
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- x == Approx( 1.301 )
- </Original>
- <Expanded>
- 1.3 == Approx( 1.301 )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Inequality checks that should succeed">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven != 6
- </Original>
- <Expanded>
- 7 != 6
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven != 8
- </Original>
- <Expanded>
- 7 != 8
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one != Approx( 9.11f )
- </Original>
- <Expanded>
- 9.1f != Approx( 9.1099996567 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one != Approx( 9.0f )
- </Original>
- <Expanded>
- 9.1f != Approx( 9.0 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one != Approx( 1 )
- </Original>
- <Expanded>
- 9.1f != Approx( 1.0 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one != Approx( 0 )
- </Original>
- <Expanded>
- 9.1f != Approx( 0.0 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.double_pi != Approx( 3.1415 )
- </Original>
- <Expanded>
- 3.1415926535 != Approx( 3.1415 )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello != "goodbye"
- </Original>
- <Expanded>
- "hello" != "goodbye"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello != "hell"
- </Original>
- <Expanded>
- "hello" != "hell"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello != "hello1"
- </Original>
- <Expanded>
- "hello" != "hello1"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello.size() != 6
- </Original>
- <Expanded>
- 5 != 6
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Inequality checks that should fail">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven != 7
- </Original>
- <Expanded>
- 7 != 7
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one != Approx( 9.1f )
- </Original>
- <Expanded>
- 9.1f != Approx( 9.1000003815 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.double_pi != Approx( 3.1415926535 )
- </Original>
- <Expanded>
- 3.1415926535 != Approx( 3.1415926535 )
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello != "hello"
- </Original>
- <Expanded>
- "hello" != "hello"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello.size() != 5
- </Original>
- <Expanded>
- 5 != 5
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Ordering comparison checks that should succeed">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven < 8
- </Original>
- <Expanded>
- 7 < 8
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven > 6
- </Original>
- <Expanded>
- 7 > 6
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven > 0
- </Original>
- <Expanded>
- 7 > 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven > -1
- </Original>
- <Expanded>
- 7 > -1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven >= 7
- </Original>
- <Expanded>
- 7 >= 7
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven >= 6
- </Original>
- <Expanded>
- 7 >= 6
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven <= 7
- </Original>
- <Expanded>
- 7 <= 7
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven <= 8
- </Original>
- <Expanded>
- 7 <= 8
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one > 9
- </Original>
- <Expanded>
- 9.1f > 9
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one < 10
- </Original>
- <Expanded>
- 9.1f < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one < 9.2
- </Original>
- <Expanded>
- 9.1f < 9.2
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello <= "hello"
- </Original>
- <Expanded>
- "hello" <= "hello"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello >= "hello"
- </Original>
- <Expanded>
- "hello" >= "hello"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello < "hellp"
- </Original>
- <Expanded>
- "hello" < "hellp"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello < "zebra"
- </Original>
- <Expanded>
- "hello" < "zebra"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello > "hellm"
- </Original>
- <Expanded>
- "hello" > "hellm"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello > "a"
- </Original>
- <Expanded>
- "hello" > "a"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Ordering comparison checks that should fail">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven > 7
- </Original>
- <Expanded>
- 7 > 7
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven < 7
- </Original>
- <Expanded>
- 7 < 7
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven > 8
- </Original>
- <Expanded>
- 7 > 8
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven < 6
- </Original>
- <Expanded>
- 7 < 6
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven < 0
- </Original>
- <Expanded>
- 7 < 0
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven < -1
- </Original>
- <Expanded>
- 7 < -1
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven >= 8
- </Original>
- <Expanded>
- 7 >= 8
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.int_seven <= 6
- </Original>
- <Expanded>
- 7 <= 6
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one < 9
- </Original>
- <Expanded>
- 9.1f < 9
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one > 10
- </Original>
- <Expanded>
- 9.1f > 10
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.float_nine_point_one > 9.2
- </Original>
- <Expanded>
- 9.1f > 9.2
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello > "hello"
- </Original>
- <Expanded>
- "hello" > "hello"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello < "hello"
- </Original>
- <Expanded>
- "hello" < "hello"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello > "hellp"
- </Original>
- <Expanded>
- "hello" > "hellp"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello > "z"
- </Original>
- <Expanded>
- "hello" > "z"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello < "hellm"
- </Original>
- <Expanded>
- "hello" < "hellm"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello < "a"
- </Original>
- <Expanded>
- "hello" < "a"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello >= "z"
- </Original>
- <Expanded>
- "hello" >= "z"
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- data.str_hello <= "a"
- </Original>
- <Expanded>
- "hello" <= "a"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
<TestCase name="Comparisons with int literals don't warn when mixing signed/ unsigned">
<Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
@@ -1071,491 +757,15 @@
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="comparisons between int variables">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <TestCase name="Contains string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- long_var == unsigned_char_var
+ testStringForMatching(), Contains( "not there" )
</Original>
<Expanded>
- 1 == 1
+ "this string contains 'abc' as a substring" contains: "not there"
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- long_var == unsigned_short_var
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- long_var == unsigned_int_var
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- long_var == unsigned_long_var
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="comparisons between const int variables">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- unsigned_char_var == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- unsigned_short_var == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- unsigned_int_var == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- unsigned_long_var == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- ( -1 > 2u )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- -1 > 2u
- </Original>
- <Expanded>
- -1 > 2
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- ( 2u < -1 )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- 2u < -1
- </Original>
- <Expanded>
- 2 < -1
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- ( minInt > 2u )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- minInt > 2u
- </Original>
- <Expanded>
- -2147483648 > 2
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Comparisons between ints where one side is computed">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- 54 == 6*9
- </Original>
- <Expanded>
- 54 == 54
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Pointers can be compared to null">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- p == nullptr
- </Original>
- <Expanded>
- NULL == nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- p == pNULL
- </Original>
- <Expanded>
- NULL == NULL
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- p != nullptr
- </Original>
- <Expanded>
- 0x<hex digits> != nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- cp != nullptr
- </Original>
- <Expanded>
- 0x<hex digits> != nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- cpc != nullptr
- </Original>
- <Expanded>
- 0x<hex digits> != nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- returnsNull() == nullptr
- </Original>
- <Expanded>
- {null string} == nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- returnsConstNull() == nullptr
- </Original>
- <Expanded>
- {null string} == nullptr
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- nullptr != p
- </Original>
- <Expanded>
- nullptr != 0x<hex digits>
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="'Not' checks that should succeed">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- false == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- true == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !false
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !false
- </Original>
- <Expanded>
- !false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !falseValue
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !falseValue
- </Original>
- <Expanded>
- !false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !(1 == 2)
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !1 == 2
- </Original>
- <Expanded>
- !(1 == 2)
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="'Not' checks that should fail">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- false != false
- </Original>
- <Expanded>
- false != false
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- true != true
- </Original>
- <Expanded>
- true != true
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !true
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !true
- </Original>
- <Expanded>
- !true
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !trueValue
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !trueValue
- </Original>
- <Expanded>
- !true
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !(1 == 1)
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
- <Original>
- !1 == 1
- </Original>
- <Expanded>
- !(1 == 1)
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When checked exceptions are thrown they can be expected or unexpected">
- <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows()
- </Original>
- <Expanded>
- thisThrows()
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisDoesntThrow()
- </Original>
- <Expanded>
- thisDoesntThrow()
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows()
- </Original>
- <Expanded>
- thisThrows()
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Expected exceptions that don't throw or unexpected exceptions fail the test">
- <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows()
- </Original>
- <Expanded>
- thisThrows()
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- expected exception
- </Exception>
- </Expression>
- <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisDoesntThrow()
- </Original>
- <Expanded>
- thisDoesntThrow()
- </Expanded>
- </Expression>
- <Expression success="false" type="CHECK_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows()
- </Original>
- <Expanded>
- thisThrows()
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- expected exception
- </Exception>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown directly they are always failures">
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- unexpected exception
- </Exception>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="An unchecked exception reports the line of the last assertion">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- 1 == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="false" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- {Unknown expression after the reported line}
- </Original>
- <Expanded>
- {Unknown expression after the reported line}
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- unexpected exception
- </Exception>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown from sections they are always failures">
- <Section name="section name">
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- unexpected exception
- </Exception>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown from functions they are always failures">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows() == 0
- </Original>
- <Expanded>
- thisThrows() == 0
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- expected exception
- </Exception>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail">
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows() == 0
- </Original>
- <Expanded>
- thisThrows() == 0
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- expected exception
- </Exception>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown during a CHECK the test should abort and fail">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
- <Original>
- thisThrows() == 0
- </Original>
- <Expanded>
- thisThrows() == 0
- </Expanded>
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- expected exception
- </Exception>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="When unchecked exceptions are thrown, but caught, they do not affect the test">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Non-std exceptions can be translated">
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- custom exception
- </Exception>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Custom std-exceptions can be custom translated">
- <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- custom std exception
- </Exception>
<OverallResult success="false"/>
</TestCase>
<TestCase name="Custom exceptions can be translated when testing for nothrow">
@@ -1586,19 +796,229 @@
</Expression>
<OverallResult success="false"/>
</TestCase>
- <TestCase name="Unexpected exceptions can be translated">
+ <TestCase name="Custom std-exceptions can be custom translated">
<Exception filename="projects/SelfTest/ExceptionTests.cpp" >
- 3.14
+ custom std exception
</Exception>
<OverallResult success="false"/>
</TestCase>
- <TestCase name="NotImplemented exception">
- <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <TestCase name="Demonstrate that a non-const == is not used">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- thisFunctionNotImplemented( 7 )
+ t == 1u
</Original>
<Expanded>
- thisFunctionNotImplemented( 7 )
+ {?} == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="EndsWith string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), EndsWith( "this" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ends with: "this"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Equality checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 6
+ </Original>
+ <Expanded>
+ 7 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 8
+ </Original>
+ <Expanded>
+ 7 == 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 0
+ </Original>
+ <Expanded>
+ 7 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.11f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.1099996567 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.0f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 1 )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 1.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 0 )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 0.0 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi == Approx( 3.1415 )
+ </Original>
+ <Expanded>
+ 3.1415926535 == Approx( 3.1415 )
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "goodbye"
+ </Original>
+ <Expanded>
+ "hello" == "goodbye"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hell"
+ </Original>
+ <Expanded>
+ "hello" == "hell"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hello1"
+ </Original>
+ <Expanded>
+ "hello" == "hello1"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() == 6
+ </Original>
+ <Expanded>
+ 5 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ x == Approx( 1.301 )
+ </Original>
+ <Expanded>
+ 1.3 == Approx( 1.301 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Equality checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven == 7
+ </Original>
+ <Expanded>
+ 7 == 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one == Approx( 9.1f )
+ </Original>
+ <Expanded>
+ 9.1f == Approx( 9.1000003815 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.double_pi == Approx( 3.1415926535 )
+ </Original>
+ <Expanded>
+ 3.1415926535 == Approx( 3.1415926535 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello == "hello"
+ </Original>
+ <Expanded>
+ "hello" == "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ "hello" == data.str_hello
+ </Original>
+ <Expanded>
+ "hello" == "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ x == Approx( 1.3 )
+ </Original>
+ <Expanded>
+ 1.3 == Approx( 1.3 )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Equals">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Equals( "this string contains 'abc' as a substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Equals string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Equals( "something else" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" equals: "something else"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Equals string matcher, with NULL">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ "", Equals(nullptr)
+ </Original>
+ <Expanded>
+ "" equals: ""
</Expanded>
</Expression>
<OverallResult success="true"/>
@@ -1663,25 +1083,111 @@
</Section>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Mismatching exception messages failing the test">
- <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <TestCase name="Expected exceptions that don't throw or unexpected exceptions fail the test">
+ <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
<Original>
- thisThrows(), "expected exception"
+ thisThrows()
</Original>
<Expanded>
- thisThrows(), "expected exception"
+ thisThrows()
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisDoesntThrow()
+ </Original>
+ <Expanded>
+ thisDoesntThrow()
</Expanded>
</Expression>
- <Expression success="false" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Expression success="false" type="CHECK_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
<Original>
- thisThrows(), "should fail"
+ thisThrows()
</Original>
<Expanded>
- expected exception
+ thisThrows()
</Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
</Expression>
<OverallResult success="false"/>
</TestCase>
+ <TestCase name="FAIL aborts the test">
+ <Failure>
+ This is a failure
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="FAIL does not require an argument">
+ <Failure/>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Factorials are computed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(0) == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(1) == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(2) == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(3) == 6
+ </Original>
+ <Expanded>
+ 6 == 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ Factorial(10) == 3628800
+ </Original>
+ <Expanded>
+ 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Generator over a range of pairs">
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ i->first == i->second-1
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
+ <Original>
+ i->first == i->second-1
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
<TestCase name="Generators over two ranges">
<Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
<Original>
@@ -2837,25 +2343,6 @@
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Generator over a range of pairs">
- <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
- <Original>
- i->first == i->second-1
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
- <Original>
- i->first == i->second-1
- </Original>
- <Expanded>
- 2 == 2
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
<TestCase name="INFO and WARN do not abort tests">
<Info>
this is a message
@@ -2865,9 +2352,6 @@
</Warning>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="SUCCEED counts as a test pass">
- <OverallResult success="true"/>
- </TestCase>
<TestCase name="INFO gets logged on failure">
<Info>
this message should be logged
@@ -2926,1758 +2410,140 @@
</Expression>
<OverallResult success="false"/>
</TestCase>
- <TestCase name="FAIL aborts the test">
- <Failure>
- This is a failure
- </Failure>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="FAIL does not require an argument">
- <Failure/>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="SUCCESS does not require an argument">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Output from all sections is reported">
- <Section name="one">
- <Failure>
- Message from section one
- </Failure>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <Section name="two">
- <Failure>
- Message from section two
- </Failure>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Standard output from all sections is reported">
- <Section name="one">
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <Section name="two">
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="SCOPED_INFO is reset for each loop">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <TestCase name="Inequality checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- i < 10
+ data.int_seven != 7
</Original>
<Expanded>
- 0 < 10
+ 7 != 7
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- i < 10
+ data.float_nine_point_one != Approx( 9.1f )
</Original>
<Expanded>
- 1 < 10
+ 9.1f != Approx( 9.1000003815 )
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- i < 10
+ data.double_pi != Approx( 3.1415926535 )
</Original>
<Expanded>
- 2 < 10
+ 3.1415926535 != Approx( 3.1415926535 )
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- i < 10
+ data.str_hello != "hello"
</Original>
<Expanded>
- 3 < 10
+ "hello" != "hello"
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- i < 10
+ data.str_hello.size() != 5
</Original>
<Expanded>
- 4 < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 5 < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 6 < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 7 < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 8 < 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 9 < 10
- </Expanded>
- </Expression>
- <Info>
- current counter 10
- </Info>
- <Info>
- i := 10
- </Info>
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- i < 10
- </Original>
- <Expanded>
- 10 < 10
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="The NO_FAIL macro reports a failure but does not fail the test">
- <Expression success="false" type="CHECK_NOFAIL" filename="projects/SelfTest/MessageTests.cpp" >
- <Original>
- 1 == 2
- </Original>
- <Expanded>
- 1 == 2
+ 5 != 5
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="just info">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="just failure">
- <Failure>
- Previous info should not be seen
- </Failure>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="sends information to INFO">
- <Info>
- hi
- </Info>
- <Info>
- i := 7
- </Info>
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <TestCase name="Inequality checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- false
+ data.int_seven != 6
</Original>
<Expanded>
- false
+ 7 != 6
</Expanded>
</Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Pointers can be converted to strings">
- <Warning>
- actual address of p: 0x<hex digits>
- </Warning>
- <Warning>
- toString(p): 0x<hex digits>
- </Warning>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="random SECTION tests">
- <Section name="s1" description="doesn't equal">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a != b
- </Original>
- <Expanded>
- 1 != 2
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- b != a
- </Original>
- <Expanded>
- 2 != 1
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="s2" description="not equal">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a != b
- </Original>
- <Expanded>
- 1 != 2
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="nested SECTION tests">
- <Section name="s1" description="doesn't equal">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a != b
- </Original>
- <Expanded>
- 1 != 2
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- b != a
- </Original>
- <Expanded>
- 2 != 1
- </Expanded>
- </Expression>
- <Section name="s2" description="not equal">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a != b
- </Original>
- <Expanded>
- 1 != 2
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="more nested SECTION tests">
- <Section name="s1" description="doesn't equal">
- <Section name="s2" description="equal">
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a == b
- </Original>
- <Expanded>
- 1 == 2
- </Expanded>
- </Expression>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <Section name="s1" description="doesn't equal">
- <Section name="s3" description="not equal">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a != b
- </Original>
- <Expanded>
- 1 != 2
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="s1" description="doesn't equal">
- <Section name="s4" description="less than">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- a < b
- </Original>
- <Expanded>
- 1 < 2
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="even more nested SECTION tests">
- <Section name="c">
- <Section name="d (leaf)">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="c">
- <Section name="e (leaf)">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="f (leaf)">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="looped SECTION tests">
- <Section name="s1" description="b is currently: 0">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- b > a
- </Original>
- <Expanded>
- 0 > 1
- </Expanded>
- </Expression>
- <OverallResults successes="0" failures="1" expectedFailures="0"/>
- </Section>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="looped tests">
- <Info>
- Testing if fib[0] (1) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.int_seven != 8
</Original>
<Expanded>
- 1 == 0
+ 7 != 8
</Expanded>
</Expression>
- <Info>
- Testing if fib[1] (1) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.float_nine_point_one != Approx( 9.11f )
</Original>
<Expanded>
- 1 == 0
+ 9.1f != Approx( 9.1099996567 )
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.float_nine_point_one != Approx( 9.0f )
</Original>
<Expanded>
- 0 == 0
+ 9.1f != Approx( 9.0 )
</Expanded>
</Expression>
- <Info>
- Testing if fib[3] (3) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.float_nine_point_one != Approx( 1 )
</Original>
<Expanded>
- 1 == 0
+ 9.1f != Approx( 1.0 )
</Expanded>
</Expression>
- <Info>
- Testing if fib[4] (5) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.float_nine_point_one != Approx( 0 )
</Original>
<Expanded>
- 1 == 0
+ 9.1f != Approx( 0.0 )
</Expanded>
</Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.double_pi != Approx( 3.1415 )
</Original>
<Expanded>
- 0 == 0
+ 3.1415926535 != Approx( 3.1415 )
</Expanded>
</Expression>
- <Info>
- Testing if fib[6] (13) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.str_hello != "goodbye"
</Original>
<Expanded>
- 1 == 0
+ "hello" != "goodbye"
</Expanded>
</Expression>
- <Info>
- Testing if fib[7] (21) is even
- </Info>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- ( fib[i] % 2 ) == 0
+ data.str_hello != "hell"
</Original>
<Expanded>
- 1 == 0
+ "hello" != "hell"
</Expanded>
</Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Sends stuff to stdout and stderr">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="null strings">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- makeString( false ) != static_cast<char*>(nullptr)
+ data.str_hello != "hello1"
</Original>
<Expanded>
- "valid string" != {null string}
+ "hello" != "hello1"
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- makeString( true ) == static_cast<char*>(nullptr)
+ data.str_hello.size() != 6
</Original>
<Expanded>
- {null string} == {null string}
+ 5 != 6
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="checkedIf">
- <Expression success="true" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- flag
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testCheckedIf( true )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="checkedIf, failing">
- <Expression success="false" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- flag
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testCheckedIf( false )
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="checkedElse">
- <Expression success="true" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- flag
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testCheckedElse( true )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="checkedElse, failing">
- <Expression success="false" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- flag
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testCheckedElse( false )
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="xmlentitycheck">
- <Section name="embedded xml" description="<test>it should be possible to embed xml characters, such as <, " or &, or even whole <xml>documents</xml> within an attribute</test>">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="encoded chars" description="these should all be encoded: &&&"""<<<&"<<&"">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="send a single char to INFO">
- <Info>
- 3
- </Info>
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- false
- </Original>
- <Expanded>
- false
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="atomic if">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- x == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="String matchers">
- <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Contains( "string" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" contains: "string"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Contains( "abc" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" contains: "abc"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), StartsWith( "this" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" starts with: "this"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), EndsWith( "substring" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ends with: "substring"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Contains string matcher">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Contains( "not there" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" contains: "not there"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="StartsWith string matcher">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), StartsWith( "string" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" starts with: "string"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="EndsWith string matcher">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), EndsWith( "this" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ends with: "this"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Equals string matcher">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Equals( "something else" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" equals: "something else"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Equals string matcher, with NULL">
- <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- "", Equals(nullptr)
- </Original>
- <Expanded>
- "" equals: ""
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="AllOf matcher">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="AnyOf matcher">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Equals">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Equals( "this string contains 'abc' as a substring" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Matchers can be (AllOf) composed with the && operator">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Matchers can be (AnyOf) composed with the || operator">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
- </Original>
- <Expanded>
- "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Matchers can be composed with both && and ||">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Matchers can be composed with both && and || - failing">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Matchers can be negated (Not) with the ! operator">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), !Contains( "different" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" not contains: "different"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Matchers can be negated (Not) with the ! operator - failing">
- <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- testStringForMatching(), !Contains( "substring" )
- </Original>
- <Expanded>
- "this string contains 'abc' as a substring" not contains: "substring"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="Factorials are computed">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- Factorial(0) == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- Factorial(1) == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- Factorial(2) == 2
- </Original>
- <Expanded>
- 2 == 2
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- Factorial(3) == 6
- </Original>
- <Expanded>
- 6 == 6
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- Factorial(10) == 3628800
- </Original>
- <Expanded>
- 3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="An empty test with no assertions">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Nice descriptive name">
- <Warning>
- This one ran
- </Warning>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="first tag">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="second tag">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="vectors can be sized and resized">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <Section name="resizing bigger changes size and capacity">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 10
- </Original>
- <Expanded>
- 10 == 10
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 10
- </Original>
- <Expanded>
- 10 >= 10
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <Section name="resizing smaller changes size but not capacity">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <Section name="We can use the 'swap trick' to reset the capacity">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <Section name="reserving bigger changes capacity but not size">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 10
- </Original>
- <Expanded>
- 10 >= 10
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <Section name="reserving smaller does not change size or capacity">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.size() == 5
- </Original>
- <Expanded>
- 5 == 5
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- v.capacity() >= 5
- </Original>
- <Expanded>
- 5 >= 5
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="A couple of nested sections followed by a failure">
- <Section name="Outer">
- <Section name="Inner">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Failure>
- to infinity and beyond
- </Failure>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="not allowed">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Tabs and newlines show in output">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- s1 == s2
- </Original>
- <Expanded>
- "if ($b == 10) {
- $a = 20;
-}"
-==
-"if ($b == 10) {
- $a = 20;
-}
-"
- </Expanded>
- </Expression>
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="toString on const wchar_t const pointer returns the string contents">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- result == "\"wide load\""
- </Original>
- <Expanded>
- ""wide load"" == ""wide load""
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString on const wchar_t pointer returns the string contents">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- result == "\"wide load\""
- </Original>
- <Expanded>
- ""wide load"" == ""wide load""
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString on wchar_t const pointer returns the string contents">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- result == "\"wide load\""
- </Original>
- <Expanded>
- ""wide load"" == ""wide load""
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString on wchar_t returns the string contents">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- result == "\"wide load\""
- </Original>
- <Expanded>
- ""wide load"" == ""wide load""
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="XmlEncode">
- <Section name="normal string">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "normal string" ) == "normal string"
- </Original>
- <Expanded>
- "normal string" == "normal string"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="empty string">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "" ) == ""
- </Original>
- <Expanded>
- "" == ""
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with ampersand">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "smith & jones" ) == "smith &amp; jones"
- </Original>
- <Expanded>
- "smith &amp; jones" == "smith &amp; jones"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with less-than">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "smith < jones" ) == "smith &lt; jones"
- </Original>
- <Expanded>
- "smith &lt; jones" == "smith &lt; jones"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with greater-than">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "smith > jones" ) == "smith > jones"
- </Original>
- <Expanded>
- "smith > jones" == "smith > jones"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "smith ]]> jones" ) == "smith ]]&gt; jones"
- </Original>
- <Expanded>
- "smith ]]&gt; jones"
-==
-"smith ]]&gt; jones"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with quotes">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( stringWithQuotes ) == stringWithQuotes
- </Original>
- <Expanded>
- "don't "quote" me on that"
-==
-"don't "quote" me on that"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that"
- </Original>
- <Expanded>
- "don't &quot;quote&quot; me on that"
-==
-"don't &quot;quote&quot; me on that"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with control char (1)">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "[\x01]" ) == "[&#x01;]"
- </Original>
- <Expanded>
- "[&#x01;]" == "[&#x01;]"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="string with control char (x7F)">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- encode( "[\x7F]" ) == "[&#x7F;]"
- </Original>
- <Expanded>
- "[&#x7F;]" == "[&#x7F;]"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="long long">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
- <Original>
- l == std::numeric_limits<long long>::max()
- </Original>
- <Expanded>
- 9223372036854775807 (0x<hex digits>)
-==
-9223372036854775807 (0x<hex digits>)
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="This test 'should' fail but doesn't">
- <OverallResult success="false"/>
- </TestCase>
- <TestCase name="# A test name that starts with a #">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Process can be configured on command line">
- <Section name="default - no arguments">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.shouldDebugBreak == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.abortAfter == -1
- </Original>
- <Expanded>
- -1 == -1
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.noThrow == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames.empty()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="5" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="test lists">
- <Section name="1 test" description="Specify one test case using">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "test1" ) )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="test lists">
- <Section name="Specify one test case exclusion using exclude:">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="test lists">
- <Section name="Specify one test case exclusion using ~">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="3" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="reporter">
- <Section name="-r/console">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames[0] == "console"
- </Original>
- <Expanded>
- "console" == "console"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="reporter">
- <Section name="-r/xml">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames[0] == "xml"
- </Original>
- <Expanded>
- "xml" == "xml"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="reporter">
- <Section name="-r xml and junit">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames.size() == 2
- </Original>
- <Expanded>
- 2 == 2
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames[0] == "xml"
- </Original>
- <Expanded>
- "xml" == "xml"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames[1] == "junit"
- </Original>
- <Expanded>
- "junit" == "junit"
- </Expanded>
- </Expression>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="reporter">
- <Section name="--reporter/junit">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.reporterNames[0] == "junit"
- </Original>
- <Expanded>
- "junit" == "junit"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="debugger">
- <Section name="-b">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.shouldDebugBreak == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="debugger">
- <Section name="--break">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.shouldDebugBreak
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="abort">
- <Section name="-a aborts after first failure">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.abortAfter == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="abort">
- <Section name="-x 2 aborts after two failures">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.abortAfter == 2
- </Original>
- <Expanded>
- 2 == 2
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="abort">
- <Section name="-x must be greater than zero">
- <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" )
- </Original>
- <Expanded>
- "Value after -x or --abortAfter must be greater than zero
-- while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="abort">
- <Section name="-x must be numeric">
- <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfigAndReturnError( argv, config ), Contains( "-x" )
- </Original>
- <Expanded>
- "Unable to convert oops to destination type
-- while parsing: (-x, --abortx <no. failures>)" contains: "-x"
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="nothrow">
- <Section name="-e">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.noThrow == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="nothrow">
- <Section name="--nothrow">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.noThrow == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="output filename">
- <Section name="-o filename">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.outputFilename == "filename.ext"
- </Original>
- <Expanded>
- "filename.ext" == "filename.ext"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="output filename">
- <Section name="--out">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.outputFilename == "filename.ext"
- </Original>
- <Expanded>
- "filename.ext" == "filename.ext"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="combinations">
- <Section name="Single character flags can be combined">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.abortAfter == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.shouldDebugBreak
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.noThrow == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="use-colour">
- <Section name="without option">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.useColour == UseColour::Auto
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="use-colour">
- <Section name="auto">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.useColour == UseColour::Auto
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="use-colour">
- <Section name="yes">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.useColour == UseColour::Yes
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="use-colour">
- <Section name="no">
- <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config )
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- config.useColour == UseColour::No
- </Original>
- <Expanded>
- 2 == 2
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="use-colour">
- <Section name="error">
- <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
- </Original>
- <Expanded>
- parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
<TestCase name="Long strings can be wrapped">
<Section name="plain string">
<Section name="No wrapping">
@@ -5176,168 +3042,6 @@
</Section>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="replaceInPlace">
- <Section name="replace single char">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( letters, "b", "z" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == "azcdefcg"
- </Original>
- <Expanded>
- "azcdefcg" == "azcdefcg"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="replace two chars">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( letters, "c", "z" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == "abzdefzg"
- </Original>
- <Expanded>
- "abzdefzg" == "abzdefzg"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="replace first char">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( letters, "a", "z" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == "zbcdefcg"
- </Original>
- <Expanded>
- "zbcdefcg" == "zbcdefcg"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="replace last char">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( letters, "g", "z" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == "abcdefcz"
- </Original>
- <Expanded>
- "abcdefcz" == "abcdefcz"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="replace all chars">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( letters, letters, "replaced" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == "replaced"
- </Original>
- <Expanded>
- "replaced" == "replaced"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="replace no chars">
- <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- !replaceInPlace( letters, "x", "z" )
- </Original>
- <Expanded>
- !false
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- letters == letters
- </Original>
- <Expanded>
- "abcdefcg" == "abcdefcg"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="escape '">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- replaceInPlace( s, "'", "|'" )
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- s == "didn|'t"
- </Original>
- <Expanded>
- "didn|'t" == "didn|'t"
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Strings can be rendered with colour">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Text can be formatted using the Text class">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- Text( "hi there" ).toString() == "hi there"
- </Original>
- <Expanded>
- "hi there" == "hi there"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
- <Original>
- Text( "hi there", narrow ).toString() == "hi\nthere"
- </Original>
- <Expanded>
- "hi
-there"
-==
-"hi
-there"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
<TestCase name="Long text is truncted">
<Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TestMain.cpp" >
<Original>
@@ -6352,204 +4056,122 @@
<TestCase name="ManuallyRegistered">
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Parsing a std::pair">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <TestCase name="Matchers can be (AllOf) composed with the && operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- (std::pair<int, int>( 1, 2 )) == aNicePair
+ testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" )
</Original>
<Expanded>
- 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" )
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Where there is more to the expression after the RHS">
- <Warning>
- Uncomment the code in this test to check that it gives a sensible compiler error
- </Warning>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Where the LHS is not a simple value">
- <Warning>
- Uncomment the code in this test to check that it gives a sensible compiler error
- </Warning>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="A failing expression with a non streamable type is still captured">
- <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <TestCase name="Matchers can be (AnyOf) composed with the || operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- &o1 == &o2
+ testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
</Original>
<Expanded>
- 0x<hex digits> == 0x<hex digits>
+ "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
</Expanded>
</Expression>
- <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- o1 == o2
+ testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
</Original>
<Expanded>
- {?} == {?}
+ "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be composed with both && and ||">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be composed with both && and || - failing">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
</Expanded>
</Expression>
<OverallResult success="false"/>
</TestCase>
- <TestCase name="string literals of different sizes can be compared">
- <Expression success="false" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <TestCase name="Matchers can be negated (Not) with the ! operator">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
<Original>
- std::string( "first" ) == "second"
+ testStringForMatching(), !Contains( "different" )
</Original>
<Expanded>
- "first" == "second"
+ "this string contains 'abc' as a substring" not contains: "different"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Matchers can be negated (Not) with the ! operator - failing">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), !Contains( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" not contains: "substring"
</Expanded>
</Expression>
<OverallResult success="false"/>
</TestCase>
- <TestCase name="An expression with side-effects should only be evaluated once">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <TestCase name="Mismatching exception messages failing the test">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
<Original>
- i++ == 7
+ thisThrows(), "expected exception"
</Original>
<Expanded>
- 7 == 7
+ thisThrows(), "expected exception"
</Expanded>
</Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Expression success="false" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
<Original>
- i++ == 8
+ thisThrows(), "should fail"
</Original>
<Expanded>
- 8 == 8
+ expected exception
</Expanded>
</Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Nice descriptive name">
+ <Warning>
+ This one ran
+ </Warning>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Operators at different namespace levels not hijacked by Koenig lookup">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <TestCase name="Non-std exceptions can be translated">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ custom exception
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="NotImplemented exception">
+ <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
<Original>
- 0x<hex digits> == o
+ thisFunctionNotImplemented( 7 )
</Original>
<Expanded>
- 3221225472 (0x<hex digits>) == {?}
+ thisFunctionNotImplemented( 7 )
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Demonstrate that a non-const == is not used">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- t == 1u
- </Original>
- <Expanded>
- {?} == 1
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Test enum bit values">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- 0x<hex digits> == bit30and31
- </Original>
- <Expanded>
- 3221225472 (0x<hex digits>) == 3221225472
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="boolean member">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- obj.prop != nullptr
- </Original>
- <Expanded>
- 0x<hex digits> != nullptr
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="(unimplemented) static bools can be evaluated">
- <Section name="compare to true">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- is_true<true>::value == true
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- true == is_true<true>::value
- </Original>
- <Expanded>
- true == true
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="compare to false">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- is_true<false>::value == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- false == is_true<false>::value
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="negation">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- !is_true<false>::value
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="double negation">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- !!is_true<true>::value
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <Section name="direct">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- is_true<true>::value
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- !is_true<false>::value
- </Original>
- <Expanded>
- !false
- </Expanded>
- </Expression>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
<TestCase name="Objects that evaluated in boolean contexts can be checked">
<Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
@@ -6577,1479 +4199,325 @@
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Assertions then sections">
+ <TestCase name="Operators at different namespace levels not hijacked by Koenig lookup">
<Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- Catch::alwaysTrue()
+ 0x<hex digits> == o
</Original>
<Expanded>
- true
+ 3221225472 (0x<hex digits>) == {?}
</Expanded>
</Expression>
- <Section name="A section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- Catch::alwaysTrue()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="Another section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- Catch::alwaysTrue()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Ordering comparison checks that should fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 7
+ </Original>
+ <Expanded>
+ 7 > 7
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven < 7
+ </Original>
+ <Expanded>
+ 7 < 7
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 8
+ </Original>
+ <Expanded>
+ 7 > 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven < 6
+ </Original>
+ <Expanded>
+ 7 < 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven < 0
+ </Original>
+ <Expanded>
+ 7 < 0
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven < -1
+ </Original>
+ <Expanded>
+ 7 < -1
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 8
+ </Original>
+ <Expanded>
+ 7 >= 8
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven <= 6
+ </Original>
+ <Expanded>
+ 7 <= 6
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one < 9
+ </Original>
+ <Expanded>
+ 9.1f < 9
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 10
+ </Original>
+ <Expanded>
+ 9.1f > 10
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 9.2
+ </Original>
+ <Expanded>
+ 9.1f > 9.2
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hello"
+ </Original>
+ <Expanded>
+ "hello" > "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello < "hello"
+ </Original>
+ <Expanded>
+ "hello" < "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hellp"
+ </Original>
+ <Expanded>
+ "hello" > "hellp"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "z"
+ </Original>
+ <Expanded>
+ "hello" > "z"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello < "hellm"
+ </Original>
+ <Expanded>
+ "hello" < "hellm"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello < "a"
+ </Original>
+ <Expanded>
+ "hello" < "a"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello >= "z"
+ </Original>
+ <Expanded>
+ "hello" >= "z"
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello <= "a"
+ </Original>
+ <Expanded>
+ "hello" <= "a"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Ordering comparison checks that should succeed">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven < 8
+ </Original>
+ <Expanded>
+ 7 < 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 6
+ </Original>
+ <Expanded>
+ 7 > 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > 0
+ </Original>
+ <Expanded>
+ 7 > 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven > -1
+ </Original>
+ <Expanded>
+ 7 > -1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 7
+ </Original>
+ <Expanded>
+ 7 >= 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven >= 6
+ </Original>
+ <Expanded>
+ 7 >= 6
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven <= 7
+ </Original>
+ <Expanded>
+ 7 <= 7
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.int_seven <= 8
+ </Original>
+ <Expanded>
+ 7 <= 8
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one > 9
+ </Original>
+ <Expanded>
+ 9.1f > 9
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one < 10
+ </Original>
+ <Expanded>
+ 9.1f < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.float_nine_point_one < 9.2
+ </Original>
+ <Expanded>
+ 9.1f < 9.2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello <= "hello"
+ </Original>
+ <Expanded>
+ "hello" <= "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello >= "hello"
+ </Original>
+ <Expanded>
+ "hello" >= "hello"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello < "hellp"
+ </Original>
+ <Expanded>
+ "hello" < "hellp"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello < "zebra"
+ </Original>
+ <Expanded>
+ "hello" < "zebra"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "hellm"
+ </Original>
+ <Expanded>
+ "hello" > "hellm"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ data.str_hello > "a"
+ </Original>
+ <Expanded>
+ "hello" > "a"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Output from all sections is reported">
+ <Section name="one">
+ <Failure>
+ Message from section one
+ </Failure>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
</Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- Catch::alwaysTrue()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="A section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- Catch::alwaysTrue()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="Another other section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- Catch::alwaysTrue()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ <Section name="two">
+ <Failure>
+ Message from section two
+ </Failure>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
</Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="non streamable - with conv. op">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- s == "7"
- </Original>
- <Expanded>
- "7" == "7"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Comparing function pointers">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- a
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- a == &foo
- </Original>
- <Expanded>
- 0x<hex digits> == 0x<hex digits>
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Comparing member function pointers">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- m == &S::f
- </Original>
- <Expanded>
- 0x<hex digits>
-==
-0x<hex digits>
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="pointer to class">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- p == 0
- </Original>
- <Expanded>
- NULL == 0
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="null_ptr">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
- <Original>
- ptr.get() == nullptr
- </Original>
- <Expanded>
- NULL == nullptr
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="X/level/0/a">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="X/level/0/b">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="X/level/1/a">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="X/level/1/b">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( has_toString )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( item ) == "toString( has_toString )"
- </Original>
- <Expanded>
- "toString( has_toString )"
-==
-"toString( has_toString )"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( has_maker )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( item ) == "StringMaker<has_maker>"
- </Original>
- <Expanded>
- "StringMaker<has_maker>"
-==
-"StringMaker<has_maker>"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( has_maker_and_toString )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( item ) == "toString( has_maker_and_toString )"
- </Original>
- <Expanded>
- "toString( has_maker_and_toString )"
-==
-"toString( has_maker_and_toString )"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( vectors<has_toString )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( v ) == "{ {?} }"
- </Original>
- <Expanded>
- "{ {?} }" == "{ {?} }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( vectors<has_maker )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( v ) == "{ StringMaker<has_maker> }"
- </Original>
- <Expanded>
- "{ StringMaker<has_maker> }"
-==
-"{ StringMaker<has_maker> }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="toString( vectors<has_maker_and_toString )">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
- <Original>
- Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }"
- </Original>
- <Expanded>
- "{ StringMaker<has_maker_and_toString> }"
-==
-"{ StringMaker<has_maker_and_toString> }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Tracker">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="successfully close one section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="fail one section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="re-enter after failed section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="5" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="10" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="fail one section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="re-enter after failed section and find next section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="6" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="11" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="successfully close one section, then find another">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Re-enter - skips S1 and enters S2">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Successfully close S2">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="8" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="10" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="successfully close one section, then find another">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Re-enter - skips S1 and enters S2">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="fail S2">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- ctx.completedCycle()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase3.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1c.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2c.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase3.isSuccessfullyCompleted()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="8" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="12" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="14" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="open a nested section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="6" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="start a generator">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.index() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="close outer section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Re-enter for second generation">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.index() == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="8" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="10" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="14" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="start a generator">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.index() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Start a new inner section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Re-enter for second generation">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.index() == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="9" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="13" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="17" failures="0" expectedFailures="0"/>
- </Section>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Section name="start a generator">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.index() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Fail an inner section">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2.isSuccessfullyCompleted() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Section name="Re-enter for second generation">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.index() == 0
- </Original>
- <Expanded>
- 0 == 0
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2b.isOpen() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1b.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1b.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase2.isComplete() == false
- </Original>
- <Expanded>
- false == false
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase3.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1c.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1c.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1c.index() == 1
- </Original>
- <Expanded>
- 1 == 1
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2c.isOpen()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s2c.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- g1c.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- s1c.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
- <Original>
- testCase3.isComplete()
- </Original>
- <Expanded>
- true
- </Expanded>
- </Expression>
- <OverallResults successes="17" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="22" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="26" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="std::pair<int,std::string> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
- <Original>
- Catch::toString( value ) == "{ 34, \"xyzzy\" }"
- </Original>
- <Expanded>
- "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="std::pair<int,const std::string> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
- <Original>
- Catch::toString(value) == "{ 34, \"xyzzy\" }"
- </Original>
- <Expanded>
- "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="std::vector<std::pair<std::string,int> > -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
- <Original>
- Catch::toString( pr ) == "{ { \"green\", 55 } }"
- </Original>
- <Expanded>
- "{ { "green", 55 } }"
-==
-"{ { "green", 55 } }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="pair<pair<int,const char *,pair<std::string,int> > -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
- <Original>
- Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }"
- </Original>
- <Expanded>
- "{ { 42, "Arthur" }, { "Ford", 24 } }"
-==
-"{ { 42, "Arthur" }, { "Ford", 24 } }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="vector<int> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ }"
- </Original>
- <Expanded>
- "{ }" == "{ }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ 42 }"
- </Original>
- <Expanded>
- "{ 42 }" == "{ 42 }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ 42, 250 }"
- </Original>
- <Expanded>
- "{ 42, 250 }" == "{ 42, 250 }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="vector<string> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ }"
- </Original>
- <Expanded>
- "{ }" == "{ }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ \"hello\" }"
- </Original>
- <Expanded>
- "{ "hello" }" == "{ "hello" }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ \"hello\", \"world\" }"
- </Original>
- <Expanded>
- "{ "hello", "world" }"
-==
-"{ "hello", "world" }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="vector<int,allocator> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ }"
- </Original>
- <Expanded>
- "{ }" == "{ }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ 42 }"
- </Original>
- <Expanded>
- "{ 42 }" == "{ 42 }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(vv) == "{ 42, 250 }"
- </Original>
- <Expanded>
- "{ 42, 250 }" == "{ 42, 250 }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="vec<vec<string,alloc>> -> toString">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(v) == "{ }"
- </Original>
- <Expanded>
- "{ }" == "{ }"
- </Expanded>
- </Expression>
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
- <Original>
- Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }"
- </Original>
- <Expanded>
- "{ { "hello" }, { "world" } }"
-==
-"{ { "hello" }, { "world" } }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
+ <OverallResult success="false"/>
</TestCase>
<TestCase name="Parse test names and tags">
<Section name="Empty test spec should have no filters">
@@ -9227,185 +5695,808 @@
</Section>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="tuple<>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <TestCase name="Parsing a std::pair">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
<Original>
- "{ }" == Catch::toString(type{})
+ (std::pair<int, int>( 1, 2 )) == aNicePair
</Original>
<Expanded>
- "{ }" == "{ }"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "{ }" == Catch::toString(value)
- </Original>
- <Expanded>
- "{ }" == "{ }"
+ std::pair( 1, 2 ) == std::pair( 1, 2 )
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="tuple<int>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <TestCase name="Pointers can be compared to null">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
<Original>
- "{ 0 }" == Catch::toString(type{0})
+ p == nullptr
</Original>
<Expanded>
- "{ 0 }" == "{ 0 }"
+ NULL == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ p == pNULL
+ </Original>
+ <Expanded>
+ NULL == NULL
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ p != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ cp != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ cpc != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ returnsNull() == nullptr
+ </Original>
+ <Expanded>
+ {null string} == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ returnsConstNull() == nullptr
+ </Original>
+ <Expanded>
+ {null string} == nullptr
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ nullptr != p
+ </Original>
+ <Expanded>
+ nullptr != 0x<hex digits>
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="tuple<float,int>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "1.2f" == Catch::toString(float(1.2))
- </Original>
- <Expanded>
- "1.2f" == "1.2f"
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "{ 1.2f, 0 }" == Catch::toString(type{1.2,0})
- </Original>
- <Expanded>
- "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
- </Expanded>
- </Expression>
+ <TestCase name="Pointers can be converted to strings">
+ <Warning>
+ actual address of p: 0x<hex digits>
+ </Warning>
+ <Warning>
+ toString(p): 0x<hex digits>
+ </Warning>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="tuple<string,string>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"})
- </Original>
- <Expanded>
- "{ "hello", "world" }"
-==
-"{ "hello", "world" }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="tuple<tuple<int>,tuple<>,float>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "{ { 42 }, { }, 1.2f }" == Catch::toString(value)
- </Original>
- <Expanded>
- "{ { 42 }, { }, 1.2f }"
-==
-"{ { 42 }, { }, 1.2f }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="tuple<nullptr,int,const char *>">
- <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
- <Original>
- "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value)
- </Original>
- <Expanded>
- "{ nullptr, 42, "Catch me" }"
-==
-"{ nullptr, 42, "Catch me" }"
- </Expanded>
- </Expression>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Tag alias can be registered against tag patterns">
- <Section name="The same tag alias can only be registered once">
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <TestCase name="Process can be configured on command line">
+ <Section name="default - no arguments">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
<Original>
- what, Contains( "[@zzz]" )
+ parseIntoConfig( argv, config )
</Original>
<Expanded>
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains: "[@zzz]"
+ parseIntoConfig( argv, config )
</Expanded>
</Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
<Original>
- what, Contains( "file" )
+ config.shouldDebugBreak == false
</Original>
<Expanded>
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains: "file"
+ false == false
</Expanded>
</Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
<Original>
- what, Contains( "2" )
+ config.abortAfter == -1
</Original>
<Expanded>
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains: "2"
+ -1 == -1
</Expanded>
</Expression>
- <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
<Original>
- what, Contains( "10" )
+ config.noThrow == false
</Original>
<Expanded>
- "error: tag alias, "[@zzz]" already registered.
- First seen at file:2
- Redefined at file:10" contains: "10"
+ false == false
</Expanded>
</Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames.empty()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="1 test" description="Specify one test case using">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="Specify one test case exclusion using exclude:">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="test lists">
+ <Section name="Specify one test case exclusion using ~">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r/console">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "console"
+ </Original>
+ <Expanded>
+ "console" == "console"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r/xml">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "xml"
+ </Original>
+ <Expanded>
+ "xml" == "xml"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="reporter">
+ <Section name="-r xml and junit">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames.size() == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "xml"
+ </Original>
+ <Expanded>
+ "xml" == "xml"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[1] == "junit"
+ </Original>
+ <Expanded>
+ "junit" == "junit"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
<OverallResults successes="4" failures="0" expectedFailures="0"/>
</Section>
- <Section name="Tag aliases must be of the form [@name]">
- <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
- <Original>
- registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Original>
- <Expanded>
- registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
- <Original>
- registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Original>
- <Expanded>
- registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
- <Original>
- registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Original>
- <Expanded>
- registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
- </Expanded>
- </Expression>
- <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
- <Original>
- registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
- </Original>
- <Expanded>
- registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
- </Expanded>
- </Expression>
- <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ <Section name="reporter">
+ <Section name="--reporter/junit">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.reporterNames[0] == "junit"
+ </Original>
+ <Expanded>
+ "junit" == "junit"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
</Section>
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Anonymous test case 1">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Test case with one argument">
- <OverallResult success="true"/>
- </TestCase>
- <TestCase name="Variadic macros">
- <Section name="Section with one argument">
+ <Section name="debugger">
+ <Section name="-b">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="debugger">
+ <Section name="--break">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-a aborts after first failure">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-x 2 aborts after two failures">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 2
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="abort">
+ <Section name="-x must be greater than zero">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" )
+ </Original>
+ <Expanded>
+ "Value after -x or --abortAfter must be greater than zero
+- while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
<OverallResults successes="1" failures="0" expectedFailures="0"/>
</Section>
+ <Section name="abort">
+ <Section name="-x must be numeric">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfigAndReturnError( argv, config ), Contains( "-x" )
+ </Original>
+ <Expanded>
+ "Unable to convert oops to destination type
+- while parsing: (-x, --abortx <no. failures>)" contains: "-x"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="nothrow">
+ <Section name="-e">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="nothrow">
+ <Section name="--nothrow">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="output filename">
+ <Section name="-o filename">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.outputFilename == "filename.ext"
+ </Original>
+ <Expanded>
+ "filename.ext" == "filename.ext"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="output filename">
+ <Section name="--out">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.outputFilename == "filename.ext"
+ </Original>
+ <Expanded>
+ "filename.ext" == "filename.ext"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="combinations">
+ <Section name="Single character flags can be combined">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.abortAfter == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.shouldDebugBreak
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.noThrow == true
+ </Original>
+ <Expanded>
+ true == true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="without option">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Auto
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="auto">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Auto
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="yes">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::Yes
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="no">
+ <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ config.useColour == UseColour::No
+ </Original>
+ <Expanded>
+ 2 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="use-colour">
+ <Section name="error">
+ <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
+ </Original>
+ <Expanded>
+ parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="SCOPED_INFO is reset for each loop">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 0 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 1 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 2 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 3 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 4 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 5 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 6 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 7 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 8 < 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 9 < 10
+ </Expanded>
+ </Expression>
+ <Info>
+ current counter 10
+ </Info>
+ <Info>
+ i := 10
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ i < 10
+ </Original>
+ <Expanded>
+ 10 < 10
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="SUCCEED counts as a test pass">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="SUCCESS does not require an argument">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods">
+ <Section name="Given: No operations precede me">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ before == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Section name="When: We get the count">
+ <Section name="Then: Subsequently values are higher">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Original>
+ after > before
+ </Original>
+ <Expanded>
+ 1 > 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
<OverallResult success="true"/>
</TestCase>
<TestCase name="Scenario: Do that thing with the thing">
@@ -9439,6 +6530,18 @@
</Section>
<OverallResult success="true"/>
</TestCase>
+ <TestCase name="Scenario: This is a really long scenario name to see how the list command deals with wrapping">
+ <Section name="Given: A section name that is so long that it cannot fit in a single console width">
+ <Section name="When: The test headers are printed as part of the normal running of the scenario">
+ <Section name="Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
<TestCase name="Scenario: Vector resizing affects size and capacity">
<Section name="Given: an empty vector">
<Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
@@ -9530,44 +6633,2941 @@
</Section>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Scenario: This is a really long scenario name to see how the list command deals with wrapping">
- <Section name="Given: A section name that is so long that it cannot fit in a single console width">
- <Section name="When: The test headers are printed as part of the normal running of the scenario">
- <Section name="Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent">
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
- </Section>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ <TestCase name="Sends stuff to stdout and stderr">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Some simple comparisons between doubles">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == Approx( 1.23 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.23 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != Approx( 1.22 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.22 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != Approx( 1.24 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.24 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) == 1.23
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.23
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) != 1.22
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.22
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ Approx( d ) != 1.24
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.24
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Standard output from all sections is reported">
+ <Section name="one">
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <Section name="two">
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="StartsWith string matcher">
+ <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), StartsWith( "string" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" starts with: "string"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="String matchers">
+ <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "string" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" contains: "string"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), Contains( "abc" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" contains: "abc"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), StartsWith( "this" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" starts with: "this"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testStringForMatching(), EndsWith( "substring" )
+ </Original>
+ <Expanded>
+ "this string contains 'abc' as a substring" ends with: "substring"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Strings can be rendered with colour">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Tabs and newlines show in output">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ s1 == s2
+ </Original>
+ <Expanded>
+ "if ($b == 10) {
+ $a = 20;
+}"
+==
+"if ($b == 10) {
+ $a = 20;
+}
+"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Tag alias can be registered against tag patterns">
+ <Section name="The same tag alias can only be registered once">
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "[@zzz]" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "[@zzz]"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "file" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "file"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "2" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "2"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ what, Contains( "10" )
+ </Original>
+ <Expanded>
+ "error: tag alias, "[@zzz]" already registered.
+ First seen at file:2
+ Redefined at file:10" contains: "10"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="Tag aliases must be of the form [@name]">
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
+ <Original>
+ registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Original>
+ <Expanded>
+ registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
</Section>
<OverallResult success="true"/>
</TestCase>
- <TestCase name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods">
- <Section name="Given: No operations precede me">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <TestCase name="Test case with one argument">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Test enum bit values">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ 0x<hex digits> == bit30and31
+ </Original>
+ <Expanded>
+ 3221225472 (0x<hex digits>) == 3221225472
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Text can be formatted using the Text class">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "hi there" ).toString() == "hi there"
+ </Original>
+ <Expanded>
+ "hi there" == "hi there"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ Text( "hi there", narrow ).toString() == "hi\nthere"
+ </Original>
+ <Expanded>
+ "hi
+there"
+==
+"hi
+there"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="The NO_FAIL macro reports a failure but does not fail the test">
+ <Expression success="false" type="CHECK_NOFAIL" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ 1 == 2
+ </Original>
+ <Expanded>
+ 1 == 2
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="This test 'should' fail but doesn't">
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Tracker">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
<Original>
- before == 0
+ s1.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="fail one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="re-enter after failed section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="5" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="fail one section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="re-enter after failed section and find next section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="11" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section, then find another">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter - skips S1 and enters S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Successfully close S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="4" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="successfully close one section, then find another">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter - skips S1 and enters S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="fail S2">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ ctx.completedCycle()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isSuccessfullyCompleted()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="12" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="14" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="open a nested section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="6" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
</Original>
<Expanded>
0 == 0
</Expanded>
</Expression>
- <Section name="When: We get the count">
- <Section name="Then: Subsequently values are higher">
- <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="close outer section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
<Original>
- after > before
+ testCase2.isOpen()
</Original>
<Expanded>
- 1 > 0
+ true
</Expanded>
</Expression>
- <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="8" failures="0" expectedFailures="0"/>
</Section>
+ <OverallResults successes="10" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="14" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Start a new inner section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="9" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="13" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="17" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Section name="start a generator">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Fail an inner section">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2.isSuccessfullyCompleted() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Section name="Re-enter for second generation">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.index() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2b.isOpen() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1b.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1b.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase2.isComplete() == false
+ </Original>
+ <Expanded>
+ false == false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.index() == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isOpen()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s2c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ g1c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ s1c.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
+ <Original>
+ testCase3.isComplete()
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResults successes="17" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="22" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="26" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Unexpected exceptions can be translated">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ 3.14
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="Use a custom approx">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.23 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.23 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.22 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.22 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d == approx( 1.24 )
+ </Original>
+ <Expanded>
+ 1.23 == Approx( 1.24 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ d != approx( 1.25 )
+ </Original>
+ <Expanded>
+ 1.23 != Approx( 1.25 )
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.23
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.23
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.22
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.22
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) == 1.24
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) == 1.24
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
+ <Original>
+ approx( d ) != 1.25
+ </Original>
+ <Expanded>
+ Approx( 1.23 ) != 1.25
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Variadic macros">
+ <Section name="Section with one argument">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="When checked exceptions are thrown they can be expected or unexpected">
+ <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisDoesntThrow()
+ </Original>
+ <Expanded>
+ thisDoesntThrow()
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows()
+ </Original>
+ <Expanded>
+ thisThrows()
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown directly they are always failures">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown during a CHECK the test should abort and fail">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown from functions they are always failures">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
+ <Original>
+ thisThrows() == 0
+ </Original>
+ <Expanded>
+ thisThrows() == 0
+ </Expanded>
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ expected exception
+ </Exception>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown from sections they are always failures">
+ <Section name="section name">
+ <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
+ unexpected exception
+ </Exception>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="When unchecked exceptions are thrown, but caught, they do not affect the test">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Where the LHS is not a simple value">
+ <Warning>
+ Uncomment the code in this test to check that it gives a sensible compiler error
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Where there is more to the expression after the RHS">
+ <Warning>
+ Uncomment the code in this test to check that it gives a sensible compiler error
+ </Warning>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/0/a">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/0/b">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/1/a">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="X/level/1/b">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="XmlEncode">
+ <Section name="normal string">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "normal string" ) == "normal string"
+ </Original>
+ <Expanded>
+ "normal string" == "normal string"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="empty string">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "" ) == ""
+ </Original>
+ <Expanded>
+ "" == ""
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with ampersand">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith & jones" ) == "smith &amp; jones"
+ </Original>
+ <Expanded>
+ "smith &amp; jones" == "smith &amp; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with less-than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith < jones" ) == "smith &lt; jones"
+ </Original>
+ <Expanded>
+ "smith &lt; jones" == "smith &lt; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with greater-than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith > jones" ) == "smith > jones"
+ </Original>
+ <Expanded>
+ "smith > jones" == "smith > jones"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "smith ]]> jones" ) == "smith ]]&gt; jones"
+ </Original>
+ <Expanded>
+ "smith ]]&gt; jones"
+==
+"smith ]]&gt; jones"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with quotes">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( stringWithQuotes ) == stringWithQuotes
+ </Original>
+ <Expanded>
+ "don't "quote" me on that"
+==
+"don't "quote" me on that"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that"
+ </Original>
+ <Expanded>
+ "don't &quot;quote&quot; me on that"
+==
+"don't &quot;quote&quot; me on that"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with control char (1)">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "[\x01]" ) == "[&#x01;]"
+ </Original>
+ <Expanded>
+ "[&#x01;]" == "[&#x01;]"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="string with control char (x7F)">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ encode( "[\x7F]" ) == "[&#x7F;]"
+ </Original>
+ <Expanded>
+ "[&#x7F;]" == "[&#x7F;]"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="atomic if">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ x == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="boolean member">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ obj.prop != nullptr
+ </Original>
+ <Expanded>
+ 0x<hex digits> != nullptr
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedElse">
+ <Expression success="true" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedElse( true )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedElse, failing">
+ <Expression success="false" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedElse( false )
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="checkedIf">
+ <Expression success="true" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedIf( true )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="checkedIf, failing">
+ <Expression success="false" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ flag
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ testCheckedIf( false )
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="comparisons between const int variables">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_char_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_short_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_int_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ unsigned_long_var == 1
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="comparisons between int variables">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_char_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_short_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_int_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
+ <Original>
+ long_var == unsigned_long_var
+ </Original>
+ <Expanded>
+ 1 == 1
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="even more nested SECTION tests">
+ <Section name="c">
+ <Section name="d (leaf)">
<OverallResults successes="1" failures="0" expectedFailures="0"/>
</Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="c">
+ <Section name="e (leaf)">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="f (leaf)">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="first tag">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="just failure">
+ <Failure>
+ Previous info should not be seen
+ </Failure>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="just info">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="long long">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ l == std::numeric_limits<long long>::max()
+ </Original>
+ <Expanded>
+ 9223372036854775807 (0x<hex digits>)
+==
+9223372036854775807 (0x<hex digits>)
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="looped SECTION tests">
+ <Section name="s1" description="b is currently: 0">
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b > a
+ </Original>
+ <Expanded>
+ 0 > 1
+ </Expanded>
+ </Expression>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="looped tests">
+ <Info>
+ Testing if fib[0] (1) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[1] (1) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[3] (3) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[4] (5) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[6] (13) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <Info>
+ Testing if fib[7] (21) is even
+ </Info>
+ <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ ( fib[i] % 2 ) == 0
+ </Original>
+ <Expanded>
+ 1 == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="more nested SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Section name="s2" description="equal">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a == b
+ </Original>
+ <Expanded>
+ 1 == 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="0" failures="1" expectedFailures="0"/>
+ </Section>
+ <Section name="s1" description="doesn't equal">
+ <Section name="s3" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="s1" description="doesn't equal">
+ <Section name="s4" description="less than">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a < b
+ </Original>
+ <Expanded>
+ 1 < 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="nested SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b != a
+ </Original>
+ <Expanded>
+ 2 != 1
+ </Expanded>
+ </Expression>
+ <Section name="s2" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="non streamable - with conv. op">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ s == "7"
+ </Original>
+ <Expanded>
+ "7" == "7"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="not allowed">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="null strings">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ makeString( false ) != static_cast<char*>(nullptr)
+ </Original>
+ <Expanded>
+ "valid string" != {null string}
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ makeString( true ) == static_cast<char*>(nullptr)
+ </Original>
+ <Expanded>
+ {null string} == {null string}
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="null_ptr">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ ptr.get() == nullptr
+ </Original>
+ <Expanded>
+ NULL == nullptr
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="pair<pair<int,const char *,pair<std::string,int> > -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }"
+ </Original>
+ <Expanded>
+ "{ { 42, "Arthur" }, { "Ford", 24 } }"
+==
+"{ { 42, "Arthur" }, { "Ford", 24 } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="pointer to class">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ p == 0
+ </Original>
+ <Expanded>
+ NULL == 0
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="random SECTION tests">
+ <Section name="s1" description="doesn't equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ b != a
+ </Original>
+ <Expanded>
+ 2 != 1
+ </Expanded>
+ </Expression>
<OverallResults successes="2" failures="0" expectedFailures="0"/>
</Section>
+ <Section name="s2" description="not equal">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ a != b
+ </Original>
+ <Expanded>
+ 1 != 2
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="replaceInPlace">
+ <Section name="replace single char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "b", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "azcdefcg"
+ </Original>
+ <Expanded>
+ "azcdefcg" == "azcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace two chars">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "c", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "abzdefzg"
+ </Original>
+ <Expanded>
+ "abzdefzg" == "abzdefzg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace first char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "a", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "zbcdefcg"
+ </Original>
+ <Expanded>
+ "zbcdefcg" == "zbcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace last char">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, "g", "z" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "abcdefcz"
+ </Original>
+ <Expanded>
+ "abcdefcz" == "abcdefcz"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace all chars">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( letters, letters, "replaced" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == "replaced"
+ </Original>
+ <Expanded>
+ "replaced" == "replaced"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="replace no chars">
+ <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ !replaceInPlace( letters, "x", "z" )
+ </Original>
+ <Expanded>
+ !false
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ letters == letters
+ </Original>
+ <Expanded>
+ "abcdefcg" == "abcdefcg"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="escape '">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ replaceInPlace( s, "'", "|'" )
+ </Original>
+ <Expanded>
+ true
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
+ <Original>
+ s == "didn|'t"
+ </Original>
+ <Expanded>
+ "didn|'t" == "didn|'t"
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="second tag">
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="send a single char to INFO">
+ <Info>
+ 3
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ false
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="sends information to INFO">
+ <Info>
+ hi
+ </Info>
+ <Info>
+ i := 7
+ </Info>
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
+ <Original>
+ false
+ </Original>
+ <Expanded>
+ false
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="std::pair<int,const std::string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString(value) == "{ 34, \"xyzzy\" }"
+ </Original>
+ <Expanded>
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="std::pair<int,std::string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( value ) == "{ 34, \"xyzzy\" }"
+ </Original>
+ <Expanded>
+ "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="std::vector<std::pair<std::string,int> > -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
+ <Original>
+ Catch::toString( pr ) == "{ { \"green\", 55 } }"
+ </Original>
+ <Expanded>
+ "{ { "green", 55 } }"
+==
+"{ { "green", 55 } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="string literals of different sizes can be compared">
+ <Expression success="false" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
+ <Original>
+ std::string( "first" ) == "second"
+ </Original>
+ <Expanded>
+ "first" == "second"
+ </Expanded>
+ </Expression>
+ <OverallResult success="false"/>
+ </TestCase>
+ <TestCase name="toString on const wchar_t const pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on const wchar_t pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on wchar_t const pointer returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString on wchar_t returns the string contents">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ result == "\"wide load\""
+ </Original>
+ <Expanded>
+ ""wide load"" == ""wide load""
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_maker )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "StringMaker<has_maker>"
+ </Original>
+ <Expanded>
+ "StringMaker<has_maker>"
+==
+"StringMaker<has_maker>"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_maker_and_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "toString( has_maker_and_toString )"
+ </Original>
+ <Expanded>
+ "toString( has_maker_and_toString )"
+==
+"toString( has_maker_and_toString )"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( has_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( item ) == "toString( has_toString )"
+ </Original>
+ <Expanded>
+ "toString( has_toString )"
+==
+"toString( has_toString )"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors<has_maker )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ StringMaker<has_maker> }"
+ </Original>
+ <Expanded>
+ "{ StringMaker<has_maker> }"
+==
+"{ StringMaker<has_maker> }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors<has_maker_and_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ StringMaker<has_maker_and_toString> }"
+ </Original>
+ <Expanded>
+ "{ StringMaker<has_maker_and_toString> }"
+==
+"{ StringMaker<has_maker_and_toString> }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString( vectors<has_toString )">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
+ <Original>
+ Catch::toString( v ) == "{ {?} }"
+ </Original>
+ <Expanded>
+ "{ {?} }" == "{ {?} }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum class w/operator<<)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "E2/V0"
+ </Original>
+ <Expanded>
+ "E2/V0" == "E2/V0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "E2/V1"
+ </Original>
+ <Expanded>
+ "E2/V1" == "E2/V1"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e3) == "Unknown enum value 10"
+ </Original>
+ <Expanded>
+ "Unknown enum value 10"
+==
+"Unknown enum value 10"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum class)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "0"
+ </Original>
+ <Expanded>
+ "0" == "0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "1"
+ </Original>
+ <Expanded>
+ "1" == "1"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum w/operator<<)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "E2{0}"
+ </Original>
+ <Expanded>
+ "E2{0}" == "E2{0}"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "E2{1}"
+ </Original>
+ <Expanded>
+ "E2{1}" == "E2{1}"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="toString(enum)">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e0) == "0"
+ </Original>
+ <Expanded>
+ "0" == "0"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
+ <Original>
+ Catch::toString(e1) == "1"
+ </Original>
+ <Expanded>
+ "1" == "1"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ }" == Catch::toString(type{})
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<float,int>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "1.2f" == Catch::toString(float(1.2))
+ </Original>
+ <Expanded>
+ "1.2f" == "1.2f"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ 1.2f, 0 }" == Catch::toString(type{1.2,0})
+ </Original>
+ <Expanded>
+ "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<int>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ 0 }" == Catch::toString(type{0})
+ </Original>
+ <Expanded>
+ "{ 0 }" == "{ 0 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<nullptr,int,const char *>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ nullptr, 42, "Catch me" }"
+==
+"{ nullptr, 42, "Catch me" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<string,string>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"})
+ </Original>
+ <Expanded>
+ "{ "hello", "world" }"
+==
+"{ "hello", "world" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="tuple<tuple<int>,tuple<>,float>">
+ <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
+ <Original>
+ "{ { 42 }, { }, 1.2f }" == Catch::toString(value)
+ </Original>
+ <Expanded>
+ "{ { 42 }, { }, 1.2f }"
+==
+"{ { 42 }, { }, 1.2f }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vec<vec<string,alloc>> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(v) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }"
+ </Original>
+ <Expanded>
+ "{ { "hello" }, { "world" } }"
+==
+"{ { "hello" }, { "world" } }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector<int,allocator> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42 }"
+ </Original>
+ <Expanded>
+ "{ 42 }" == "{ 42 }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42, 250 }"
+ </Original>
+ <Expanded>
+ "{ 42, 250 }" == "{ 42, 250 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector<int> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42 }"
+ </Original>
+ <Expanded>
+ "{ 42 }" == "{ 42 }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ 42, 250 }"
+ </Original>
+ <Expanded>
+ "{ 42, 250 }" == "{ 42, 250 }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vector<string> -> toString">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ }"
+ </Original>
+ <Expanded>
+ "{ }" == "{ }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ \"hello\" }"
+ </Original>
+ <Expanded>
+ "{ "hello" }" == "{ "hello" }"
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
+ <Original>
+ Catch::toString(vv) == "{ \"hello\", \"world\" }"
+ </Original>
+ <Expanded>
+ "{ "hello", "world" }"
+==
+"{ "hello", "world" }"
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="vectors can be sized and resized">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="resizing bigger changes size and capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 10
+ </Original>
+ <Expanded>
+ 10 == 10
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="resizing smaller changes size but not capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="We can use the 'swap trick' to reset the capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() == 0
+ </Original>
+ <Expanded>
+ 0 == 0
+ </Expanded>
+ </Expression>
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResults successes="3" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="reserving bigger changes capacity but not size">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 10
+ </Original>
+ <Expanded>
+ 10 >= 10
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <Section name="reserving smaller does not change size or capacity">
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.size() == 5
+ </Original>
+ <Expanded>
+ 5 == 5
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
+ <Original>
+ v.capacity() >= 5
+ </Original>
+ <Expanded>
+ 5 >= 5
+ </Expanded>
+ </Expression>
+ <OverallResults successes="2" failures="0" expectedFailures="0"/>
+ </Section>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="xmlentitycheck">
+ <Section name="embedded xml" description="<test>it should be possible to embed xml characters, such as <, " or &, or even whole <xml>documents</xml> within an attribute</test>">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
+ <Section name="encoded chars" description="these should all be encoded: &&&"""<<<&"<<&"">
+ <OverallResults successes="1" failures="0" expectedFailures="0"/>
+ </Section>
<OverallResult success="true"/>
</TestCase>
<OverallResults successes="825" failures="81" expectedFailures="18"/>
diff --git a/scripts/approvalTests.py b/scripts/approvalTests.py
index 618812f..2fe3245 100644
--- a/scripts/approvalTests.py
+++ b/scripts/approvalTests.py
@@ -22,6 +22,7 @@
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 @@
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" )