mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-30 09:13:29 +01:00
e340ab8db6
* Units from <ratio> are no longer redeclared in our own namespace * The default clock is `steady_clock`, not `high_resolution_clock`, because, as HH says "high_resolution_clock is useless. If you want measure the passing of time, use steady_clock. If you want user friendly time, use system_clock". * Benchmarking support is opt-in, not opt-out, to avoid the large (~10%) compile time penalty. * Benchmarking-related options in CLI are always present, to decrease the amount of code that is only compiled conditionally and making the whole shebang more maintainble.
88 lines
3.0 KiB
C++
88 lines
3.0 KiB
C++
/*
|
|
* Created by Phil on 5/12/2012.
|
|
* Copyright 2012 Two Blue Cubes Ltd. 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_CONSOLE_H_INCLUDED
|
|
#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_H_INCLUDED
|
|
|
|
#include "catch_reporter_bases.hpp"
|
|
|
|
#if defined(_MSC_VER)
|
|
#pragma warning(push)
|
|
#pragma warning(disable:4061) // Not all labels are EXPLICITLY handled in switch
|
|
// Note that 4062 (not all labels are handled
|
|
// and default is missing) is enabled
|
|
#endif
|
|
|
|
|
|
namespace Catch {
|
|
// Fwd decls
|
|
struct SummaryColumn;
|
|
class TablePrinter;
|
|
|
|
struct ConsoleReporter : StreamingReporterBase<ConsoleReporter> {
|
|
std::unique_ptr<TablePrinter> m_tablePrinter;
|
|
|
|
ConsoleReporter(ReporterConfig const& config);
|
|
~ConsoleReporter() override;
|
|
static std::string getDescription();
|
|
|
|
void noMatchingTestCases(std::string const& spec) override;
|
|
|
|
void assertionStarting(AssertionInfo const&) override;
|
|
|
|
bool assertionEnded(AssertionStats const& _assertionStats) override;
|
|
|
|
void sectionStarting(SectionInfo const& _sectionInfo) override;
|
|
void sectionEnded(SectionStats const& _sectionStats) override;
|
|
|
|
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
|
|
void benchmarkPreparing(std::string const& name) override;
|
|
void benchmarkStarting(BenchmarkInfo const& info) override;
|
|
void benchmarkEnded(BenchmarkStats<> const& stats) override;
|
|
void benchmarkFailed(std::string const& error) override;
|
|
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
|
|
|
|
void testCaseEnded(TestCaseStats const& _testCaseStats) override;
|
|
void testGroupEnded(TestGroupStats const& _testGroupStats) override;
|
|
void testRunEnded(TestRunStats const& _testRunStats) override;
|
|
void testRunStarting(TestRunInfo const& _testRunInfo) override;
|
|
private:
|
|
|
|
void lazyPrint();
|
|
|
|
void lazyPrintWithoutClosingBenchmarkTable();
|
|
void lazyPrintRunInfo();
|
|
void lazyPrintGroupInfo();
|
|
void printTestCaseAndSectionHeader();
|
|
|
|
void printClosedHeader(std::string const& _name);
|
|
void printOpenHeader(std::string const& _name);
|
|
|
|
// if string has a : in first line will set indent to follow it on
|
|
// subsequent lines
|
|
void printHeaderString(std::string const& _string, std::size_t indent = 0);
|
|
|
|
|
|
void printTotals(Totals const& totals);
|
|
void printSummaryRow(std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row);
|
|
|
|
void printTotalsDivider(Totals const& totals);
|
|
void printSummaryDivider();
|
|
void printTestFilters();
|
|
|
|
private:
|
|
bool m_headerPrinted = false;
|
|
};
|
|
|
|
} // end namespace Catch
|
|
|
|
#if defined(_MSC_VER)
|
|
#pragma warning(pop)
|
|
#endif
|
|
|
|
#endif // TWOBLUECUBES_CATCH_REPORTER_CONSOLE_H_INCLUDED
|