| 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
 |