Filters: "*" ~[!nonportable] ~[!benchmark] ~[approvals] Randomness seeded to: 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ is a Catch2 v host application. Run with -? for options ------------------------------------------------------------------------------- #1455 - INFO and WARN can start with a linebreak ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: warning: This warning message starts with a linebreak This would not be caught previously Nor would this ------------------------------------------------------------------------------- #1514: stderr/stdout is not captured in tests aborted by an exception ------------------------------------------------------------------------------- Tricky.tests.cpp: ............................................................................... Tricky.tests.cpp:: FAILED: explicitly with message: 1514 ------------------------------------------------------------------------------- #2615 - Throwing in constructor generator fails test case but does not abort ------------------------------------------------------------------------------- Generators.tests.cpp: ............................................................................... Generators.tests.cpp:: FAILED: due to unexpected exception with message: failure to init ------------------------------------------------------------------------------- #748 - captures with unexpected exceptions outside assertions ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with messages: answer := 42 expected exception ------------------------------------------------------------------------------- #748 - captures with unexpected exceptions inside REQUIRE_NOTHROW ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: REQUIRE_NOTHROW( thisThrows() ) due to unexpected exception with messages: answer := 42 expected exception ------------------------------------------------------------------------------- #835 -- errno should not be touched by Catch2 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: CHECK( f() == 0 ) with expansion: 1 == 0 ------------------------------------------------------------------------------- 'Not' checks that should fail ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: CHECK( false != false ) Condition.tests.cpp:: FAILED: CHECK( true != true ) Condition.tests.cpp:: FAILED: CHECK( !true ) with expansion: false Condition.tests.cpp:: FAILED: CHECK_FALSE( true ) with expansion: !true Condition.tests.cpp:: FAILED: CHECK( !trueValue ) with expansion: false Condition.tests.cpp:: FAILED: CHECK_FALSE( trueValue ) with expansion: !true Condition.tests.cpp:: FAILED: CHECK( !(1 == 1) ) with expansion: false Condition.tests.cpp:: FAILED: CHECK_FALSE( 1 == 1 ) ------------------------------------------------------------------------------- A METHOD_AS_TEST_CASE based test run that fails ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( s == "world" ) with expansion: "hello" == "world" ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2::m_a.size() == 1 ) with expansion: 0 == 1 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - Template_Foo ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2::m_a.size() == 1 ) with expansion: 0 == 1 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2::m_a.size() == 1 ) with expansion: 0 == 1 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD based test run that fails - std::vector ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2::m_a.size() == 1 ) with expansion: 0 == 1 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - Template_Foo_2 ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2{}.m_a.size() < 2 ) with expansion: 6 < 2 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - Template_Foo_2 ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2{}.m_a.size() < 2 ) with expansion: 2 < 2 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - std::array ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2{}.m_a.size() < 2 ) with expansion: 6 < 2 ------------------------------------------------------------------------------- A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails - std::array ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture_2{}.m_a.size() < 2 ) with expansion: 2 < 2 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD based test run that fails - double ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture::m_a == 2 ) with expansion: 1.0 == 2 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD based test run that fails - float ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture::m_a == 2 ) with expansion: 1.0f == 2 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD based test run that fails - int ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Template_Fixture::m_a == 2 ) with expansion: 1 == 2 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 1 ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Nttp_Fixture::value == 0 ) with expansion: 1 == 0 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 3 ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Nttp_Fixture::value == 0 ) with expansion: 3 == 0 ------------------------------------------------------------------------------- A TEMPLATE_TEST_CASE_METHOD_SIG based test run that fails - 6 ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( Nttp_Fixture::value == 0 ) with expansion: 6 == 0 ------------------------------------------------------------------------------- A TEST_CASE_METHOD based test run that fails ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( m_a == 2 ) with expansion: 1 == 2 ------------------------------------------------------------------------------- A TEST_CASE_PERSISTENT_FIXTURE based test run that fails Second partial run ------------------------------------------------------------------------------- Class.tests.cpp: ............................................................................... Class.tests.cpp:: FAILED: REQUIRE( m_a == 0 ) with expansion: 1 == 0 ------------------------------------------------------------------------------- A couple of nested sections followed by a failure ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: explicitly with message: to infinity and beyond ------------------------------------------------------------------------------- A failing expression with a non streamable type is still captured ------------------------------------------------------------------------------- Tricky.tests.cpp: ............................................................................... Tricky.tests.cpp:: FAILED: CHECK( &o1 == &o2 ) with expansion: 0x == 0x Tricky.tests.cpp:: FAILED: CHECK( o1 == o2 ) with expansion: {?} == {?} ------------------------------------------------------------------------------- An unchecked exception reports the line of the last assertion ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: {Unknown expression after the reported line} due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- Contains string matcher ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No ) ) with expansion: "this string contains 'abc' as a substring" contains: "not there" (case insensitive) Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), ContainsSubstring( "STRING" ) ) with expansion: "this string contains 'abc' as a substring" contains: "STRING" ------------------------------------------------------------------------------- Custom exceptions can be translated when testing for nothrow ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: REQUIRE_NOTHROW( throwCustom() ) due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- Custom exceptions can be translated when testing for throwing as something else ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: 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: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: custom std exception ------------------------------------------------------------------------------- Empty generators can SKIP in constructor ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: explicitly with message: This generator is empty ------------------------------------------------------------------------------- EndsWith string matcher ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), EndsWith( "Substring" ) ) with expansion: "this string contains 'abc' as a substring" ends with: "Substring" Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), EndsWith( "this", Catch::CaseSensitive::No ) ) with expansion: "this string contains 'abc' as a substring" ends with: "this" (case insensitive) ------------------------------------------------------------------------------- Equality checks that should fail ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: CHECK( data.int_seven == 6 ) with expansion: 7 == 6 Condition.tests.cpp:: FAILED: CHECK( data.int_seven == 8 ) with expansion: 7 == 8 Condition.tests.cpp:: FAILED: CHECK( data.int_seven == 0 ) with expansion: 7 == 0 Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one == Approx( 9.11f ) ) with expansion: 9.100000381f == Approx( 9.10999965667724609 ) Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one == Approx( 9.0f ) ) with expansion: 9.100000381f == Approx( 9.0 ) Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one == Approx( 1 ) ) with expansion: 9.100000381f == Approx( 1.0 ) Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one == Approx( 0 ) ) with expansion: 9.100000381f == Approx( 0.0 ) Condition.tests.cpp:: FAILED: CHECK( data.double_pi == Approx( 3.1415 ) ) with expansion: 3.14159265350000005 == Approx( 3.14150000000000018 ) Condition.tests.cpp:: FAILED: CHECK( data.str_hello == "goodbye" ) with expansion: "hello" == "goodbye" Condition.tests.cpp:: FAILED: CHECK( data.str_hello == "hell" ) with expansion: "hello" == "hell" Condition.tests.cpp:: FAILED: CHECK( data.str_hello == "hello1" ) with expansion: "hello" == "hello1" Condition.tests.cpp:: FAILED: CHECK( data.str_hello.size() == 6 ) with expansion: 5 == 6 Condition.tests.cpp:: FAILED: CHECK( x == Approx( 1.301 ) ) with expansion: 1.30000000000000027 == Approx( 1.30099999999999993 ) ------------------------------------------------------------------------------- Equals string matcher ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: 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:: 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: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{ 1 } ) because no exception was thrown where one was expected: Matchers.tests.cpp:: 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: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THROWS_MATCHES( throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 } ) due to unexpected exception with message: Unknown exception Matchers.tests.cpp:: 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: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THROWS_MATCHES( throwsSpecialException( 3 ), SpecialException, ExceptionMatcher{ 1 } ) with expansion: SpecialException::what special exception has value of 1 Matchers.tests.cpp:: FAILED: REQUIRE_THROWS_MATCHES( throwsSpecialException( 4 ), SpecialException, ExceptionMatcher{ 1 } ) with expansion: SpecialException::what special exception has value of 1 ------------------------------------------------------------------------------- Expected exceptions that don't throw or unexpected exceptions fail the test ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: CHECK_THROWS_AS( thisThrows(), std::string ) due to unexpected exception with message: expected exception Exception.tests.cpp:: FAILED: CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error ) because no exception was thrown where one was expected: Exception.tests.cpp:: FAILED: CHECK_NOTHROW( thisThrows() ) due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- FAIL aborts the test ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: This is a failure ------------------------------------------------------------------------------- FAIL does not require an argument ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: ------------------------------------------------------------------------------- FAIL_CHECK does not abort the test ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: This is a failure Message.tests.cpp:: warning: This message appears in the output ------------------------------------------------------------------------------- INFO and UNSCOPED_INFO can stream multiple arguments ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with messages: This info has multiple parts. This unscoped info has multiple parts. Show infos! ------------------------------------------------------------------------------- INFO and WARN do not abort tests ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: warning: this is a warning ------------------------------------------------------------------------------- INFO gets logged on failure ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: REQUIRE( a == 1 ) with expansion: 2 == 1 with messages: this message should be logged so should this ------------------------------------------------------------------------------- INFO gets logged on failure, even if captured before successful assertions ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: CHECK( a == 1 ) with expansion: 2 == 1 with messages: this message may be logged later this message should be logged Message.tests.cpp:: FAILED: CHECK( a == 0 ) with expansion: 2 == 0 with messages: this message may be logged later this message should be logged and this, but later ------------------------------------------------------------------------------- INFO is reset for each loop ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: REQUIRE( i < 10 ) with expansion: 10 < 10 with messages: current counter 10 i := 10 ------------------------------------------------------------------------------- Incomplete AssertionHandler ------------------------------------------------------------------------------- AssertionHandler.tests.cpp: ............................................................................... AssertionHandler.tests.cpp:: FAILED: REQUIRE( Dummy ) due to unexpected exception with message: Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE ------------------------------------------------------------------------------- Inequality checks that should fail ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: CHECK( data.int_seven != 7 ) with expansion: 7 != 7 Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one != Approx( 9.1f ) ) with expansion: 9.100000381f != Approx( 9.10000038146972656 ) Condition.tests.cpp:: FAILED: CHECK( data.double_pi != Approx( 3.1415926535 ) ) with expansion: 3.14159265350000005 != Approx( 3.14159265350000005 ) Condition.tests.cpp:: FAILED: CHECK( data.str_hello != "hello" ) with expansion: "hello" != "hello" Condition.tests.cpp:: FAILED: CHECK( data.str_hello.size() != 5 ) with expansion: 5 != 5 ------------------------------------------------------------------------------- Matchers can be composed with both && and || - failing ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" ) ) with expansion: "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" ) ------------------------------------------------------------------------------- Matchers can be negated (Not) with the ! operator - failing ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), !ContainsSubstring( "substring" ) ) with expansion: "this string contains 'abc' as a substring" not contains: "substring" ------------------------------------------------------------------------------- Mayfail test case with nested sections A 1 ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Mayfail test case with nested sections A 2 ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Mayfail test case with nested sections B 1 ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Mayfail test case with nested sections B 2 ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Mismatching exception messages failing the test ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) with expansion: "expected exception" equals: "should fail" ------------------------------------------------------------------------------- Nice descriptive name ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: warning: This one ran ------------------------------------------------------------------------------- Non-std exceptions can be translated ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: custom exception ------------------------------------------------------------------------------- Ordering comparison checks that should fail ------------------------------------------------------------------------------- Condition.tests.cpp: ............................................................................... Condition.tests.cpp:: FAILED: CHECK( data.int_seven > 7 ) with expansion: 7 > 7 Condition.tests.cpp:: FAILED: CHECK( data.int_seven < 7 ) with expansion: 7 < 7 Condition.tests.cpp:: FAILED: CHECK( data.int_seven > 8 ) with expansion: 7 > 8 Condition.tests.cpp:: FAILED: CHECK( data.int_seven < 6 ) with expansion: 7 < 6 Condition.tests.cpp:: FAILED: CHECK( data.int_seven < 0 ) with expansion: 7 < 0 Condition.tests.cpp:: FAILED: CHECK( data.int_seven < -1 ) with expansion: 7 < -1 Condition.tests.cpp:: FAILED: CHECK( data.int_seven >= 8 ) with expansion: 7 >= 8 Condition.tests.cpp:: FAILED: CHECK( data.int_seven <= 6 ) with expansion: 7 <= 6 Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one < 9 ) with expansion: 9.100000381f < 9 Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one > 10 ) with expansion: 9.100000381f > 10 Condition.tests.cpp:: FAILED: CHECK( data.float_nine_point_one > 9.2 ) with expansion: 9.100000381f > 9.19999999999999929 Condition.tests.cpp:: FAILED: CHECK( data.str_hello > "hello" ) with expansion: "hello" > "hello" Condition.tests.cpp:: FAILED: CHECK( data.str_hello < "hello" ) with expansion: "hello" < "hello" Condition.tests.cpp:: FAILED: CHECK( data.str_hello > "hellp" ) with expansion: "hello" > "hellp" Condition.tests.cpp:: FAILED: CHECK( data.str_hello > "z" ) with expansion: "hello" > "z" Condition.tests.cpp:: FAILED: CHECK( data.str_hello < "hellm" ) with expansion: "hello" < "hellm" Condition.tests.cpp:: FAILED: CHECK( data.str_hello < "a" ) with expansion: "hello" < "a" Condition.tests.cpp:: FAILED: CHECK( data.str_hello >= "z" ) with expansion: "hello" >= "z" Condition.tests.cpp:: FAILED: CHECK( data.str_hello <= "a" ) with expansion: "hello" <= "a" ------------------------------------------------------------------------------- Output from all sections is reported one ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: Message from section one ------------------------------------------------------------------------------- Output from all sections is reported two ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: Message from section two ------------------------------------------------------------------------------- Reconstruction should be based on stringification: #914 ------------------------------------------------------------------------------- Decomposition.tests.cpp: ............................................................................... Decomposition.tests.cpp:: FAILED: CHECK( truthy(false) ) with expansion: Hey, its truthy! ------------------------------------------------------------------------------- Regex string matcher ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: 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:: 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:: FAILED: CHECK_THAT( testStringForMatching(), Matches( "this string contains 'abc' as a" ) ) with expansion: "this string contains 'abc' as a substring" matches "this string contains 'abc' as a" case sensitively A string sent directly to stdout A string sent directly to stderr A string sent to stderr via clog Message from section one Message from section two ------------------------------------------------------------------------------- StartsWith string matcher ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), StartsWith( "This String" ) ) with expansion: "this string contains 'abc' as a substring" starts with: "This String" Matchers.tests.cpp:: FAILED: CHECK_THAT( testStringForMatching(), StartsWith( "string", Catch::CaseSensitive::No ) ) with expansion: "this string contains 'abc' as a substring" starts with: "string" (case insensitive) ------------------------------------------------------------------------------- Tabs and newlines show in output ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: CHECK( s1 == s2 ) with expansion: "if ($b == 10) { $a = 20; }" == "if ($b == 10) { $a = 20; } " ------------------------------------------------------------------------------- Testing checked-if 2 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Testing checked-if 3 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: ------------------------------------------------------------------------------- Testing checked-if 4 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: {Unknown expression after the reported line} due to unexpected exception with message: Uncaught exception should fail! ------------------------------------------------------------------------------- Testing checked-if 5 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: {Unknown expression after the reported line} due to unexpected exception with message: Uncaught exception should fail! ------------------------------------------------------------------------------- Thrown string literals are translated ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: For some reason someone is throwing a string literal! ------------------------------------------------------------------------------- Unexpected exceptions can be translated ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: 3.14000000000000012 ------------------------------------------------------------------------------- Vector Approx matcher -- failing Empty and non empty vectors are not approx equal ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( empty, Approx( t1 ) ) with expansion: { } is approx: { 1.0, 2.0 } ------------------------------------------------------------------------------- Vector Approx matcher -- failing Just different vectors ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( v1, Approx( v2 ) ) with expansion: { 2.0, 4.0, 6.0 } is approx: { 1.0, 3.0, 5.0 } ------------------------------------------------------------------------------- Vector matchers that fail Contains (element) ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( v, VectorContains( -1 ) ) with expansion: { 1, 2, 3 } Contains: -1 Matchers.tests.cpp:: FAILED: CHECK_THAT( empty, VectorContains( 1 ) ) with expansion: { } Contains: 1 ------------------------------------------------------------------------------- Vector matchers that fail Contains (vector) ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( empty, Contains( v ) ) with expansion: { } Contains: { 1, 2, 3 } Matchers.tests.cpp:: FAILED: CHECK_THAT( v, Contains( v2 ) ) with expansion: { 1, 2, 3 } Contains: { 1, 2, 4 } ------------------------------------------------------------------------------- Vector matchers that fail Equals ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( v, Equals( v2 ) ) with expansion: { 1, 2, 3 } Equals: { 1, 2 } Matchers.tests.cpp:: FAILED: CHECK_THAT( v2, Equals( v ) ) with expansion: { 1, 2 } Equals: { 1, 2, 3 } Matchers.tests.cpp:: FAILED: CHECK_THAT( empty, Equals( v ) ) with expansion: { } Equals: { 1, 2, 3 } Matchers.tests.cpp:: FAILED: CHECK_THAT( v, Equals( empty ) ) with expansion: { 1, 2, 3 } Equals: { } ------------------------------------------------------------------------------- Vector matchers that fail UnorderedEquals ------------------------------------------------------------------------------- Matchers.tests.cpp: ............................................................................... Matchers.tests.cpp:: FAILED: CHECK_THAT( v, UnorderedEquals( empty ) ) with expansion: { 1, 2, 3 } UnorderedEquals: { } Matchers.tests.cpp:: FAILED: CHECK_THAT( empty, UnorderedEquals( v ) ) with expansion: { } UnorderedEquals: { 1, 2, 3 } Matchers.tests.cpp:: FAILED: CHECK_THAT( permuted, UnorderedEquals( v ) ) with expansion: { 1, 3 } UnorderedEquals: { 1, 2, 3 } Matchers.tests.cpp:: FAILED: CHECK_THAT( permuted, UnorderedEquals( v ) ) with expansion: { 3, 1 } UnorderedEquals: { 1, 2, 3 } ------------------------------------------------------------------------------- When unchecked exceptions are thrown directly they are always failures ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- When unchecked exceptions are thrown during a CHECK the test should continue ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: CHECK( thisThrows() == 0 ) due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- When unchecked exceptions are thrown during a REQUIRE the test should abort fail ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: 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: ............................................................................... Exception.tests.cpp:: FAILED: CHECK( thisThrows() == 0 ) due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- When unchecked exceptions are thrown from sections they are always failures section name ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- a succeeding test can still be skipped ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- checkedElse, failing ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: REQUIRE( testCheckedElse( false ) ) with expansion: false ------------------------------------------------------------------------------- checkedIf, failing ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: REQUIRE( testCheckedIf( false ) ) with expansion: false ------------------------------------------------------------------------------- dynamic skipping works with generators ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: explicitly with message: skipping because answer = 41 ------------------------------------------------------------------------------- dynamic skipping works with generators ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: explicitly with message: skipping because answer = 43 ------------------------------------------------------------------------------- failed assertions before SKIP cause test case to fail ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: FAILED: CHECK( 3 == 4 ) Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- failing for some generator values causes entire test case to fail ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: FAILED: ------------------------------------------------------------------------------- failing for some generator values causes entire test case to fail ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- failing for some generator values causes entire test case to fail ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: FAILED: ------------------------------------------------------------------------------- failing for some generator values causes entire test case to fail ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- failing in some unskipped sections causes entire test case to fail skipped ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- failing in some unskipped sections causes entire test case to fail not skipped ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: FAILED: loose text artifact ------------------------------------------------------------------------------- just failure ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: Previous info should not be seen ------------------------------------------------------------------------------- just failure after unscoped info ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: explicitly with message: previous unscoped info SHOULD not be seen ------------------------------------------------------------------------------- looped SECTION tests b is currently: 0 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: CHECK( b > a ) with expansion: 0 > 1 ------------------------------------------------------------------------------- looped SECTION tests b is currently: 1 ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: CHECK( b > a ) with expansion: 1 > 1 ------------------------------------------------------------------------------- looped tests ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[0] (1) is even Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[1] (1) is even Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[3] (3) is even Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[4] (5) is even Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[6] (13) is even Misc.tests.cpp:: FAILED: CHECK( ( fib[i] % 2 ) == 0 ) with expansion: 1 == 0 with message: Testing if fib[7] (21) is even ------------------------------------------------------------------------------- mix info, unscoped info and warning ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: warning: and warn may mix Message.tests.cpp:: warning: they are not cleared after warnings ------------------------------------------------------------------------------- more nested SECTION tests doesn't equal equal ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: REQUIRE( a == b ) with expansion: 1 == 2 a! b1! ------------------------------------------------------------------------------- nested sections can be skipped dynamically at runtime B B2 ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ! ------------------------------------------------------------------------------- not prints unscoped info from previous failures ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: REQUIRE( false ) with message: this SHOULD be seen ------------------------------------------------------------------------------- prints unscoped info on failure ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: REQUIRE( false ) with messages: this SHOULD be seen this SHOULD also be seen ------------------------------------------------------------------------------- prints unscoped info only for the first assertion ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: CHECK( false ) with message: this SHOULD be seen only ONCE ------------------------------------------------------------------------------- sections can be skipped dynamically at runtime skipped ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- send a single char to INFO ------------------------------------------------------------------------------- Misc.tests.cpp: ............................................................................... Misc.tests.cpp:: FAILED: REQUIRE( false ) with message: 3 ------------------------------------------------------------------------------- sends information to INFO ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: REQUIRE( false ) with messages: hi i := 7 ------------------------------------------------------------------------------- skipped tests can optionally provide a reason ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: explicitly with message: skipping because answer = 43 ------------------------------------------------------------------------------- stacks unscoped info in loops ------------------------------------------------------------------------------- Message.tests.cpp: ............................................................................... Message.tests.cpp:: FAILED: CHECK( false ) with messages: Count 1 to 3... 1 2 3 Message.tests.cpp:: FAILED: CHECK( false ) with messages: Count 4 to 6... 4 5 6 ------------------------------------------------------------------------------- tests can be skipped dynamically at runtime ------------------------------------------------------------------------------- Skip.tests.cpp: ............................................................................... Skip.tests.cpp:: SKIPPED: ------------------------------------------------------------------------------- thrown std::strings are translated ------------------------------------------------------------------------------- Exception.tests.cpp: ............................................................................... Exception.tests.cpp:: FAILED: due to unexpected exception with message: Why would you throw a std::string? =============================================================================== test cases: 419 | 327 passed | 71 failed | 7 skipped | 14 failed as expected assertions: 2252 | 2087 passed | 130 failed | 35 failed as expected