mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-18 11:36:09 +01:00
7be8a41adf
Happening when using clang and templated operators, clang cannot decide between the operator provided by ReusableStringStream and the one provided by the value value as both are templates. This is easily solved by calling the operator<< through the member syntax. Fixes #1285
1090 lines
37 KiB
Plaintext
1090 lines
37 KiB
Plaintext
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
<exe-name> is a <version> host application.
|
|
Run with -? for options
|
|
|
|
-------------------------------------------------------------------------------
|
|
#748 - captures with unexpected exceptions
|
|
outside assertions
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with messages:
|
|
answer := 42
|
|
expected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
#748 - captures with unexpected exceptions
|
|
inside REQUIRE_NOTHROW
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_NOTHROW( thisThrows() )
|
|
due to unexpected exception with messages:
|
|
answer := 42
|
|
expected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
#835 -- errno should not be touched by Catch
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( f() == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
'Not' checks that should fail
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( false != false )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( true != true )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( !true )
|
|
with expansion:
|
|
false
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK_FALSE( true )
|
|
with expansion:
|
|
!true
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( !trueValue )
|
|
with expansion:
|
|
false
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK_FALSE( trueValue )
|
|
with expansion:
|
|
!true
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( !(1 == 1) )
|
|
with expansion:
|
|
false
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK_FALSE( 1 == 1 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
A METHOD_AS_TEST_CASE based test run that fails
|
|
-------------------------------------------------------------------------------
|
|
Class.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Class.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( s == "world" )
|
|
with expansion:
|
|
"hello" == "world"
|
|
|
|
-------------------------------------------------------------------------------
|
|
A TEST_CASE_METHOD based test run that fails
|
|
-------------------------------------------------------------------------------
|
|
Class.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Class.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( m_a == 2 )
|
|
with expansion:
|
|
1 == 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
A couple of nested sections followed by a failure
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
to infinity and beyond
|
|
|
|
-------------------------------------------------------------------------------
|
|
A failing expression with a non streamable type is still captured
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>: FAILED:
|
|
CHECK( &o1 == &o2 )
|
|
with expansion:
|
|
0x<hex digits> == 0x<hex digits>
|
|
|
|
Tricky.tests.cpp:<line number>: FAILED:
|
|
CHECK( o1 == o2 )
|
|
with expansion:
|
|
{?} == {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
An unchecked exception reports the line of the last assertion
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
{Unknown expression after the reported line}
|
|
due to unexpected exception with message:
|
|
unexpected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
Contains string matcher
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Contains("not there", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "not there" (case
|
|
insensitive)
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Contains("STRING") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "STRING"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Custom exceptions can be translated when testing for nothrow
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_AS( throwCustom(), std::exception )
|
|
due to unexpected exception with message:
|
|
custom exception - not std
|
|
|
|
-------------------------------------------------------------------------------
|
|
Custom std-exceptions can be custom translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
custom std exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
EndsWith string matcher
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), EndsWith("Substring") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" ends with: "Substring"
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), EndsWith("this", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" ends with: "this" (case
|
|
insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Equality checks that should fail
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven == 6 )
|
|
with expansion:
|
|
7 == 6
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven == 8 )
|
|
with expansion:
|
|
7 == 8
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven == 0 )
|
|
with expansion:
|
|
7 == 0
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one == Approx( 9.11f ) )
|
|
with expansion:
|
|
9.1f == Approx( 9.1099996567 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one == Approx( 9.0f ) )
|
|
with expansion:
|
|
9.1f == Approx( 9.0 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one == Approx( 1 ) )
|
|
with expansion:
|
|
9.1f == Approx( 1.0 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one == Approx( 0 ) )
|
|
with expansion:
|
|
9.1f == Approx( 0.0 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.double_pi == Approx( 3.1415 ) )
|
|
with expansion:
|
|
3.1415926535 == Approx( 3.1415 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello == "goodbye" )
|
|
with expansion:
|
|
"hello" == "goodbye"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello == "hell" )
|
|
with expansion:
|
|
"hello" == "hell"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello == "hello1" )
|
|
with expansion:
|
|
"hello" == "hello1"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello.size() == 6 )
|
|
with expansion:
|
|
5 == 6
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( x == Approx( 1.301 ) )
|
|
with expansion:
|
|
1.3 == Approx( 1.301 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Equals string matcher
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
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.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Equals("something else", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" equals: "something else" (case
|
|
insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception matchers that fail
|
|
No exception
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{1} )
|
|
because no exception was thrown where one was expected:
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{1} )
|
|
because no exception was thrown where one was expected:
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception matchers that fail
|
|
Type mismatch
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THROWS_MATCHES( throwsAsInt(1), SpecialException, ExceptionMatcher{1} )
|
|
due to unexpected exception with message:
|
|
Unknown exception
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_MATCHES( throwsAsInt(1), SpecialException, ExceptionMatcher{1} )
|
|
due to unexpected exception with message:
|
|
Unknown exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception matchers that fail
|
|
Contents are wrong
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THROWS_MATCHES( throws(3), SpecialException, ExceptionMatcher{1} )
|
|
with expansion:
|
|
SpecialException::what special exception has value of 1
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_MATCHES( throws(4), SpecialException, ExceptionMatcher{1} )
|
|
with expansion:
|
|
SpecialException::what special exception has value of 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
Expected exceptions that don't throw or unexpected exceptions fail the test
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
CHECK_THROWS_AS( thisThrows(), std::string )
|
|
due to unexpected exception with message:
|
|
expected exception
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error )
|
|
because no exception was thrown where one was expected:
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
CHECK_NOTHROW( thisThrows() )
|
|
due to unexpected exception with message:
|
|
expected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
FAIL aborts the test
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
This is a failure
|
|
|
|
-------------------------------------------------------------------------------
|
|
FAIL does not require an argument
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
FAIL_CHECK does not abort the test
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
This is a failure
|
|
|
|
Message.tests.cpp:<line number>:
|
|
warning:
|
|
This message appears in the output
|
|
|
|
-------------------------------------------------------------------------------
|
|
INFO and WARN do not abort tests
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
warning:
|
|
this is a warning
|
|
|
|
-------------------------------------------------------------------------------
|
|
INFO gets logged on failure
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
CHECK( a == 1 )
|
|
with expansion:
|
|
2 == 1
|
|
with messages:
|
|
this message may be logged later
|
|
this message should be logged
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
CHECK( a == 0 )
|
|
with expansion:
|
|
2 == 0
|
|
with messages:
|
|
this message may be logged later
|
|
this message should be logged
|
|
and this, but later
|
|
|
|
-------------------------------------------------------------------------------
|
|
INFO is reset for each loop
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
10 < 10
|
|
with messages:
|
|
current counter 10
|
|
i := 10
|
|
|
|
-------------------------------------------------------------------------------
|
|
Inequality checks that should fail
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven != 7 )
|
|
with expansion:
|
|
7 != 7
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one != Approx( 9.1f ) )
|
|
with expansion:
|
|
9.1f != Approx( 9.1000003815 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.double_pi != Approx( 3.1415926535 ) )
|
|
with expansion:
|
|
3.1415926535 != Approx( 3.1415926535 )
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello != "hello" )
|
|
with expansion:
|
|
"hello" != "hello"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello.size() != 5 )
|
|
with expansion:
|
|
5 != 5
|
|
|
|
-------------------------------------------------------------------------------
|
|
Matchers can be composed with both && and || - failing
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
|
|
with expansion:
|
|
"expected exception" equals: "should fail"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Nice descriptive name
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
warning:
|
|
This one ran
|
|
|
|
-------------------------------------------------------------------------------
|
|
Non-std exceptions can be translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
custom exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
Ordering comparison checks that should fail
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven > 7 )
|
|
with expansion:
|
|
7 > 7
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven < 7 )
|
|
with expansion:
|
|
7 < 7
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven > 8 )
|
|
with expansion:
|
|
7 > 8
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven < 6 )
|
|
with expansion:
|
|
7 < 6
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven < 0 )
|
|
with expansion:
|
|
7 < 0
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven < -1 )
|
|
with expansion:
|
|
7 < -1
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven >= 8 )
|
|
with expansion:
|
|
7 >= 8
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.int_seven <= 6 )
|
|
with expansion:
|
|
7 <= 6
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one < 9 )
|
|
with expansion:
|
|
9.1f < 9
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one > 10 )
|
|
with expansion:
|
|
9.1f > 10
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.float_nine_point_one > 9.2 )
|
|
with expansion:
|
|
9.1f > 9.2
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello > "hello" )
|
|
with expansion:
|
|
"hello" > "hello"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello < "hello" )
|
|
with expansion:
|
|
"hello" < "hello"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello > "hellp" )
|
|
with expansion:
|
|
"hello" > "hellp"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello > "z" )
|
|
with expansion:
|
|
"hello" > "z"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello < "hellm" )
|
|
with expansion:
|
|
"hello" < "hellm"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello < "a" )
|
|
with expansion:
|
|
"hello" < "a"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello >= "z" )
|
|
with expansion:
|
|
"hello" >= "z"
|
|
|
|
Condition.tests.cpp:<line number>: FAILED:
|
|
CHECK( data.str_hello <= "a" )
|
|
with expansion:
|
|
"hello" <= "a"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Output from all sections is reported
|
|
one
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
Message from section one
|
|
|
|
-------------------------------------------------------------------------------
|
|
Output from all sections is reported
|
|
two
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
Message from section two
|
|
|
|
-------------------------------------------------------------------------------
|
|
Reconstruction should be based on stringification: #914
|
|
-------------------------------------------------------------------------------
|
|
Decomposition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Decomposition.tests.cpp:<line number>: FAILED:
|
|
CHECK( truthy(false) )
|
|
with expansion:
|
|
Hey, its truthy!
|
|
|
|
-------------------------------------------------------------------------------
|
|
Regex string matcher
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Matches("this STRING contains 'abc' as a substring") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" matches "this STRING contains
|
|
'abc' as a substring" case sensitively
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Matches("contains 'abc' as a substring") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" matches "contains 'abc' as a
|
|
substring" case sensitively
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), Matches("this string contains 'abc' as a") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" matches "this string contains
|
|
'abc' as a" case sensitively
|
|
|
|
A string sent directly to stdout
|
|
A string sent directly to stderr
|
|
A string sent to stderr via clog
|
|
Message from section one
|
|
Message from section two
|
|
-------------------------------------------------------------------------------
|
|
StartsWith string matcher
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), StartsWith("This String") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" starts with: "This String"
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( testStringForMatching(), StartsWith("string", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" starts with: "string" (case
|
|
insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tabs and newlines show in output
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( s1 == s2 )
|
|
with expansion:
|
|
"if ($b == 10) {
|
|
$a = 20;
|
|
}"
|
|
==
|
|
"if ($b == 10) {
|
|
$a = 20;
|
|
}
|
|
"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Thrown string literals are translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
For some reason someone is throwing a string literal!
|
|
|
|
-------------------------------------------------------------------------------
|
|
Unexpected exceptions can be translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
3.14
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers that fail
|
|
Contains (element)
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v, VectorContains(-1) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: -1
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( empty, VectorContains(1) )
|
|
with expansion:
|
|
{ } Contains: 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers that fail
|
|
Contains (vector)
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( empty, Contains(v) )
|
|
with expansion:
|
|
{ } Contains: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v, Contains(v2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: { 1, 2, 4 }
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers that fail
|
|
Equals
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v, Equals(v2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Equals: { 1, 2 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v2, Equals(v) )
|
|
with expansion:
|
|
{ 1, 2 } Equals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( empty, Equals(v) )
|
|
with expansion:
|
|
{ } Equals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v, Equals(empty) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Equals: { }
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers that fail
|
|
UnorderedEquals
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( v, UnorderedEquals(empty) )
|
|
with expansion:
|
|
{ 1, 2, 3 } UnorderedEquals: { }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( empty, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( permuted, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ 1, 3 } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
CHECK_THAT( permuted, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ 3, 1 } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
-------------------------------------------------------------------------------
|
|
When unchecked exceptions are thrown directly they are always failures
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
unexpected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
When unchecked exceptions are thrown during a CHECK the test should continue
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
unexpected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
Where the LHS is not a simple value
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
warning:
|
|
Uncomment the code in this test to check that it gives a sensible compiler
|
|
error
|
|
|
|
-------------------------------------------------------------------------------
|
|
checkedElse, failing
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECKED_ELSE( flag )
|
|
with expansion:
|
|
false
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( testCheckedElse( false ) )
|
|
with expansion:
|
|
false
|
|
|
|
-------------------------------------------------------------------------------
|
|
checkedIf, failing
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECKED_IF( flag )
|
|
with expansion:
|
|
false
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( testCheckedIf( false ) )
|
|
with expansion:
|
|
false
|
|
|
|
loose text artifact
|
|
-------------------------------------------------------------------------------
|
|
just failure
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
Previous info should not be seen
|
|
|
|
-------------------------------------------------------------------------------
|
|
looped SECTION tests
|
|
s1
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( b > a )
|
|
with expansion:
|
|
0 > 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
looped tests
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
with message:
|
|
Testing if fib[0] (1) is even
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
with message:
|
|
Testing if fib[1] (1) is even
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
with message:
|
|
Testing if fib[3] (3) is even
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
with message:
|
|
Testing if fib[4] (5) is even
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
1 == 0
|
|
with message:
|
|
Testing if fib[6] (13) is even
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( a == b )
|
|
with expansion:
|
|
1 == 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
send a single char to INFO
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( false )
|
|
with message:
|
|
3
|
|
|
|
-------------------------------------------------------------------------------
|
|
sends information to INFO
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( false )
|
|
with messages:
|
|
hi
|
|
i := 7
|
|
|
|
-------------------------------------------------------------------------------
|
|
string literals of different sizes can be compared
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( std::string( "first" ) == "second" )
|
|
with expansion:
|
|
"first" == "second"
|
|
|
|
-------------------------------------------------------------------------------
|
|
thrown std::strings are translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
Why would you throw a std::string?
|
|
|
|
===============================================================================
|
|
test cases: 208 | 155 passed | 49 failed | 4 failed as expected
|
|
assertions: 1065 | 937 passed | 107 failed | 21 failed as expected
|
|
|