Skip to main content

The deferred_reporter Class Template Reference

Deferred reporter class template for a specific expression. More...

Declaration

template <class Expr_T>
class micro_os_plus::micro_test_plus::detail::deferred_reporter<Expr_T>

Included Headers

Base class

classdeferred_reporter_base

Base class for a deferred reporter that collects messages into a string. More...

Public Constructors Index

template <class Expr_T>
constexprdeferred_reporter (const Expr_T &expr, bool abort, const reflection::source_location &location)

Constructs a deferred reporter for a specific expression. More...

Public Destructor Index

template <class Expr_T>
~deferred_reporter ()

Destructor for the deferred reporter. More...

Public Operators Index

template <class T>
auto &operator<< (const T &msg)

Appends a message to the reporter. More...

Public Member Functions Index

template <class Expr_T>
constexpr boolvalue () const

Retrieves the result value. More...

Protected Member Attributes Index

template <class Expr_T>
boolabort_ = false

Indicates whether the reporting should abort further processing. More...

template <class Expr_T>
const Expr_Texpr_ {}

Stores the expression under evaluation. More...

template <class Expr_T>
const reflection::source_locationlocation_ {}

Stores the source location associated with the report. More...

template <class Expr_T>
std::stringmessage_ {}

String to collect the expectation message passed via operator<<(). More...

template <class Expr_T>
boolvalue_ {}

Stores the result value of the report. More...

Description

Deferred reporter class template for a specific expression.

Template Parameters
Expr_TThe type of the expression being reported.

The deferred_reporter class template extends deferred_reporter_base to provide deferred reporting functionality for a specific test expression within the framework.

This class template is responsible for capturing the expression under evaluation, the abort status, and the source location. It is intended exclusively for internal use and is implemented in the include/micro-os-plus/micro-test-plus folder to ensure a structured and modular codebase.

Definition at line 1836 of file detail.h.

Public Constructors

deferred_reporter()

template <class Expr_T>
micro_os_plus::micro_test_plus::detail::deferred_reporter< Expr_T >::deferred_reporter (const Expr_T & expr, bool abort, const reflection::source_location & location)
explicitconstexpr

Constructs a deferred reporter for a specific expression.

Parameters
exprThe expression under evaluation.
abortIndicates whether reporting should abort further processing.
locationThe source location relevant to the report.

Initialises the reporter with the given expression, abort status, and source location.

This constructor initialises a deferred reporter for a specific expression, capturing the evaluation result, abort status, and source location.

The expression is evaluated and its boolean result is passed to the base class. The abort flag determines whether further test execution should be halted if the expectation fails. The source location provides contextual information for reporting purposes.

Declaration at line 1851 of file detail.h, definition at line 117 of file details-inlines.h.

Public Destructor

~deferred_reporter()

template <class Expr_T>
micro_os_plus::micro_test_plus::detail::deferred_reporter< Expr_T >::~deferred_reporter ()

Destructor for the deferred reporter.

The destructor finalises the deferred reporting process for a test expression. If the evaluated expression is true, the reporter records a successful outcome along with any accumulated message. If the expression is false, the reporter records a failure, including the abort status, message, and source location for comprehensive reporting.

This mechanism ensures that all relevant information about the test outcome is captured and reported accurately when the deferred reporter goes out of scope.

Declaration at line 1858 of file detail.h, definition at line 142 of file details-inlines.h.

Public Operators

operator<<()

template <class T>
auto & micro_os_plus::micro_test_plus::detail::deferred_reporter_base::operator<< (const T & msg)

Appends a message to the reporter.

Template Parameters
TThe type of the message to append.
Parameters
msgThe message to append.
Returns

Reference to the current reporter instance.

This operator overload enables the deferred reporter to accumulate expectation messages by appending the provided value to the internal message string.

If the argument is of an arithmetic type, it is first converted to a string using std::to_string before being appended. For all other types, the value is appended directly. This ensures that both numeric and string-like messages are handled appropriately and consistently.

Declaration at line 1770 of file detail.h, definition at line 90 of file details-inlines.h.

Public Member Functions

value()

template <class Expr_T>
bool micro_os_plus::micro_test_plus::detail::deferred_reporter_base::value () const
inlinenodiscardconstexpr

Retrieves the result value.

Parameters

None.

Return Values
trueThe reported condition was met.
falseThe reported condition was not met.

Returns the result value associated with the report.

Definition at line 1786 of file detail.h.

Protected Member Attributes

abort_

template <class Expr_T>
bool micro_os_plus::micro_test_plus::detail::deferred_reporter_base::abort_ = false
protected

Indicates whether the reporting should abort further processing.

Definition at line 1801 of file detail.h.

expr_

template <class Expr_T>
const Expr_T micro_os_plus::micro_test_plus::detail::deferred_reporter< Expr_T >::expr_ {}
protected

Stores the expression under evaluation.

Definition at line 1864 of file detail.h.

location_

template <class Expr_T>
const reflection::source_location micro_os_plus::micro_test_plus::detail::deferred_reporter_base::location_ {}
protected

Stores the source location associated with the report.

Definition at line 1806 of file detail.h.

message_

template <class Expr_T>
std::string micro_os_plus::micro_test_plus::detail::deferred_reporter_base::message_ {}
protected

String to collect the expectation message passed via operator<<().

Definition at line 1812 of file detail.h.

value_

template <class Expr_T>
bool micro_os_plus::micro_test_plus::detail::deferred_reporter_base::value_ {}
protected

Stores the result value of the report.

Definition at line 1795 of file detail.h.


The documentation for this class was generated from the following files:


Generated via docusaurus-plugin-doxygen by Doxygen 1.14.0.