mirror of https://github.com/catchorg/Catch2.git
63 lines
2.2 KiB
C++
63 lines
2.2 KiB
C++
![]() |
/*
|
||
|
* 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
|