Horizon
|
Utility base for reporters that need to handle all results at once. More...
#include <catch_amalgamated.hpp>
Classes | |
struct | Node |
struct | SectionNode |
Public Types | |
using | TestCaseNode = Node< TestCaseStats, SectionNode > |
using | TestRunNode = Node< TestRunStats, TestCaseNode > |
Public Member Functions | |
void | benchmarkPreparing (StringRef) override |
Called when user-code is being probed before the actual benchmark runs. More... | |
void | benchmarkStarting (BenchmarkInfo const &) override |
Called after probe but before the user-code is being benchmarked. More... | |
void | benchmarkEnded (BenchmarkStats<> const &benchmarkStats) override |
Called with the benchmark results if benchmark successfully finishes. More... | |
void | benchmarkFailed (StringRef) override |
Called if running the benchmarks fails for any reason. More... | |
void | noMatchingTestCases (StringRef) override |
Called when no test cases match provided test spec. More... | |
void | reportInvalidTestSpec (StringRef) override |
Called for all invalid test specs from the cli. More... | |
void | fatalErrorEncountered (StringRef) override |
Called if a fatal error (signal/structured exception) occured. More... | |
void | testRunStarting (TestRunInfo const &) override |
Called once in a testing run before tests are started. More... | |
void | testCaseStarting (TestCaseInfo const &) override |
Called once for each TEST_CASE, no matter how many times it is entered. More... | |
void | testCasePartialStarting (TestCaseInfo const &, uint64_t) override |
Called every time a TEST_CASE is entered, including repeats (due to sections) More... | |
void | sectionStarting (SectionInfo const §ionInfo) override |
Called when a SECTION is being entered. Not called for skipped sections. More... | |
void | assertionStarting (AssertionInfo const &) override |
Called before assertion success/failure is evaluated. More... | |
void | assertionEnded (AssertionStats const &assertionStats) override |
Called after assertion was fully evaluated. More... | |
void | sectionEnded (SectionStats const §ionStats) override |
Called after a SECTION has finished running. More... | |
void | testCasePartialEnded (TestCaseStats const &, uint64_t) override |
Called every time a TEST_CASE is entered, including repeats (due to sections) More... | |
void | testCaseEnded (TestCaseStats const &testCaseStats) override |
Called once for each TEST_CASE, no matter how many times it is entered. More... | |
void | testRunEnded (TestRunStats const &testRunStats) override |
Called once after all tests in a testing run are finished. More... | |
virtual void | testRunEndedCumulative ()=0 |
Customization point: called after last test finishes (testRunEnded has been handled) More... | |
void | skipTest (TestCaseInfo const &) override |
Called with test cases that are skipped due to the test run aborting. More... | |
ReporterBase (ReporterConfig &&config) | |
![]() | |
ReporterBase (ReporterConfig &&config) | |
void | listReporters (std::vector< ReporterDescription > const &descriptions) override |
Provides a simple default listing of reporters. More... | |
void | listListeners (std::vector< ListenerDescription > const &descriptions) override |
Provides a simple default listing of listeners. More... | |
void | listTests (std::vector< TestCaseHandle > const &tests) override |
Provides a simple default listing of tests. More... | |
void | listTags (std::vector< TagInfo > const &tags) override |
Provides a simple default listing of tags. More... | |
![]() | |
IEventListener (IConfig const *config) | |
ReporterPreferences const & | getPreferences () const |
virtual void | noMatchingTestCases (StringRef unmatchedSpec)=0 |
Called when no test cases match provided test spec. More... | |
virtual void | reportInvalidTestSpec (StringRef invalidArgument)=0 |
Called for all invalid test specs from the cli. More... | |
virtual void | testRunStarting (TestRunInfo const &testRunInfo)=0 |
Called once in a testing run before tests are started. More... | |
virtual void | testCaseStarting (TestCaseInfo const &testInfo)=0 |
Called once for each TEST_CASE, no matter how many times it is entered. More... | |
virtual void | testCasePartialStarting (TestCaseInfo const &testInfo, uint64_t partNumber)=0 |
Called every time a TEST_CASE is entered, including repeats (due to sections) More... | |
virtual void | sectionStarting (SectionInfo const §ionInfo)=0 |
Called when a SECTION is being entered. Not called for skipped sections. More... | |
virtual void | benchmarkPreparing (StringRef benchmarkName)=0 |
Called when user-code is being probed before the actual benchmark runs. More... | |
virtual void | benchmarkStarting (BenchmarkInfo const &benchmarkInfo)=0 |
Called after probe but before the user-code is being benchmarked. More... | |
virtual void | benchmarkEnded (BenchmarkStats<> const &benchmarkStats)=0 |
Called with the benchmark results if benchmark successfully finishes. More... | |
virtual void | benchmarkFailed (StringRef benchmarkName)=0 |
Called if running the benchmarks fails for any reason. More... | |
virtual void | assertionStarting (AssertionInfo const &assertionInfo)=0 |
Called before assertion success/failure is evaluated. More... | |
virtual void | assertionEnded (AssertionStats const &assertionStats)=0 |
Called after assertion was fully evaluated. More... | |
virtual void | sectionEnded (SectionStats const §ionStats)=0 |
Called after a SECTION has finished running. More... | |
virtual void | testCasePartialEnded (TestCaseStats const &testCaseStats, uint64_t partNumber)=0 |
Called every time a TEST_CASE is entered, including repeats (due to sections) More... | |
virtual void | testCaseEnded (TestCaseStats const &testCaseStats)=0 |
Called once for each TEST_CASE, no matter how many times it is entered. More... | |
virtual void | testRunEnded (TestRunStats const &testRunStats)=0 |
Called once after all tests in a testing run are finished. More... | |
virtual void | skipTest (TestCaseInfo const &testInfo)=0 |
Called with test cases that are skipped due to the test run aborting. More... | |
virtual void | fatalErrorEncountered (StringRef error)=0 |
Called if a fatal error (signal/structured exception) occured. More... | |
virtual void | listReporters (std::vector< ReporterDescription > const &descriptions)=0 |
Writes out information about provided reporters using reporter-specific format. More... | |
virtual void | listListeners (std::vector< ListenerDescription > const &descriptions)=0 |
Writes out the provided listeners descriptions using reporter-specific format. More... | |
virtual void | listTests (std::vector< TestCaseHandle > const &tests)=0 |
Writes out information about provided tests using reporter-specific format. More... | |
virtual void | listTags (std::vector< TagInfo > const &tags)=0 |
Writes out information about the provided tags using reporter-specific format. More... | |
Protected Attributes | |
bool | m_shouldStoreSuccesfulAssertions = true |
Should the cumulative base store the assertion expansion for succesful assertions? | |
bool | m_shouldStoreFailedAssertions = true |
Should the cumulative base store the assertion expansion for failed assertions? | |
Detail::unique_ptr< TestRunNode > | m_testRun |
The root node of the test run tree. | |
![]() | |
Detail::unique_ptr< IStream > | m_wrapped_stream |
The stream wrapper as passed to us by outside code. | |
std::ostream & | m_stream |
Cached output stream from m_wrapped_stream to reduce number of indirect calls needed to write output. | |
Detail::unique_ptr< ColourImpl > | m_colour |
Colour implementation this reporter was configured for. | |
std::map< std::string, std::string > | m_customOptions |
The custom reporter options user passed down to the reporter. | |
![]() | |
ReporterPreferences | m_preferences |
Derived classes can set up their preferences here. | |
IConfig const * | m_config |
The test run's config as filled in from CLI and defaults. | |
Utility base for reporters that need to handle all results at once.
It stores tree of all test cases, sections and assertions, and after the test run is finished, calls into testRunEndedCumulative
to pass the control to the deriving class.
If you are deriving from this class and override any testing related member functions, you should first call into the base's implementation to avoid breaking the tree construction.
Due to the way this base functions, it has to expand assertions up-front, even if they are later unused (e.g. because the deriving reporter does not report successful assertions, or because the deriving reporter does not use assertion expansion at all). Derived classes can use two customization points, m_shouldStoreSuccesfulAssertions
and m_shouldStoreFailedAssertions
, to disable the expansion and gain extra performance. Accessing the assertion expansions if it wasn't stored is UB.
|
overridevirtual |
Called after assertion was fully evaluated.
Implements Catch::IEventListener.
Reimplemented in Catch::JunitReporter.
|
inlineoverridevirtual |
Called before assertion success/failure is evaluated.
Implements Catch::IEventListener.
|
overridevirtual |
Called with the benchmark results if benchmark successfully finishes.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called if running the benchmarks fails for any reason.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called when user-code is being probed before the actual benchmark runs.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called after probe but before the user-code is being benchmarked.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called if a fatal error (signal/structured exception) occured.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called when no test cases match provided test spec.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called for all invalid test specs from the cli.
Implements Catch::IEventListener.
|
overridevirtual |
Called after a SECTION
has finished running.
Implements Catch::IEventListener.
|
overridevirtual |
Called when a SECTION
is being entered. Not called for skipped sections.
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called with test cases that are skipped due to the test run aborting.
Implements Catch::IEventListener.
|
overridevirtual |
Called once for each TEST_CASE, no matter how many times it is entered.
Implements Catch::IEventListener.
Reimplemented in Catch::JunitReporter.
|
inlineoverridevirtual |
Called every time a TEST_CASE is entered, including repeats (due to sections)
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called every time a TEST_CASE is entered, including repeats (due to sections)
Implements Catch::IEventListener.
|
inlineoverridevirtual |
Called once for each TEST_CASE, no matter how many times it is entered.
Implements Catch::IEventListener.
Reimplemented in Catch::JunitReporter.
|
overridevirtual |
Called once after all tests in a testing run are finished.
Not called if tests weren't run (e.g. only listings happened)
Implements Catch::IEventListener.
|
pure virtual |
Customization point: called after last test finishes (testRunEnded has been handled)
Implemented in Catch::JunitReporter, and Catch::SonarQubeReporter.
|
inlineoverridevirtual |
Called once in a testing run before tests are started.
Not called if tests won't be run (e.g. only listing will happen)
Implements Catch::IEventListener.
Reimplemented in Catch::JunitReporter, and Catch::SonarQubeReporter.