1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- * 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
|