diff --git a/README.md b/README.md index 290b5327..ef706d53 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![catch logo](https://raw.github.com/philsquared/Catch/Integration/catch-logo-small.png) -## CATCH v0.9 build 31 (integration branch) +## CATCH v0.9 build 32 (integration branch) An automated test framework for C, C++ and Objective-C. This branch may contain code that is experimental or not yet fully tested. diff --git a/include/internal/catch_impl.hpp b/include/internal/catch_impl.hpp index f3f214b2..74350048 100644 --- a/include/internal/catch_impl.hpp +++ b/include/internal/catch_impl.hpp @@ -29,8 +29,8 @@ #include "catch_version.hpp" #include "catch_line_wrap.hpp" #include "catch_message.hpp" -#include "catch_legacy_reporter_adapter.hpp" +#include "../reporters/catch_legacy_reporter_adapter.hpp" #include "../reporters/catch_reporter_basic.hpp" #include "../reporters/catch_reporter_xml.hpp" #include "../reporters/catch_reporter_junit.hpp" diff --git a/include/internal/catch_version.hpp b/include/internal/catch_version.hpp index cfa1dbc6..7269815a 100644 --- a/include/internal/catch_version.hpp +++ b/include/internal/catch_version.hpp @@ -13,7 +13,7 @@ namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 0, 9, 31, "integration" ); + Version libraryVersion( 0, 9, 32, "integration" ); } #endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED diff --git a/projects/SelfTest/Baselines/approvedResults.txt b/projects/SelfTest/Baselines/approvedResults.txt index bb271dd3..aebdee5b 100644 --- a/projects/SelfTest/Baselines/approvedResults.txt +++ b/projects/SelfTest/Baselines/approvedResults.txt @@ -1,6 +1,6 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -CatchSelfTest is a CATCH v0.9 b31 (integration) host application. +CatchSelfTest is a CATCH v0.9 b32 (integration) host application. Run with -? for options ------------------------------------------------------------------------------- @@ -5452,7 +5452,7 @@ with message: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -CatchSelfTest is a CATCH v0.9 b31 (integration) host application. +CatchSelfTest is a CATCH v0.9 b32 (integration) host application. Run with -? for options ------------------------------------------------------------------------------- @@ -5994,20 +5994,35 @@ ExceptionTests.cpp:125 + +MessageTests.cpp:13 + MessageTests.cpp:14 + +MessageTests.cpp:23 + + +MessageTests.cpp:24 + MessageTests.cpp:26 + +MessageTests.cpp:35 + MessageTests.cpp:37 + +MessageTests.cpp:39 + MessageTests.cpp:41 @@ -6032,6 +6047,12 @@ Message from section two + +MessageTests.cpp:84 + + +MessageTests.cpp:85 + MessageTests.cpp:86 @@ -6061,21 +6082,39 @@ MiscTests.cpp:99 + +MiscTests.cpp:110 + MiscTests.cpp:111 + +MiscTests.cpp:110 + MiscTests.cpp:111 + +MiscTests.cpp:110 + MiscTests.cpp:111 + +MiscTests.cpp:110 + MiscTests.cpp:111 + +MiscTests.cpp:110 + MiscTests.cpp:111 + +MiscTests.cpp:110 + MiscTests.cpp:111 @@ -6090,6 +6129,12 @@ An error + +MiscTests.cpp:135 + + +MiscTests.cpp:137 + MiscTests.cpp:138 @@ -6114,6 +6159,9 @@ MiscTests.cpp:174 + +MiscTests.cpp:191 + MiscTests.cpp:192 @@ -8887,6 +8935,9 @@ GeneratorTests.cpp" line="40"> + + this is a message + this is a warning @@ -8896,6 +8947,12 @@ GeneratorTests.cpp" line="40"> + + this message should be logged + + + so should this + MessageTests.cpp" line="26"> a == 1 @@ -8915,6 +8972,9 @@ MessageTests.cpp" line="33"> 2 == 2 + + this message should be logged + MessageTests.cpp" line="37"> a == 1 @@ -8923,6 +8983,9 @@ MessageTests.cpp" line="37"> 2 == 1 + + and this, but later + MessageTests.cpp" line="41"> a == 0 @@ -9052,6 +9115,12 @@ MessageTests.cpp" line="86"> 9 < 10 + + current counter 10 + + + i := 10 + MessageTests.cpp" line="86"> i < 10 @@ -9229,6 +9298,9 @@ MiscTests.cpp" line="99"> + + Testing if fib[0] (1) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9237,6 +9309,9 @@ MiscTests.cpp" line="111"> 1 == 0 + + Testing if fib[1] (1) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9253,6 +9328,9 @@ MiscTests.cpp" line="111"> 0 == 0 + + Testing if fib[3] (3) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9261,6 +9339,9 @@ MiscTests.cpp" line="111"> 1 == 0 + + Testing if fib[4] (5) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9277,6 +9358,9 @@ MiscTests.cpp" line="111"> 0 == 0 + + Testing if fib[6] (13) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9285,6 +9369,9 @@ MiscTests.cpp" line="111"> 1 == 0 + + Testing if fib[7] (21) is even + MiscTests.cpp" line="111"> ( fib[i] % 2 ) == 0 @@ -9318,6 +9405,12 @@ MiscTests.cpp" line="130"> + + hi + + + i := 7 + MiscTests.cpp" line="138"> false @@ -9414,6 +9507,9 @@ MiscTests.cpp" line="174"> + + 3 + MiscTests.cpp" line="192"> false @@ -12451,6 +12547,7 @@ GeneratorTests.cpp:40: i->first == i->second-1 succeeded for: 2 == 2 [Finished: './succeeding/generators/2' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/message] +MessageTests.cpp:13: [info: this is a message] MessageTests.cpp:14: [warning: this is a warning] No assertions in test case, './succeeding/message' @@ -12463,12 +12560,16 @@ MessageTests.cpp:18: succeeded [Finished: './succeeding/succeed' All tests passed (1 assertion in 1 test case)] [Running: ./failing/message/info/1] +MessageTests.cpp:23: [info: this message should be logged] +MessageTests.cpp:24: [info: so should this] MessageTests.cpp:26: a == 1 failed for: 2 == 1 [Finished: './failing/message/info/1' 1 test case failed (1 assertion failed)] [Running: ./mixed/message/info/2] MessageTests.cpp:33: a == 2 succeeded for: 2 == 2 +MessageTests.cpp:35: [info: this message should be logged] MessageTests.cpp:37: a == 1 failed for: 2 == 1 +MessageTests.cpp:39: [info: and this, but later] MessageTests.cpp:41: a == 0 failed for: 2 == 0 MessageTests.cpp:45: a == 2 succeeded for: 2 == 2 [Finished: './mixed/message/info/2' 1 test case failed (2 of 4 assertions failed)] @@ -12516,6 +12617,8 @@ MessageTests.cpp:86: i < 10 succeeded for: 6 < 10 MessageTests.cpp:86: i < 10 succeeded for: 7 < 10 MessageTests.cpp:86: i < 10 succeeded for: 8 < 10 MessageTests.cpp:86: i < 10 succeeded for: 9 < 10 +MessageTests.cpp:84: [info: current counter 10] +MessageTests.cpp:85: [info: i := 10] MessageTests.cpp:86: i < 10 failed for: 10 < 10 [Finished: './mixed/message/scoped' 1 test case failed (1 of 11 assertions failed)] @@ -12619,13 +12722,19 @@ MiscTests.cpp:99: b > a failed for: 0 > 1 [Finished: './mixed/Misc/Sections/loops' 1 test case failed (1 assertion failed)] [Running: ./mixed/Misc/loops] +MiscTests.cpp:110: [info: Testing if fib[0] (1) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 +MiscTests.cpp:110: [info: Testing if fib[1] (1) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 MiscTests.cpp:111: ( fib[i] % 2 ) == 0 succeeded for: 0 == 0 +MiscTests.cpp:110: [info: Testing if fib[3] (3) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 +MiscTests.cpp:110: [info: Testing if fib[4] (5) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 MiscTests.cpp:111: ( fib[i] % 2 ) == 0 succeeded for: 0 == 0 +MiscTests.cpp:110: [info: Testing if fib[6] (13) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 +MiscTests.cpp:110: [info: Testing if fib[7] (21) is even] MiscTests.cpp:111: ( fib[i] % 2 ) == 0 failed for: 1 == 0 [Finished: './mixed/Misc/loops' 1 test case failed (6 of 8 assertions failed)] Some information @@ -12643,6 +12752,8 @@ MiscTests.cpp:130: makeString( true ) == static_cast(__null) succeeded fo [Finished: './succeeding/Misc/null strings' All tests passed (2 assertions in 1 test case)] [Running: ./failing/info] +MiscTests.cpp:135: [info: hi] +MiscTests.cpp:137: [info: i := 7] MiscTests.cpp:138: false failed [Finished: './failing/info' 1 test case failed (1 assertion failed)] @@ -12682,6 +12793,7 @@ No assertions in section, 'encoded chars' [Finished: './misc/xmlentitycheck' 1 test case failed (All 2 assertions failed)] [Running: ./manual/onechar] +MiscTests.cpp:191: [info: 3] MiscTests.cpp:192: false failed [Finished: './manual/onechar' 1 test case failed (1 assertion failed)] diff --git a/single_include/catch.hpp b/single_include/catch.hpp index 801fded1..1cb07a6e 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -1,6 +1,6 @@ /* - * CATCH v0.9 build 31 (integration branch) - * Generated: 2013-04-05 20:56:17.492865 + * CATCH v0.9 build 32 (integration branch) + * Generated: 2013-04-08 11:50:07.907187 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -2404,69 +2404,6 @@ namespace Catch virtual void Result( const AssertionResult& result ) = 0; }; - class LegacyReporterAdapter : public SharedImpl - { - public: - LegacyReporterAdapter( Ptr const& legacyReporter, ReporterConfig const& config ) - : m_legacyReporter( legacyReporter ), - m_config( config ) - {} - virtual ~LegacyReporterAdapter(); - - virtual ReporterPreferences getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout(); - return prefs; - } - - virtual void noMatchingTestCases( std::string const& ) {} - virtual void testRunStarting( TestRunInfo const& ) { - m_legacyReporter->StartTesting(); - } - virtual void testGroupStarting( GroupInfo const& groupInfo ) { - m_legacyReporter->StartGroup( groupInfo.name ); - } - virtual void testCaseStarting( TestCaseInfo const& testInfo ) { - m_legacyReporter->StartTestCase( testInfo ); - } - virtual void sectionStarting( SectionInfo const& sectionInfo ) { - m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description ); - } - virtual void assertionStarting( AssertionInfo const& ) { - // Not on legacy interface - } - - virtual void assertionEnded( AssertionStats const& assertionStats ) { - m_legacyReporter->Result( assertionStats.assertionResult ); - } - virtual void sectionEnded( SectionStats const& sectionStats ) { - if( sectionStats.missingAssertions ) - m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name ); - m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions ); - } - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) { - if( testCaseStats.missingAssertions ) - m_legacyReporter->NoAssertionsInTestCase( testCaseStats.testInfo.name ); - m_legacyReporter->EndTestCase - ( testCaseStats.testInfo, - testCaseStats.totals, - testCaseStats.stdOut, - testCaseStats.stdErr ); - } - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) { - if( testGroupStats.aborting ) - m_legacyReporter->Aborted(); - m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals ); - } - virtual void testRunEnded( TestRunStats const& testRunStats ) { - m_legacyReporter->EndTesting( testRunStats.totals ); - } - - private: - Ptr m_legacyReporter; - ReporterConfig m_config; - }; - struct IReporterFactory { virtual ~IReporterFactory(); virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0; @@ -6081,7 +6018,7 @@ namespace Catch { namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 0, 9, 31, "integration" ); + Version libraryVersion( 0, 9, 32, "integration" ); } // #included from: catch_line_wrap.hpp @@ -6237,6 +6174,110 @@ namespace Catch { } // end namespace Catch +// #included from: ../reporters/catch_legacy_reporter_adapter.hpp +#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED + +// #included from: catch_legacy_reporter_adapter.h +#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED + +namespace Catch +{ + class LegacyReporterAdapter : public SharedImpl + { + public: + LegacyReporterAdapter( Ptr const& legacyReporter, ReporterConfig const& config ); + virtual ~LegacyReporterAdapter(); + + virtual ReporterPreferences getPreferences() const; + virtual void noMatchingTestCases( std::string const& ); + virtual void testRunStarting( TestRunInfo const& ); + virtual void testGroupStarting( GroupInfo const& groupInfo ); + virtual void testCaseStarting( TestCaseInfo const& testInfo ); + virtual void sectionStarting( SectionInfo const& sectionInfo ); + virtual void assertionStarting( AssertionInfo const& ); + virtual void assertionEnded( AssertionStats const& assertionStats ); + virtual void sectionEnded( SectionStats const& sectionStats ); + virtual void testCaseEnded( TestCaseStats const& testCaseStats ); + virtual void testGroupEnded( TestGroupStats const& testGroupStats ); + virtual void testRunEnded( TestRunStats const& testRunStats ); + + private: + Ptr m_legacyReporter; + ReporterConfig m_config; + }; +} + +namespace Catch +{ + LegacyReporterAdapter::LegacyReporterAdapter( Ptr const& legacyReporter, ReporterConfig const& config ) + : m_legacyReporter( legacyReporter ), + m_config( config ) + {} + LegacyReporterAdapter::~LegacyReporterAdapter() {} + + ReporterPreferences LegacyReporterAdapter::getPreferences() const { + ReporterPreferences prefs; + prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout(); + return prefs; + } + + void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {} + void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) { + m_legacyReporter->StartTesting(); + } + void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) { + m_legacyReporter->StartGroup( groupInfo.name ); + } + void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) { + m_legacyReporter->StartTestCase( testInfo ); + } + void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) { + m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description ); + } + void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) { + // Not on legacy interface + } + + void LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) { + if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { + for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); + it != itEnd; + ++it ) { + if( it->type == ResultWas::Info ) { + ExpressionResultBuilder expressionBuilder( it->type ); + expressionBuilder << it->message; + AssertionInfo info( it->macroName, it->lineInfo, "", ResultDisposition::Normal ); + AssertionResult result = expressionBuilder.buildResult( info ); + m_legacyReporter->Result( result ); + } + } + } + m_legacyReporter->Result( assertionStats.assertionResult ); + } + void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) { + if( sectionStats.missingAssertions ) + m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name ); + m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions ); + } + void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) { + if( testCaseStats.missingAssertions ) + m_legacyReporter->NoAssertionsInTestCase( testCaseStats.testInfo.name ); + m_legacyReporter->EndTestCase + ( testCaseStats.testInfo, + testCaseStats.totals, + testCaseStats.stdOut, + testCaseStats.stdErr ); + } + void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) { + if( testGroupStats.aborting ) + m_legacyReporter->Aborted(); + m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals ); + } + void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) { + m_legacyReporter->EndTesting( testRunStats.totals ); + } +} + // #included from: ../reporters/catch_reporter_basic.hpp #define TWOBLUECUBES_CATCH_REPORTER_BASIC_HPP_INCLUDED @@ -7622,7 +7663,6 @@ namespace Catch { IReporterFactory::~IReporterFactory() {} IReporterRegistry::~IReporterRegistry() {} IStreamingReporter::~IStreamingReporter() {} - LegacyReporterAdapter::~LegacyReporterAdapter() {} AssertionStats::~AssertionStats() {} SectionStats::~SectionStats() {} TestCaseStats::~TestCaseStats() {}