You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.2 KiB
62 lines
2.2 KiB
/* |
|
* Created by Justin R. Wilson on 2/19/2017. |
|
* Copyright 2017 Justin R. Wilson. All rights reserved. |
|
* |
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying |
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
*/ |
|
#ifndef TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED |
|
#define TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED |
|
|
|
// Don't #include any Catch headers here - we can assume they are already |
|
// included before this header. |
|
// This is not good practice in general but is necessary in this case so this |
|
// file can be distributed as a single header that works with the main |
|
// Catch single header. |
|
|
|
namespace Catch { |
|
|
|
struct AutomakeReporter : StreamingReporterBase<AutomakeReporter> { |
|
AutomakeReporter( ReporterConfig const& _config ) |
|
: StreamingReporterBase( _config ) |
|
{} |
|
|
|
~AutomakeReporter() override; |
|
|
|
static std::string getDescription() { |
|
return "Reports test results in the format of Automake .trs files"; |
|
} |
|
|
|
void assertionStarting( AssertionInfo const& ) override {} |
|
|
|
bool assertionEnded( AssertionStats const& /*_assertionStats*/ ) override { return true; } |
|
|
|
void testCaseEnded( TestCaseStats const& _testCaseStats ) override { |
|
// Possible values to emit are PASS, XFAIL, SKIP, FAIL, XPASS and ERROR. |
|
stream << ":test-result: "; |
|
if (_testCaseStats.totals.assertions.allPassed()) { |
|
stream << "PASS"; |
|
} else if (_testCaseStats.totals.assertions.allOk()) { |
|
stream << "XFAIL"; |
|
} else { |
|
stream << "FAIL"; |
|
} |
|
stream << ' ' << _testCaseStats.testInfo.name << '\n'; |
|
StreamingReporterBase::testCaseEnded( _testCaseStats ); |
|
} |
|
|
|
void skipTest( TestCaseInfo const& testInfo ) override { |
|
stream << ":test-result: SKIP " << testInfo.name << '\n'; |
|
} |
|
|
|
}; |
|
|
|
#ifdef CATCH_IMPL |
|
AutomakeReporter::~AutomakeReporter() {} |
|
#endif |
|
|
|
CATCH_REGISTER_REPORTER( "automake", AutomakeReporter) |
|
|
|
} // end namespace Catch |
|
|
|
#endif // TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED
|
|
|