mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-25 14:56:10 +01:00
8472 lines
237 KiB
Plaintext
8472 lines
237 KiB
Plaintext
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
<exe-name> is a <version> host application.
|
|
Run with -? for options
|
|
|
|
-------------------------------------------------------------------------------
|
|
# A test name that starts with a #
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
yay
|
|
|
|
-------------------------------------------------------------------------------
|
|
#1005: Comparing pointer to int and long (NULL can be either on various
|
|
systems)
|
|
-------------------------------------------------------------------------------
|
|
Decomposition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Decomposition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( fptr == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Decomposition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( fptr == 0l )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
#1027
|
|
-------------------------------------------------------------------------------
|
|
Compilation.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( y.v == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 == y.v )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
#1147
|
|
-------------------------------------------------------------------------------
|
|
Compilation.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 == t2 )
|
|
with expansion:
|
|
{?} == {?}
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 != t2 )
|
|
with expansion:
|
|
{?} != {?}
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 < t2 )
|
|
with expansion:
|
|
{?} < {?}
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 > t2 )
|
|
with expansion:
|
|
{?} > {?}
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 <= t2 )
|
|
with expansion:
|
|
{?} <= {?}
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( t1 >= t2 )
|
|
with expansion:
|
|
{?} >= {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
#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
|
|
|
|
-------------------------------------------------------------------------------
|
|
#748 - captures with unexpected exceptions
|
|
inside REQUIRE_THROWS
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS( thisThrows() )
|
|
with message:
|
|
answer := 42
|
|
|
|
-------------------------------------------------------------------------------
|
|
#809
|
|
-------------------------------------------------------------------------------
|
|
Compilation.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 42 == f )
|
|
with expansion:
|
|
42 == {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
#833
|
|
-------------------------------------------------------------------------------
|
|
Compilation.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a == t )
|
|
with expansion:
|
|
3 == 3
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( a == t )
|
|
with expansion:
|
|
3 == 3
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS( throws_int(true) )
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS_AS( throws_int(true), int )
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( throws_int(false) )
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( "aaa", Catch::EndsWith("aaa") )
|
|
with expansion:
|
|
"aaa" ends with: "aaa"
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( templated_tests<int>(3) )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
#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
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( errno == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
#872
|
|
-------------------------------------------------------------------------------
|
|
Compilation.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Compilation.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( x == 4 )
|
|
with expansion:
|
|
{?} == 4
|
|
with message:
|
|
dummy := 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
#961 -- Dynamically created sections should all be reported
|
|
Looped section 0
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
Everything is OK
|
|
|
|
-------------------------------------------------------------------------------
|
|
#961 -- Dynamically created sections should all be reported
|
|
Looped section 1
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
Everything is OK
|
|
|
|
-------------------------------------------------------------------------------
|
|
#961 -- Dynamically created sections should all be reported
|
|
Looped section 2
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
Everything is OK
|
|
|
|
-------------------------------------------------------------------------------
|
|
#961 -- Dynamically created sections should all be reported
|
|
Looped section 3
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
Everything is OK
|
|
|
|
-------------------------------------------------------------------------------
|
|
#961 -- Dynamically created sections should all be reported
|
|
Looped section 4
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
Everything is OK
|
|
|
|
-------------------------------------------------------------------------------
|
|
'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 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
'Not' checks that should succeed
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( false == false )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true == true )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( !false )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( false )
|
|
with expansion:
|
|
!false
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( !falseValue )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( falseValue )
|
|
with expansion:
|
|
!false
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( !(1 == 2) )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( 1 == 2 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
(unimplemented) static bools can be evaluated
|
|
compare to true
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( is_true<true>::value == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true == is_true<true>::value )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
(unimplemented) static bools can be evaluated
|
|
compare to false
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( is_true<false>::value == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( false == is_true<false>::value )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
(unimplemented) static bools can be evaluated
|
|
negation
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( !is_true<false>::value )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
(unimplemented) static bools can be evaluated
|
|
double negation
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( !!is_true<true>::value )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
(unimplemented) static bools can be evaluated
|
|
direct
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( is_true<true>::value )
|
|
with expansion:
|
|
true
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( is_true<false>::value )
|
|
with expansion:
|
|
!false
|
|
|
|
-------------------------------------------------------------------------------
|
|
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 METHOD_AS_TEST_CASE based test run that succeeds
|
|
-------------------------------------------------------------------------------
|
|
Class.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Class.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s == "hello" )
|
|
with expansion:
|
|
"hello" == "hello"
|
|
|
|
-------------------------------------------------------------------------------
|
|
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 TEST_CASE_METHOD based test run that succeeds
|
|
-------------------------------------------------------------------------------
|
|
Class.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Class.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( m_a == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
A couple of nested sections followed by a failure
|
|
Outer
|
|
Inner
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
that's not flying - that's failing in style
|
|
|
|
-------------------------------------------------------------------------------
|
|
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:
|
|
{?} == {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
Absolute margin
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 104.0 != Approx(100.0) )
|
|
with expansion:
|
|
104.0 != Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 104.0 == Approx(100.0).margin(5) )
|
|
with expansion:
|
|
104.0 == Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 104.0 == Approx(100.0).margin(4) )
|
|
with expansion:
|
|
104.0 == Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 104.0 != Approx(100.0).margin(3) )
|
|
with expansion:
|
|
104.0 != Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 100.3 != Approx(100.0) )
|
|
with expansion:
|
|
100.3 != Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 100.3 == Approx(100.0).margin(0.5) )
|
|
with expansion:
|
|
100.3 == Approx( 100.0 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
An empty test with no assertions
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'An empty test with no assertions'
|
|
|
|
-------------------------------------------------------------------------------
|
|
An expression with side-effects should only be evaluated once
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i++ == 7 )
|
|
with expansion:
|
|
7 == 7
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i++ == 8 )
|
|
with expansion:
|
|
8 == 8
|
|
|
|
-------------------------------------------------------------------------------
|
|
An unchecked exception reports the line of the last assertion
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 1 == 1 )
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
{Unknown expression after the reported line}
|
|
due to unexpected exception with message:
|
|
unexpected exception
|
|
|
|
-------------------------------------------------------------------------------
|
|
Anonymous test case 1
|
|
-------------------------------------------------------------------------------
|
|
VariadicMacros.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
VariadicMacros.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
anonymous test case
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approx setters validate their arguments
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( Approx(0).margin(0) )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( Approx(0).margin(1234656) )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( Approx(0).margin(-2), std::domain_error )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( Approx(0).epsilon(0) )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( Approx(0).epsilon(1) )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( Approx(0).epsilon(-0.001), std::domain_error )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( Approx(0).epsilon(1.0001), std::domain_error )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approx with exactly-representable margin
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 0.25f == Approx(0.0f).margin(0.25f) )
|
|
with expansion:
|
|
0.25f == Approx( 0.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 0.0f == Approx(0.25f).margin(0.25f) )
|
|
with expansion:
|
|
0.0f == Approx( 0.25 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 0.5f == Approx(0.25f).margin(0.25f) )
|
|
with expansion:
|
|
0.5f == Approx( 0.25 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 245.0f == Approx(245.25f).margin(0.25f) )
|
|
with expansion:
|
|
245.0f == Approx( 245.25 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 245.5f == Approx(245.25f).margin(0.25f) )
|
|
with expansion:
|
|
245.5f == Approx( 245.25 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approximate PI
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
|
|
with expansion:
|
|
3.1428571429 == Approx( 3.141 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
|
|
with expansion:
|
|
3.1428571429 != Approx( 3.141 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approximate comparisons with different epsilons
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d != Approx( 1.231 ) )
|
|
with expansion:
|
|
1.23 != Approx( 1.231 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
|
|
with expansion:
|
|
1.23 == Approx( 1.231 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approximate comparisons with floats
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 1.23f == Approx( 1.23f ) )
|
|
with expansion:
|
|
1.23f == Approx( 1.2300000191 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0.0f == Approx( 0.0f ) )
|
|
with expansion:
|
|
0.0f == Approx( 0.0 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approximate comparisons with ints
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 1 == Approx( 1 ) )
|
|
with expansion:
|
|
1 == Approx( 1.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 == Approx( 0 ) )
|
|
with expansion:
|
|
0 == Approx( 0.0 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Approximate comparisons with mixed numeric types
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 1.0f == Approx( 1 ) )
|
|
with expansion:
|
|
1.0f == Approx( 1.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 == Approx( dZero) )
|
|
with expansion:
|
|
0 == Approx( 0.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 == Approx( dSmall ).margin( 0.001 ) )
|
|
with expansion:
|
|
0 == Approx( 0.00001 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 1.234f == Approx( dMedium ) )
|
|
with expansion:
|
|
1.234f == Approx( 1.234 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( dMedium == Approx( 1.234f ) )
|
|
with expansion:
|
|
1.234 == Approx( 1.2339999676 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
A section
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
A section
|
|
Another section
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
A section
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assertions then sections
|
|
A section
|
|
Another other section
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Assorted miscellaneous tests
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( INFINITY == Approx(INFINITY) )
|
|
with expansion:
|
|
inff == Approx( inf )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( NAN != Approx(NAN) )
|
|
with expansion:
|
|
nanf != Approx( nan )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( NAN == Approx(NAN) )
|
|
with expansion:
|
|
!(nanf == Approx( nan ))
|
|
|
|
-------------------------------------------------------------------------------
|
|
Bitfields can be captured (#1027)
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( y.v == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 == y.v )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Capture and info messages
|
|
Capture should stringify like assertions
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
with message:
|
|
i := 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Capture and info messages
|
|
Info should NOT stringify the way assertions do
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
with message:
|
|
3
|
|
|
|
-------------------------------------------------------------------------------
|
|
Character pretty printing
|
|
Specifically escaped
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( tab == '\t' )
|
|
with expansion:
|
|
'\t' == '\t'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( newline == '\n' )
|
|
with expansion:
|
|
'\n' == '\n'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( carr_return == '\r' )
|
|
with expansion:
|
|
'\r' == '\r'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( form_feed == '\f' )
|
|
with expansion:
|
|
'\f' == '\f'
|
|
|
|
-------------------------------------------------------------------------------
|
|
Character pretty printing
|
|
General chars
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( space == ' ' )
|
|
with expansion:
|
|
' ' == ' '
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == chars[i] )
|
|
with expansion:
|
|
'a' == 'a'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == chars[i] )
|
|
with expansion:
|
|
'z' == 'z'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == chars[i] )
|
|
with expansion:
|
|
'A' == 'A'
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == chars[i] )
|
|
with expansion:
|
|
'Z' == 'Z'
|
|
|
|
-------------------------------------------------------------------------------
|
|
Character pretty printing
|
|
Low ASCII
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( null_terminator == '\0' )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == i )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == i )
|
|
with expansion:
|
|
3 == 3
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == i )
|
|
with expansion:
|
|
4 == 4
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == i )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
-------------------------------------------------------------------------------
|
|
Commas in various macros are allowed
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
|
|
with expansion:
|
|
{ 1, 2 } == { 1, 2 }
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
|
|
with expansion:
|
|
{ 1, 2 } == { 1, 2 }
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
|
|
with expansion:
|
|
!({ 1, 2 } == { 1, 2, 3 })
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
|
|
with expansion:
|
|
!({ 1, 2 } == { 1, 2, 3 })
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_NOFAIL( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
|
|
with expansion:
|
|
{ 1, 2 } == { 1, 2 }
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECKED_IF( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
|
|
with expansion:
|
|
{ 1, 2 } == { 1, 2 }
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( true )
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECKED_ELSE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
|
|
with expansion:
|
|
{ 1, 2 } == { 1, 2 }
|
|
|
|
-------------------------------------------------------------------------------
|
|
Comparing function pointers
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a )
|
|
with expansion:
|
|
0x<hex digits>
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a == &foo )
|
|
with expansion:
|
|
0x<hex digits> == 0x<hex digits>
|
|
|
|
-------------------------------------------------------------------------------
|
|
Comparison with explicitly convertible types
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td == Approx(10.0) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) == Approx( 10.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(10.0) == td )
|
|
with expansion:
|
|
Approx( 10.0 ) == StrongDoubleTypedef(10)
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td != Approx(11.0) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) != Approx( 11.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(11.0) != td )
|
|
with expansion:
|
|
Approx( 11.0 ) != StrongDoubleTypedef(10)
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td <= Approx(10.0) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) <= Approx( 10.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td <= Approx(11.0) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) <= Approx( 11.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(10.0) <= td )
|
|
with expansion:
|
|
Approx( 10.0 ) <= StrongDoubleTypedef(10)
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(9.0) <= td )
|
|
with expansion:
|
|
Approx( 9.0 ) <= StrongDoubleTypedef(10)
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td >= Approx(9.0) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) >= Approx( 9.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( td >= Approx(td) )
|
|
with expansion:
|
|
StrongDoubleTypedef(10) >= Approx( 10.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(td) >= td )
|
|
with expansion:
|
|
Approx( 10.0 ) >= StrongDoubleTypedef(10)
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx(11.0) >= td )
|
|
with expansion:
|
|
Approx( 11.0 ) >= StrongDoubleTypedef(10)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Comparisons between ints where one side is computed
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 54 == 6*9 )
|
|
with expansion:
|
|
54 == 54
|
|
|
|
-------------------------------------------------------------------------------
|
|
Comparisons between unsigned ints and negative signed ints match c++ standard
|
|
behaviour
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ( -1 > 2u ) )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( -1 > 2u )
|
|
with expansion:
|
|
-1 > 2
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ( 2u < -1 ) )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( 2u < -1 )
|
|
with expansion:
|
|
2 < -1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ( minInt > 2u ) )
|
|
with expansion:
|
|
true
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( minInt > 2u )
|
|
with expansion:
|
|
-2147483648 > 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Comparisons with int literals don't warn when mixing signed/ unsigned
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ui == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( l == 3 )
|
|
with expansion:
|
|
3 == 3
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ul == 4 )
|
|
with expansion:
|
|
4 == 4
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( c == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( uc == 6 )
|
|
with expansion:
|
|
6 == 6
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 1 == i )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 2 == ui )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 3 == l )
|
|
with expansion:
|
|
3 == 3
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 4 == ul )
|
|
with expansion:
|
|
4 == 4
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 5 == c )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 6 == uc )
|
|
with expansion:
|
|
6 == 6
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( (std::numeric_limits<uint32_t>::max)() > ul )
|
|
with expansion:
|
|
4294967295 (0x<hex digits>) > 4
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
Default scale is invisible to comparison
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 101.000001 != Approx(100).epsilon(0.01) )
|
|
with expansion:
|
|
101.000001 != Approx( 100.0 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::pow(10, -5) != Approx(std::pow(10, -7)) )
|
|
with expansion:
|
|
0.00001 != Approx( 0.0000001 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
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)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Epsilon only applies to Approx's value
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 101.01 != Approx(100).epsilon(0.01) )
|
|
with expansion:
|
|
101.01 != Approx( 100.0 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
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 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Equality checks that should succeed
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven == 7 )
|
|
with expansion:
|
|
7 == 7
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
|
|
with expansion:
|
|
9.1f == Approx( 9.1000003815 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
|
|
with expansion:
|
|
3.1415926535 == Approx( 3.1415926535 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello == "hello" )
|
|
with expansion:
|
|
"hello" == "hello"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( "hello" == data.str_hello )
|
|
with expansion:
|
|
"hello" == "hello"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( x == Approx( 1.3 ) )
|
|
with expansion:
|
|
1.3 == Approx( 1.3 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Equals
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), Equals("this string contains 'ABC' as a substring", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" equals: "this string contains
|
|
'abc' as a substring" (case insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
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:
|
|
{?} special exception has value of 1
|
|
|
|
Matchers.tests.cpp:<line number>: FAILED:
|
|
REQUIRE_THROWS_MATCHES( throws(4), SpecialException, ExceptionMatcher{1} )
|
|
with expansion:
|
|
{?} special exception has value of 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception matchers that succeed
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS_MATCHES( throws(1), SpecialException, ExceptionMatcher{1} )
|
|
with expansion:
|
|
{?} special exception has value of 1
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_MATCHES( throws(2), SpecialException, ExceptionMatcher{2} )
|
|
with expansion:
|
|
{?} special exception has value of 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception messages can be tested for
|
|
exact match
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
|
|
with expansion:
|
|
"expected exception" equals: "expected exception"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception messages can be tested for
|
|
different case
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) )
|
|
with expansion:
|
|
"expected exception" equals: "expected exception" (case insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Exception messages can be tested for
|
|
wildcarded
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) )
|
|
with expansion:
|
|
"expected exception" starts with: "expected"
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) )
|
|
with expansion:
|
|
"expected exception" ends with: "exception"
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) )
|
|
with expansion:
|
|
"expected exception" contains: "except"
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) )
|
|
with expansion:
|
|
"expected exception" contains: "except" (case insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
Factorials are computed
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Factorial(0) == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Factorial(1) == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Factorial(2) == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Factorial(3) == 6 )
|
|
with expansion:
|
|
6 == 6
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Factorial(10) == 3628800 )
|
|
with expansion:
|
|
3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: double
|
|
Margin
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1., WithinAbs(1., 0) )
|
|
with expansion:
|
|
1.0 is within 0.0 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0., WithinAbs(1., 1) )
|
|
with expansion:
|
|
0.0 is within 1.0 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0., !WithinAbs(1., 0.99) )
|
|
with expansion:
|
|
0.0 not is within 0.99 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0., !WithinAbs(1., 0.99) )
|
|
with expansion:
|
|
0.0 not is within 0.99 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) )
|
|
with expansion:
|
|
nanf not is within 0.0 of nan
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: double
|
|
ULPs
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1., WithinULP(1., 0) )
|
|
with expansion:
|
|
1.0 is within 0 ULPs of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1., 2.), WithinULP(1., 1) )
|
|
with expansion:
|
|
1.0 is within 1 ULPs of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1., 0.), WithinULP(1., 1) )
|
|
with expansion:
|
|
1.0 is within 1 ULPs of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1., 2.), !WithinULP(1., 0) )
|
|
with expansion:
|
|
1.0 not is within 0 ULPs of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1., WithinULP(1., 0) )
|
|
with expansion:
|
|
1.0 is within 0 ULPs of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( -0., WithinULP(0., 0) )
|
|
with expansion:
|
|
-0.0 is within 0 ULPs of 0.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !WithinULP(NAN, 123) )
|
|
with expansion:
|
|
nanf not is within 123 ULPs of nanf
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: double
|
|
Composed
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1., WithinAbs(1., 0.5) || WithinULP(2., 1) )
|
|
with expansion:
|
|
1.0 ( is within 0.5 of 1.0 or is within 1 ULPs of 2.0 )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1., WithinAbs(2., 0.5) || WithinULP(1., 0) )
|
|
with expansion:
|
|
1.0 ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0 )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) )
|
|
with expansion:
|
|
nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: double
|
|
Constructor validation
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( WithinAbs(1., 0.) )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( WithinAbs(1., -1.), std::domain_error )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( WithinULP(1., 0) )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( WithinULP(1., -1), std::domain_error )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: float
|
|
Margin
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1.f, WithinAbs(1.f, 0) )
|
|
with expansion:
|
|
1.0f is within 0.0 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0.f, WithinAbs(1.f, 1) )
|
|
with expansion:
|
|
0.0f is within 1.0 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) )
|
|
with expansion:
|
|
0.0f not is within 0.9900000095 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) )
|
|
with expansion:
|
|
0.0f not is within 0.9900000095 of 1.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 0.f, WithinAbs(-0.f, 0) )
|
|
with expansion:
|
|
0.0f is within 0.0 of -0.0
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) )
|
|
with expansion:
|
|
nanf not is within 0.0 of nan
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: float
|
|
ULPs
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1.f, WithinULP(1.f, 0) )
|
|
with expansion:
|
|
1.0f is within 0 ULPs of 1.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1.f, 2.f), WithinULP(1.f, 1) )
|
|
with expansion:
|
|
1.0f is within 1 ULPs of 1.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1.f, 0.f), WithinULP(1.f, 1) )
|
|
with expansion:
|
|
1.0f is within 1 ULPs of 1.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( std::nextafter(1.f, 2.f), !WithinULP(1.f, 0) )
|
|
with expansion:
|
|
1.0f not is within 0 ULPs of 1.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1.f, WithinULP(1.f, 0) )
|
|
with expansion:
|
|
1.0f is within 0 ULPs of 1.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( -0.f, WithinULP(0.f, 0) )
|
|
with expansion:
|
|
-0.0f is within 0 ULPs of 0.0f
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !WithinULP(NAN, 123) )
|
|
with expansion:
|
|
nanf not is within 123 ULPs of nanf
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: float
|
|
Composed
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1.f, WithinAbs(1.f, 0.5) || WithinULP(1.f, 1) )
|
|
with expansion:
|
|
1.0f ( is within 0.5 of 1.0 or is within 1 ULPs of 1.0f )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( 1.f, WithinAbs(2.f, 0.5) || WithinULP(1.f, 0) )
|
|
with expansion:
|
|
1.0f ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0f )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) )
|
|
with expansion:
|
|
nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Floating point matchers: float
|
|
Constructor validation
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( WithinAbs(1.f, 0.f) )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( WithinAbs(1.f, -1.f), std::domain_error )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( WithinULP(1.f, 0) )
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( WithinULP(1.f, -1), std::domain_error )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Greater-than inequalities with different epsilons
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d >= Approx( 1.22 ) )
|
|
with expansion:
|
|
1.23 >= Approx( 1.22 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d >= Approx( 1.23 ) )
|
|
with expansion:
|
|
1.23 >= Approx( 1.23 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( d >= Approx( 1.24 ) )
|
|
with expansion:
|
|
!(1.23 >= Approx( 1.24 ))
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) )
|
|
with expansion:
|
|
1.23 >= Approx( 1.24 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
INFO and WARN do not abort tests
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
warning:
|
|
this is a message
|
|
this is a warning
|
|
|
|
|
|
No assertions in test case 'INFO and WARN do not abort tests'
|
|
|
|
-------------------------------------------------------------------------------
|
|
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>:
|
|
PASSED:
|
|
CHECK( a == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
with message:
|
|
this message may be logged later
|
|
|
|
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
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( a == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
with messages:
|
|
this message may be logged later
|
|
this message should be logged
|
|
and this, but later
|
|
but not this
|
|
|
|
-------------------------------------------------------------------------------
|
|
INFO is reset for each loop
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
0 < 10
|
|
with messages:
|
|
current counter 0
|
|
i := 0
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
1 < 10
|
|
with messages:
|
|
current counter 1
|
|
i := 1
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
2 < 10
|
|
with messages:
|
|
current counter 2
|
|
i := 2
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
3 < 10
|
|
with messages:
|
|
current counter 3
|
|
i := 3
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
4 < 10
|
|
with messages:
|
|
current counter 4
|
|
i := 4
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
5 < 10
|
|
with messages:
|
|
current counter 5
|
|
i := 5
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
6 < 10
|
|
with messages:
|
|
current counter 6
|
|
i := 6
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
7 < 10
|
|
with messages:
|
|
current counter 7
|
|
i := 7
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
8 < 10
|
|
with messages:
|
|
current counter 8
|
|
i := 8
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( i < 10 )
|
|
with expansion:
|
|
9 < 10
|
|
with messages:
|
|
current counter 9
|
|
i := 9
|
|
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
Inequality checks that should succeed
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven != 6 )
|
|
with expansion:
|
|
7 != 6
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven != 8 )
|
|
with expansion:
|
|
7 != 8
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
|
|
with expansion:
|
|
9.1f != Approx( 9.1099996567 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
|
|
with expansion:
|
|
9.1f != Approx( 9.0 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one != Approx( 1 ) )
|
|
with expansion:
|
|
9.1f != Approx( 1.0 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one != Approx( 0 ) )
|
|
with expansion:
|
|
9.1f != Approx( 0.0 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.double_pi != Approx( 3.1415 ) )
|
|
with expansion:
|
|
3.1415926535 != Approx( 3.1415 )
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello != "goodbye" )
|
|
with expansion:
|
|
"hello" != "goodbye"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello != "hell" )
|
|
with expansion:
|
|
"hello" != "hell"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello != "hello1" )
|
|
with expansion:
|
|
"hello" != "hello1"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello.size() != 6 )
|
|
with expansion:
|
|
5 != 6
|
|
|
|
-------------------------------------------------------------------------------
|
|
Less-than inequalities with different epsilons
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d <= Approx( 1.24 ) )
|
|
with expansion:
|
|
1.23 <= Approx( 1.24 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d <= Approx( 1.23 ) )
|
|
with expansion:
|
|
1.23 <= Approx( 1.23 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_FALSE( d <= Approx( 1.22 ) )
|
|
with expansion:
|
|
!(1.23 <= Approx( 1.22 ))
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) )
|
|
with expansion:
|
|
1.23 <= Approx( 1.22 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
ManuallyRegistered
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
was called
|
|
|
|
-------------------------------------------------------------------------------
|
|
Matchers can be (AllOf) composed with the && operator
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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" )
|
|
|
|
Matchers.tests.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 ||
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.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
|
|
-------------------------------------------------------------------------------
|
|
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>:
|
|
PASSED:
|
|
REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
|
|
with expansion:
|
|
"expected exception" equals: "expected exception"
|
|
|
|
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
|
|
|
|
|
|
No assertions in test case 'Nice descriptive name'
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
Objects that evaluated in boolean contexts can be checked
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( True )
|
|
with expansion:
|
|
{?}
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( !False )
|
|
with expansion:
|
|
true
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_FALSE( False )
|
|
with expansion:
|
|
!{?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
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"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Ordering comparison checks that should succeed
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven < 8 )
|
|
with expansion:
|
|
7 < 8
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven > 6 )
|
|
with expansion:
|
|
7 > 6
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven > 0 )
|
|
with expansion:
|
|
7 > 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven > -1 )
|
|
with expansion:
|
|
7 > -1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven >= 7 )
|
|
with expansion:
|
|
7 >= 7
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven >= 6 )
|
|
with expansion:
|
|
7 >= 6
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven <= 7 )
|
|
with expansion:
|
|
7 <= 7
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.int_seven <= 8 )
|
|
with expansion:
|
|
7 <= 8
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one > 9 )
|
|
with expansion:
|
|
9.1f > 9
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one < 10 )
|
|
with expansion:
|
|
9.1f < 10
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.float_nine_point_one < 9.2 )
|
|
with expansion:
|
|
9.1f < 9.2
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello <= "hello" )
|
|
with expansion:
|
|
"hello" <= "hello"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello >= "hello" )
|
|
with expansion:
|
|
"hello" >= "hello"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello < "hellp" )
|
|
with expansion:
|
|
"hello" < "hellp"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello < "zebra" )
|
|
with expansion:
|
|
"hello" < "zebra"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data.str_hello > "hellm" )
|
|
with expansion:
|
|
"hello" > "hellm"
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 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
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Empty test spec should have no filters
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Test spec from empty string should have no filters
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches(tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Test spec from just a comma should have no filters
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Test spec from name should have one filter
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Test spec from quoted name should have one filter
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Test spec from name should have one filter
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Wildcard at the start
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( parseTestSpec( "*a" ).matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Wildcard at the end
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( parseTestSpec( "a*" ).matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Wildcard at both ends
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Redundant wildcard at the start
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Redundant wildcard at the end
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Redundant wildcard at both ends
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Wildcard at both ends, redundant at start
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Just wildcard
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Single tag
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Single tag, two matches
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Two tags
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Two tags, spare separated
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Wildcarded name and tag
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
Single tag exclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
One tag exclusion and one tag inclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
One tag exclusion and one wldcarded name inclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
One tag exclusion, using exclude:, and one wldcarded name inclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
name exclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
wildcarded name exclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
wildcarded name exclusion with tag inclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
wildcarded name exclusion, using exclude:, with tag inclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
two wildcarded names
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
empty tag
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
empty quoted name
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parse test names and tags
|
|
quoted string followed by tag exclusion
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.hasFilters() == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcA ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcB ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcC ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( spec.matches( tcD ) == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Parsing a std::pair
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( (std::pair<int, int>( 1, 2 )) == aNicePair )
|
|
with expansion:
|
|
{?} == {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
Pointers can be compared to null
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( p == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( p == pNULL )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( p != 0 )
|
|
with expansion:
|
|
0x<hex digits> != 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cp != 0 )
|
|
with expansion:
|
|
0x<hex digits> != 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cpc != 0 )
|
|
with expansion:
|
|
0x<hex digits> != 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( returnsNull() == 0 )
|
|
with expansion:
|
|
{null string} == 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( returnsConstNull() == 0 )
|
|
with expansion:
|
|
{null string} == 0
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0 != p )
|
|
with expansion:
|
|
0 != 0x<hex digits>
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
empty args don't cause a crash
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.processName == "" )
|
|
with expansion:
|
|
"" == ""
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
default - no arguments
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.processName == "test" )
|
|
with expansion:
|
|
"test" == "test"
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.shouldDebugBreak == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.abortAfter == -1 )
|
|
with expansion:
|
|
-1 == -1
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.noThrow == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.reporterNames.empty() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
test lists
|
|
1 test
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cfg.testSpec().matches(fakeTestCase("notIncluded")) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.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:
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.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 ~
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( cfg.testSpec().matches(fakeTestCase("alwaysIncluded")) )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
reporter
|
|
-r/console
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-r", "console"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.reporterNames[0] == "console" )
|
|
with expansion:
|
|
"console" == "console"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
reporter
|
|
-r/xml
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-r", "xml"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.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
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-r", "xml", "-r", "junit"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.reporterNames.size() == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.reporterNames[0] == "xml" )
|
|
with expansion:
|
|
"xml" == "xml"
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.reporterNames[1] == "junit" )
|
|
with expansion:
|
|
"junit" == "junit"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
reporter
|
|
--reporter/junit
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--reporter", "junit"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.reporterNames[0] == "junit" )
|
|
with expansion:
|
|
"junit" == "junit"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
debugger
|
|
-b
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-b"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.shouldDebugBreak == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
debugger
|
|
--break
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--break"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.shouldDebugBreak )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
abort
|
|
-a aborts after first failure
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-a"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.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
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-x", "2"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.abortAfter == 2 )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
abort
|
|
-x must be numeric
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( !result )
|
|
with expansion:
|
|
true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( result.errorMessage(), Contains("convert") && Contains("oops") )
|
|
with expansion:
|
|
"Unable to convert 'oops' to destination type" ( contains: "convert" and
|
|
contains: "oops" )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
nothrow
|
|
-e
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-e"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.noThrow )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
nothrow
|
|
--nothrow
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--nothrow"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.noThrow )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
output filename
|
|
-o filename
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-o", "filename.ext"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.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
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--out", "filename.ext"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.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
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "-abe"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.abortAfter == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.shouldDebugBreak )
|
|
with expansion:
|
|
true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( config.noThrow == true )
|
|
with expansion:
|
|
true == true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
use-colour
|
|
without option
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.useColour == UseColour::Auto )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
use-colour
|
|
auto
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--use-colour", "auto"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.useColour == UseColour::Auto )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
use-colour
|
|
yes
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--use-colour", "yes"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.useColour == UseColour::Yes )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
use-colour
|
|
no
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( cli.parse({"test", "--use-colour", "no"}) )
|
|
with expansion:
|
|
{?}
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( config.useColour == UseColour::No )
|
|
with expansion:
|
|
2 == 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Process can be configured on command line
|
|
use-colour
|
|
error
|
|
-------------------------------------------------------------------------------
|
|
CmdLine.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( !result )
|
|
with expansion:
|
|
true
|
|
|
|
CmdLine.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( result.errorMessage(), Contains( "colour mode must be one of" ) )
|
|
with expansion:
|
|
"colour mode must be one of: auto, yes or no. 'wrong' not recognised"
|
|
contains: "colour mode must be one of"
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
SUCCEED counts as a test pass
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
this is a success
|
|
|
|
-------------------------------------------------------------------------------
|
|
SUCCEED does not require an argument
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
|
|
methods
|
|
Given: No operations precede me
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( before == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
|
|
methods
|
|
Given: No operations precede me
|
|
When: We get the count
|
|
Then: Subsequently values are higher
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( after > before )
|
|
with expansion:
|
|
1 > 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Do that thing with the thing
|
|
Given: This stuff exists
|
|
When: I do this
|
|
Then: it should do this
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( itDoesThis() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Do that thing with the thing
|
|
Given: This stuff exists
|
|
When: I do this
|
|
Then: it should do this
|
|
And: do that
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( itDoesThat() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: This is a really long scenario name to see how the list command deals
|
|
with wrapping
|
|
Given: A section name that is so long that it cannot fit in a single
|
|
console width
|
|
When: The test headers are printed as part of the normal running of the
|
|
scenario
|
|
Then: The, deliberately very long and overly verbose (you see what I did
|
|
there?) section names must wrap, along with an indent
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
boo!
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Vector resizing affects size and capacity
|
|
Given: an empty vector
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Vector resizing affects size and capacity
|
|
Given: an empty vector
|
|
When: it is made larger
|
|
Then: the size and capacity go up
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 10 )
|
|
with expansion:
|
|
10 == 10
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 10 )
|
|
with expansion:
|
|
10 >= 10
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Vector resizing affects size and capacity
|
|
Given: an empty vector
|
|
When: it is made larger
|
|
Then: the size and capacity go up
|
|
And when: it is made smaller again
|
|
Then: the size goes down but the capacity stays the same
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 10 )
|
|
with expansion:
|
|
10 >= 10
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Vector resizing affects size and capacity
|
|
Given: an empty vector
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
Scenario: Vector resizing affects size and capacity
|
|
Given: an empty vector
|
|
When: we reserve more space
|
|
Then: The capacity is increased but the size remains the same
|
|
-------------------------------------------------------------------------------
|
|
BDD.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 10 )
|
|
with expansion:
|
|
10 >= 10
|
|
|
|
BDD.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
A string sent directly to stdout
|
|
A string sent directly to stderr
|
|
A string sent to stderr via clog
|
|
-------------------------------------------------------------------------------
|
|
Sends stuff to stdout and stderr
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'Sends stuff to stdout and stderr'
|
|
|
|
-------------------------------------------------------------------------------
|
|
Some simple comparisons between doubles
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d == Approx( 1.23 ) )
|
|
with expansion:
|
|
1.23 == Approx( 1.23 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d != Approx( 1.22 ) )
|
|
with expansion:
|
|
1.23 != Approx( 1.22 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d != Approx( 1.24 ) )
|
|
with expansion:
|
|
1.23 != Approx( 1.24 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx( d ) == 1.23 )
|
|
with expansion:
|
|
Approx( 1.23 ) == 1.23
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx( d ) != 1.22 )
|
|
with expansion:
|
|
Approx( 1.23 ) != 1.22
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Approx( d ) != 1.24 )
|
|
with expansion:
|
|
Approx( 1.23 ) != 1.24
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( INFINITY == Approx(INFINITY) )
|
|
with expansion:
|
|
inff == Approx( inf )
|
|
|
|
Message from section one
|
|
-------------------------------------------------------------------------------
|
|
Standard output from all sections is reported
|
|
one
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in section 'one'
|
|
|
|
Message from section two
|
|
-------------------------------------------------------------------------------
|
|
Standard output from all sections is reported
|
|
two
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in 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)
|
|
|
|
-------------------------------------------------------------------------------
|
|
Static arrays are convertible to string
|
|
Single item
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify(singular) == "{ 1 }" )
|
|
with expansion:
|
|
"{ 1 }" == "{ 1 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Static arrays are convertible to string
|
|
Multiple
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify(arr) == "{ 3, 2, 1 }" )
|
|
with expansion:
|
|
"{ 3, 2, 1 }" == "{ 3, 2, 1 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Static arrays are convertible to string
|
|
Non-trivial inner items
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" )
|
|
with expansion:
|
|
"{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
|
|
==
|
|
"{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
String matchers
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( testStringForMatching(), Contains("string") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "string"
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( testStringForMatching(), Contains("string", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "string" (case
|
|
insensitive)
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), Contains("abc") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "abc"
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), Contains("aBC", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" contains: "abc" (case insensitive)
|
|
insensitive)
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), StartsWith("this") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" starts with: "this"
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), StartsWith("THIS", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" starts with: "this" (case
|
|
insensitive)
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), EndsWith("substring") )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" ends with: "substring"
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( testStringForMatching(), EndsWith(" SuBsTrInG", Catch::CaseSensitive::No) )
|
|
with expansion:
|
|
"this string contains 'abc' as a substring" ends with: " substring" (case
|
|
insensitive)
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Empty string
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( empty.empty() )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( empty.size() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::strcmp( empty.c_str(), "" ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
From string literal
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s.empty() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isSubstring( s ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::strcmp( rawChars, "hello" ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
From string literal
|
|
c_str() does not cause copy
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isOwned( s ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s.c_str() == rawChars )
|
|
with expansion:
|
|
"hello" == "hello"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isOwned( s ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
From sub-string
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( original == "original" )
|
|
|
|
String.tests.cpp:<line number>: FAILED:
|
|
REQUIRE( isSubstring( original ) )
|
|
with expansion:
|
|
false
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Substrings
|
|
zero-based substring
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ss.empty() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ss.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::strcmp( ss.c_str(), "hello" ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ss == "hello" )
|
|
with expansion:
|
|
hello == "hello"
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Substrings
|
|
c_str() causes copy
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isSubstring( ss ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isOwned( ss ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( rawChars == data( s ) )
|
|
with expansion:
|
|
"hello world!" == "hello world!"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ss.c_str() != rawChars )
|
|
with expansion:
|
|
"hello" != "hello world!"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isSubstring( ss ) == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( isOwned( ss ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( data( ss ) != data( s ) )
|
|
with expansion:
|
|
"hello" != "hello world!"
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Substrings
|
|
non-zero-based substring
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ss.size() == 6 )
|
|
with expansion:
|
|
6 == 6
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( std::strcmp( ss.c_str(), "world!" ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Substrings
|
|
Pointer values of full refs should match
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s.c_str() == s2.c_str() )
|
|
with expansion:
|
|
"hello world!" == "hello world!"
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Substrings
|
|
Pointer values of substring refs should not match
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s.c_str() != ss.c_str() )
|
|
with expansion:
|
|
"hello world!" != "hello"
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Comparisons
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( StringRef("hello") == StringRef("hello") )
|
|
with expansion:
|
|
hello == hello
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( StringRef("hello") != StringRef("cello") )
|
|
with expansion:
|
|
hello != cello
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
from std::string
|
|
implicitly constructed
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr == "a standard string" )
|
|
with expansion:
|
|
a standard string == "a standard string"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr.size() == stdStr.size() )
|
|
with expansion:
|
|
17 == 17
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
from std::string
|
|
explicitly constructed
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr == "a standard string" )
|
|
with expansion:
|
|
a standard string == "a standard string"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr.size() == stdStr.size() )
|
|
with expansion:
|
|
17 == 17
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
from std::string
|
|
assigned
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr == "a standard string" )
|
|
with expansion:
|
|
a standard string == "a standard string"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( sr.size() == stdStr.size() )
|
|
with expansion:
|
|
17 == 17
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
to std::string
|
|
implicitly constructed
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr == "a stringref" )
|
|
with expansion:
|
|
"a stringref" == "a stringref"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr.size() == sr.size() )
|
|
with expansion:
|
|
11 == 11
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
to std::string
|
|
explicitly constructed
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr == "a stringref" )
|
|
with expansion:
|
|
"a stringref" == "a stringref"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr.size() == sr.size() )
|
|
with expansion:
|
|
11 == 11
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
to std::string
|
|
assigned
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr == "a stringref" )
|
|
with expansion:
|
|
"a stringref" == "a stringref"
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( stdStr.size() == sr.size() )
|
|
with expansion:
|
|
11 == 11
|
|
|
|
-------------------------------------------------------------------------------
|
|
StringRef
|
|
Counting utf-8 codepoints
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ascii.numberOfCharacters() == ascii.size() )
|
|
with expansion:
|
|
39 == 39
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( simpleu8.numberOfCharacters() == 30 )
|
|
with expansion:
|
|
30 == 30
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( emojis.numberOfCharacters() == 9 )
|
|
with expansion:
|
|
9 == 9
|
|
|
|
-------------------------------------------------------------------------------
|
|
Stringifying std::chrono::duration helpers
|
|
-------------------------------------------------------------------------------
|
|
ToStringChrono.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( minute == seconds )
|
|
with expansion:
|
|
1 m == 60 s
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( hour != seconds )
|
|
with expansion:
|
|
1 h != 60 s
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( micro != milli )
|
|
with expansion:
|
|
1 us != 1 ms
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( nano != micro )
|
|
with expansion:
|
|
1 ns != 1 us
|
|
|
|
-------------------------------------------------------------------------------
|
|
Stringifying std::chrono::duration with weird ratios
|
|
-------------------------------------------------------------------------------
|
|
ToStringChrono.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( half_minute != femto_second )
|
|
with expansion:
|
|
1 [30/1]s != 1 fs
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( pico_second != atto_second )
|
|
with expansion:
|
|
1 ps != 1 as
|
|
|
|
-------------------------------------------------------------------------------
|
|
Stringifying std::chrono::time_point<system_clock>
|
|
-------------------------------------------------------------------------------
|
|
ToStringChrono.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringChrono.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( now != later )
|
|
with expansion:
|
|
{iso8601-timestamp}
|
|
!=
|
|
{iso8601-timestamp}
|
|
|
|
-------------------------------------------------------------------------------
|
|
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;
|
|
}
|
|
"
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tag alias can be registered against tag patterns
|
|
The same tag alias can only be registered once
|
|
-------------------------------------------------------------------------------
|
|
TagAlias.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
TagAlias.tests.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]"
|
|
|
|
TagAlias.tests.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"
|
|
|
|
TagAlias.tests.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"
|
|
|
|
TagAlias.tests.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]
|
|
-------------------------------------------------------------------------------
|
|
TagAlias.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
TagAlias.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )
|
|
|
|
TagAlias.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
|
|
|
|
TagAlias.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )
|
|
|
|
TagAlias.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Test case with one argument
|
|
-------------------------------------------------------------------------------
|
|
VariadicMacros.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
VariadicMacros.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
no assertions
|
|
|
|
-------------------------------------------------------------------------------
|
|
Test enum bit values
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( 0x<hex digits> == bit30and31 )
|
|
with expansion:
|
|
3221225472 (0x<hex digits>) == 3221225472
|
|
|
|
-------------------------------------------------------------------------------
|
|
The NO_FAIL macro reports a failure but does not fail the test
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>:
|
|
FAILED - but was ok:
|
|
CHECK_NOFAIL( 1 == 2 )
|
|
|
|
|
|
No assertions in test case 'The NO_FAIL macro reports a failure but does not fail the test'
|
|
|
|
-------------------------------------------------------------------------------
|
|
This test 'should' fail but doesn't
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
oops!
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
successfully close one section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
fail one section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
fail one section
|
|
re-enter after failed section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
fail one section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
successfully close one section, then find another
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
successfully close one section, then find another
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ctx.completedCycle() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase3.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1c.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2c.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase3.isSuccessfullyCompleted() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
open a nested section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.index() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
close outer section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
close outer section
|
|
Re-enter for second generation
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.index() == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.index() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
Start a new inner section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.index() == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.index() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
-------------------------------------------------------------------------------
|
|
Tracker
|
|
start a generator
|
|
Fail an inner section
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2.isSuccessfullyCompleted() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.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
|
|
-------------------------------------------------------------------------------
|
|
PartTracker.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.index() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2b.isOpen() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1b.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1b.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase2.isComplete() == false )
|
|
with expansion:
|
|
false == false
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase3.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1c.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1c.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1c.index() == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2c.isOpen() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s2c.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( g1c.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s1c.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
PartTracker.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCase3.isComplete() )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
Unexpected exceptions can be translated
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>: FAILED:
|
|
due to unexpected exception with message:
|
|
3.14
|
|
|
|
-------------------------------------------------------------------------------
|
|
Use a custom approx
|
|
-------------------------------------------------------------------------------
|
|
Approx.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d == approx( 1.23 ) )
|
|
with expansion:
|
|
1.23 == Approx( 1.23 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d == approx( 1.22 ) )
|
|
with expansion:
|
|
1.23 == Approx( 1.22 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d == approx( 1.24 ) )
|
|
with expansion:
|
|
1.23 == Approx( 1.24 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( d != approx( 1.25 ) )
|
|
with expansion:
|
|
1.23 != Approx( 1.25 )
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( approx( d ) == 1.23 )
|
|
with expansion:
|
|
Approx( 1.23 ) == 1.23
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( approx( d ) == 1.22 )
|
|
with expansion:
|
|
Approx( 1.23 ) == 1.22
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( approx( d ) == 1.24 )
|
|
with expansion:
|
|
Approx( 1.23 ) == 1.24
|
|
|
|
Approx.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( approx( d ) != 1.25 )
|
|
with expansion:
|
|
Approx( 1.23 ) != 1.25
|
|
|
|
-------------------------------------------------------------------------------
|
|
Variadic macros
|
|
Section with one argument
|
|
-------------------------------------------------------------------------------
|
|
VariadicMacros.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
VariadicMacros.tests.cpp:<line number>:
|
|
PASSED:
|
|
with message:
|
|
no assertions
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers
|
|
Contains (element)
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, VectorContains(1) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: 1
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, VectorContains(2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers
|
|
Contains (vector)
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, Contains(v2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: { 1, 2 }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, Contains(v2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, Contains(empty) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Contains: { }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( empty, Contains(empty) )
|
|
with expansion:
|
|
{ } Contains: { }
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers
|
|
Contains (element), composed
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, VectorContains(1) && VectorContains(2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } ( Contains: 1 and Contains: 2 )
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers
|
|
Equals
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, Equals(v) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Equals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( empty, Equals(empty) )
|
|
with expansion:
|
|
{ } Equals: { }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, Equals(v2) )
|
|
with expansion:
|
|
{ 1, 2, 3 } Equals: { 1, 2, 3 }
|
|
|
|
-------------------------------------------------------------------------------
|
|
Vector matchers
|
|
UnorderedEquals
|
|
-------------------------------------------------------------------------------
|
|
Matchers.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( v, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ 1, 2, 3 } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_THAT( empty, UnorderedEquals(empty) )
|
|
with expansion:
|
|
{ } UnorderedEquals: { }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( permuted, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
Matchers.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THAT( permuted, UnorderedEquals(v) )
|
|
with expansion:
|
|
{ 2, 3, 1 } UnorderedEquals: { 1, 2, 3 }
|
|
|
|
-------------------------------------------------------------------------------
|
|
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 checked exceptions are thrown they can be expected or unexpected
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS_AS( thisThrows(), std::domain_error )
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_NOTHROW( thisDoesntThrow() )
|
|
|
|
Exception.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE_THROWS( thisThrows() )
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
When unchecked exceptions are thrown, but caught, they do not affect the test
|
|
-------------------------------------------------------------------------------
|
|
Exception.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'When unchecked exceptions are thrown, but caught, they do not affect the test'
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
|
|
No assertions in test case 'Where the LHS is not a simple value'
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
|
|
No assertions in test case 'Where there is more to the expression after the RHS'
|
|
|
|
-------------------------------------------------------------------------------
|
|
X/level/0/a
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
X/level/0/b
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
X/level/1/a
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
X/level/1/b
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
normal string
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "normal string" ) == "normal string" )
|
|
with expansion:
|
|
"normal string" == "normal string"
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
empty string
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "" ) == "" )
|
|
with expansion:
|
|
"" == ""
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
string with ampersand
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "smith & jones" ) == "smith & jones" )
|
|
with expansion:
|
|
"smith & jones" == "smith & jones"
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
string with less-than
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "smith < jones" ) == "smith < jones" )
|
|
with expansion:
|
|
"smith < jones" == "smith < jones"
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
string with greater-than
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "smith > jones" ) == "smith > jones" )
|
|
with expansion:
|
|
"smith > jones" == "smith > jones"
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" )
|
|
with expansion:
|
|
"smith ]]> jones"
|
|
==
|
|
"smith ]]> jones"
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
string with quotes
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
|
|
with expansion:
|
|
"don't "quote" me on that"
|
|
==
|
|
"don't "quote" me on that"
|
|
|
|
Xml.tests.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)
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "[\x01]" ) == "[\\x01]" )
|
|
with expansion:
|
|
"[\x01]" == "[\x01]"
|
|
|
|
-------------------------------------------------------------------------------
|
|
XmlEncode
|
|
string with control char (x7F)
|
|
-------------------------------------------------------------------------------
|
|
Xml.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Xml.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" )
|
|
with expansion:
|
|
"[\x7F]" == "[\x7F]"
|
|
|
|
-------------------------------------------------------------------------------
|
|
array<int, N> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( empty ) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( oneValue ) == "{ 42 }" )
|
|
with expansion:
|
|
"{ 42 }" == "{ 42 }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( twoValues ) == "{ 42, 250 }" )
|
|
with expansion:
|
|
"{ 42, 250 }" == "{ 42, 250 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
atomic if
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( x == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
boolean member
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( obj.prop != 0 )
|
|
with expansion:
|
|
0x<hex digits> != 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
checkedElse
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECKED_ELSE( flag )
|
|
with expansion:
|
|
true
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCheckedElse( true ) )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECKED_IF( flag )
|
|
with expansion:
|
|
true
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( testCheckedIf( true ) )
|
|
with expansion:
|
|
true
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
comparisons between const int variables
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( unsigned_char_var == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( unsigned_short_var == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( unsigned_int_var == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( unsigned_long_var == 1 )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
comparisons between int variables
|
|
-------------------------------------------------------------------------------
|
|
Condition.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( long_var == unsigned_char_var )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( long_var == unsigned_short_var )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( long_var == unsigned_int_var )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
Condition.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( long_var == unsigned_long_var )
|
|
with expansion:
|
|
1 == 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
even more nested SECTION tests
|
|
c
|
|
d (leaf)
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
even more nested SECTION tests
|
|
c
|
|
e (leaf)
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
even more nested SECTION tests
|
|
f (leaf)
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
first tag
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'first tag'
|
|
|
|
loose text artifact
|
|
-------------------------------------------------------------------------------
|
|
has printf
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'has printf'
|
|
|
|
-------------------------------------------------------------------------------
|
|
just failure
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Message.tests.cpp:<line number>: FAILED:
|
|
explicitly with message:
|
|
Previous info should not be seen
|
|
|
|
-------------------------------------------------------------------------------
|
|
just info
|
|
-------------------------------------------------------------------------------
|
|
Message.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'just info'
|
|
|
|
-------------------------------------------------------------------------------
|
|
long long
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
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>:
|
|
PASSED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
with message:
|
|
Testing if fib[2] (2) 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>:
|
|
PASSED:
|
|
CHECK( ( fib[i] % 2 ) == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
with message:
|
|
Testing if fib[5] (8) 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
|
|
|
|
-------------------------------------------------------------------------------
|
|
more nested SECTION tests
|
|
s1
|
|
s3
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a != b )
|
|
with expansion:
|
|
1 != 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
more nested SECTION tests
|
|
s1
|
|
s4
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a < b )
|
|
with expansion:
|
|
1 < 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
nested SECTION tests
|
|
s1
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a != b )
|
|
with expansion:
|
|
1 != 2
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( b != a )
|
|
with expansion:
|
|
2 != 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
nested SECTION tests
|
|
s1
|
|
s2
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a != b )
|
|
with expansion:
|
|
1 != 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
non streamable - with conv. op
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( s == "7" )
|
|
with expansion:
|
|
"7" == "7"
|
|
|
|
-------------------------------------------------------------------------------
|
|
non-copyable objects
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ti == typeid(int) )
|
|
with expansion:
|
|
{?} == {?}
|
|
|
|
-------------------------------------------------------------------------------
|
|
not allowed
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
null strings
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( makeString( false ) != static_cast<char*>(0) )
|
|
with expansion:
|
|
"valid string" != {null string}
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( makeString( true ) == static_cast<char*>(0) )
|
|
with expansion:
|
|
{null string} == {null string}
|
|
|
|
-------------------------------------------------------------------------------
|
|
null_ptr
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ptr.get() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
pair<pair<int,const char *,pair<std::string,int> > -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringPair.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringPair.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
|
|
with expansion:
|
|
"{ { 42, "Arthur" }, { "Ford", 24 } }"
|
|
==
|
|
"{ { 42, "Arthur" }, { "Ford", 24 } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
pointer to class
|
|
-------------------------------------------------------------------------------
|
|
Tricky.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Tricky.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( p == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
random SECTION tests
|
|
s1
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a != b )
|
|
with expansion:
|
|
1 != 2
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( b != a )
|
|
with expansion:
|
|
2 != 1
|
|
|
|
-------------------------------------------------------------------------------
|
|
random SECTION tests
|
|
s2
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( a != b )
|
|
with expansion:
|
|
1 != 2
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace single char
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( letters, "b", "z" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == "azcdefcg" )
|
|
with expansion:
|
|
"azcdefcg" == "azcdefcg"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace two chars
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( letters, "c", "z" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == "abzdefzg" )
|
|
with expansion:
|
|
"abzdefzg" == "abzdefzg"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace first char
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( letters, "a", "z" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == "zbcdefcg" )
|
|
with expansion:
|
|
"zbcdefcg" == "zbcdefcg"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace last char
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( letters, "g", "z" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == "abcdefcz" )
|
|
with expansion:
|
|
"abcdefcz" == "abcdefcz"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace all chars
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( letters, letters, "replaced" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == "replaced" )
|
|
with expansion:
|
|
"replaced" == "replaced"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
replace no chars
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK_FALSE( Catch::replaceInPlace( letters, "x", "z" ) )
|
|
with expansion:
|
|
!false
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( letters == letters )
|
|
with expansion:
|
|
"abcdefcg" == "abcdefcg"
|
|
|
|
-------------------------------------------------------------------------------
|
|
replaceInPlace
|
|
escape '
|
|
-------------------------------------------------------------------------------
|
|
String.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( Catch::replaceInPlace( s, "'", "|'" ) )
|
|
with expansion:
|
|
true
|
|
|
|
String.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( s == "didn|'t" )
|
|
with expansion:
|
|
"didn|'t" == "didn|'t"
|
|
|
|
-------------------------------------------------------------------------------
|
|
second tag
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
|
|
No assertions in test case 'second tag'
|
|
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::map is convertible string
|
|
empty
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( emptyMap ) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::map is convertible string
|
|
single item
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }" )
|
|
with expansion:
|
|
"{ { "one", 1 } }" == "{ { "one", 1 } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::map is convertible string
|
|
several items
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }" )
|
|
with expansion:
|
|
"{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
|
|
==
|
|
"{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::pair<int,const std::string> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringPair.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringPair.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }" )
|
|
with expansion:
|
|
"{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::pair<int,std::string> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringPair.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringPair.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }" )
|
|
with expansion:
|
|
"{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::set is convertible string
|
|
empty
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( emptySet ) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::set is convertible string
|
|
single item
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( set ) == "{ \"one\" }" )
|
|
with expansion:
|
|
"{ "one" }" == "{ "one" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::set is convertible string
|
|
several items
|
|
-------------------------------------------------------------------------------
|
|
ToStringGeneral.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringGeneral.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }" )
|
|
with expansion:
|
|
"{ "abc", "def", "ghi" }"
|
|
==
|
|
"{ "abc", "def", "ghi" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
std::vector<std::pair<std::string,int> > -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringPair.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringPair.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }" )
|
|
with expansion:
|
|
"{ { "green", 55 } }"
|
|
==
|
|
"{ { "green", 55 } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
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"
|
|
|
|
-------------------------------------------------------------------------------
|
|
stringify( has_maker )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker>" )
|
|
with expansion:
|
|
"StringMaker<has_maker>"
|
|
==
|
|
"StringMaker<has_maker>"
|
|
|
|
-------------------------------------------------------------------------------
|
|
stringify( has_maker_and_toString )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker_and_operator>" )
|
|
with expansion:
|
|
"StringMaker<has_maker_and_operator>"
|
|
==
|
|
"StringMaker<has_maker_and_operator>"
|
|
|
|
-------------------------------------------------------------------------------
|
|
stringify( has_operator )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_operator )" )
|
|
with expansion:
|
|
"operator<<( has_operator )"
|
|
==
|
|
"operator<<( has_operator )"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString on const wchar_t const pointer returns the string contents
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result == "\"wide load\"" )
|
|
with expansion:
|
|
""wide load"" == ""wide load""
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString on const wchar_t pointer returns the string contents
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result == "\"wide load\"" )
|
|
with expansion:
|
|
""wide load"" == ""wide load""
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString on wchar_t const pointer returns the string contents
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result == "\"wide load\"" )
|
|
with expansion:
|
|
""wide load"" == ""wide load""
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString on wchar_t returns the string contents
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( result == "\"wide load\"" )
|
|
with expansion:
|
|
""wide load"" == ""wide load""
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString streamable range
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(streamable_range{}) == "op<<(streamable_range)" )
|
|
with expansion:
|
|
"op<<(streamable_range)"
|
|
==
|
|
"op<<(streamable_range)"
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(stringmaker_range{}) == "stringmaker(streamable_range)" )
|
|
with expansion:
|
|
"stringmaker(streamable_range)"
|
|
==
|
|
"stringmaker(streamable_range)"
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(just_range{}) == "{ 1, 2, 3, 4 }" )
|
|
with expansion:
|
|
"{ 1, 2, 3, 4 }" == "{ 1, 2, 3, 4 }"
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(disabled_range{}) == "{?}" )
|
|
with expansion:
|
|
"{?}" == "{?}"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString( vectors<has_maker> )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker> }" )
|
|
with expansion:
|
|
"{ StringMaker<has_maker> }"
|
|
==
|
|
"{ StringMaker<has_maker> }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString( vectors<has_maker_and_operator> )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker_and_operator> }" )
|
|
with expansion:
|
|
"{ StringMaker<has_maker_and_operator> }"
|
|
==
|
|
"{ StringMaker<has_maker_and_operator> }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString( vectors<has_operator> )
|
|
-------------------------------------------------------------------------------
|
|
ToStringWhich.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringWhich.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify( v ) == "{ operator<<( has_operator ) }" )
|
|
with expansion:
|
|
"{ operator<<( has_operator ) }"
|
|
==
|
|
"{ operator<<( has_operator ) }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString(enum class w/operator<<)
|
|
-------------------------------------------------------------------------------
|
|
EnumToString.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" )
|
|
with expansion:
|
|
"E2/V0" == "E2/V0"
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" )
|
|
with expansion:
|
|
"E2/V1" == "E2/V1"
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" )
|
|
with expansion:
|
|
"Unknown enum value 10"
|
|
==
|
|
"Unknown enum value 10"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString(enum class)
|
|
-------------------------------------------------------------------------------
|
|
EnumToString.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e0) == "0" )
|
|
with expansion:
|
|
"0" == "0"
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e1) == "1" )
|
|
with expansion:
|
|
"1" == "1"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString(enum w/operator<<)
|
|
-------------------------------------------------------------------------------
|
|
EnumToString.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e0) == "E2{0}" )
|
|
with expansion:
|
|
"E2{0}" == "E2{0}"
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e1) == "E2{1}" )
|
|
with expansion:
|
|
"E2{1}" == "E2{1}"
|
|
|
|
-------------------------------------------------------------------------------
|
|
toString(enum)
|
|
-------------------------------------------------------------------------------
|
|
EnumToString.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e0) == "0" )
|
|
with expansion:
|
|
"0" == "0"
|
|
|
|
EnumToString.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( ::Catch::Detail::stringify(e1) == "1" )
|
|
with expansion:
|
|
"1" == "1"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ }" == ::Catch::Detail::stringify(type{}) )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ }" == ::Catch::Detail::stringify(value) )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<float,int>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) )
|
|
with expansion:
|
|
"1.2f" == "1.2f"
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) )
|
|
with expansion:
|
|
"{ 1.2f, 0 }" == "{ 1.2f, 0 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<int>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) )
|
|
with expansion:
|
|
"{ 0 }" == "{ 0 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<0,int,const char *>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) )
|
|
with expansion:
|
|
"{ 0, 42, "Catch me" }"
|
|
==
|
|
"{ 0, 42, "Catch me" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<string,string>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) )
|
|
with expansion:
|
|
"{ "hello", "world" }"
|
|
==
|
|
"{ "hello", "world" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
tuple<tuple<int>,tuple<>,float>
|
|
-------------------------------------------------------------------------------
|
|
ToStringTuple.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringTuple.tests.cpp:<line number>:
|
|
PASSED:
|
|
CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) )
|
|
with expansion:
|
|
"{ { 42 }, { }, 1.2f }"
|
|
==
|
|
"{ { 42 }, { }, 1.2f }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vec<vec<string,alloc>> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(v) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" )
|
|
with expansion:
|
|
"{ { "hello" }, { "world" } }"
|
|
==
|
|
"{ { "hello" }, { "world" } }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vector<bool> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(bools) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(bools) == "{ true }" )
|
|
with expansion:
|
|
"{ true }" == "{ true }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(bools) == "{ true, false }" )
|
|
with expansion:
|
|
"{ true, false }" == "{ true, false }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vector<int,allocator> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
|
|
with expansion:
|
|
"{ 42 }" == "{ 42 }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
|
|
with expansion:
|
|
"{ 42, 250 }" == "{ 42, 250 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vector<int> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
|
|
with expansion:
|
|
"{ 42 }" == "{ 42 }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
|
|
with expansion:
|
|
"{ 42, 250 }" == "{ 42, 250 }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vector<string> -> toString
|
|
-------------------------------------------------------------------------------
|
|
ToStringVector.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ }" )
|
|
with expansion:
|
|
"{ }" == "{ }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\" }" )
|
|
with expansion:
|
|
"{ "hello" }" == "{ "hello" }"
|
|
|
|
ToStringVector.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }" )
|
|
with expansion:
|
|
"{ "hello", "world" }"
|
|
==
|
|
"{ "hello", "world" }"
|
|
|
|
-------------------------------------------------------------------------------
|
|
vectors can be sized and resized
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 5 )
|
|
with expansion:
|
|
5 >= 5
|
|
|
|
-------------------------------------------------------------------------------
|
|
vectors can be sized and resized
|
|
resizing bigger changes size and capacity
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 10 )
|
|
with expansion:
|
|
10 == 10
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 10 )
|
|
with expansion:
|
|
10 >= 10
|
|
|
|
-------------------------------------------------------------------------------
|
|
vectors can be sized and resized
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() == 0 )
|
|
with expansion:
|
|
0 == 0
|
|
|
|
-------------------------------------------------------------------------------
|
|
vectors can be sized and resized
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 10 )
|
|
with expansion:
|
|
10 >= 10
|
|
|
|
-------------------------------------------------------------------------------
|
|
vectors can be sized and resized
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.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
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.size() == 5 )
|
|
with expansion:
|
|
5 == 5
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
REQUIRE( v.capacity() >= 5 )
|
|
with expansion:
|
|
5 >= 5
|
|
|
|
-------------------------------------------------------------------------------
|
|
xmlentitycheck
|
|
embedded xml
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
-------------------------------------------------------------------------------
|
|
xmlentitycheck
|
|
encoded chars
|
|
-------------------------------------------------------------------------------
|
|
Misc.tests.cpp:<line number>
|
|
...............................................................................
|
|
|
|
Misc.tests.cpp:<line number>:
|
|
PASSED:
|
|
|
|
===============================================================================
|
|
test cases: 198 | 133 passed | 61 failed | 4 failed as expected
|
|
assertions: 1010 | 869 passed | 120 failed | 21 failed as expected
|
|
|