micro-test-plus 6.0.0
µTest++ Testing Framework
Loading...
Searching...
No Matches
micro_os_plus::micro_test_plus::reflection::source_location Class Reference

Local implementation of source location information for diagnostics. More...

#include "micro-os-plus/micro-test-plus.h"

Public Member Functions

constexpr auto file_name (void) const noexcept
 Returns the file name associated with this source location.
constexpr auto line (void) const noexcept
 Returns the line number associated with this source location.

Static Public Member Functions

static constexpr source_location current (const char *file="unknown", unsigned int line={}) noexcept
 Returns the current source location.

Private Attributes

const char * file_ { "unknown" }
 The file name where the source location was captured.
unsigned int line_ {}
 The line number where the source location was captured.

Detailed Description

This class provides a lightweight, constexpr-compatible alternative to std::source_location, used when the standard library does not provide it (__cpp_lib_source_location is not defined).

It enables retrieval of the file name and line number at the point of invocation, for the reports of the checks.

The static member function current() captures the current source location, using compiler built-ins where available, or defaulting to "unknown" and zero otherwise.

Since
3.0.0

Definition at line 142 of file reflection.h.

Member Function Documentation

◆ current()

source_location micro_os_plus::micro_test_plus::reflection::source_location::current ( const char * file = "unknown",
unsigned int line = {} )
staticnodiscardconstexprnoexcept
Parameters
fileThe file name (automatically provided by the compiler).
lineThe line number (automatically provided by the compiler).
Returns
A source_location instance with the captured information.

Returns a source_location instance representing the file name and line number at the point of invocation.

If supported by the compiler, uses built-in macros to capture this information; otherwise, defaults to "unknown" and zero.

Definition at line 87 of file reflection-inlines.h.

88 {
89 source_location sl{};
90 sl.file_ = file;
91 sl.line_ = line;
92 return sl;
93 }
constexpr auto line(void) const noexcept
Returns the line number associated with this source location.

References file_, line(), and line_.

Referenced by micro_os_plus::micro_test_plus::test_case::expect(), micro_os_plus::micro_test_plus::test_case::operator=(), micro_os_plus::micro_test_plus::test_case::require(), and micro_os_plus::micro_test_plus::detail::runnable_base::run().

◆ file_name()

auto micro_os_plus::micro_test_plus::reflection::source_location::file_name ( void ) const
nodiscardconstexprnoexcept
Parameters
None.
Returns
The file name as a constant character pointer.

Returns the file name captured at the time this source_location instance was created.

Definition at line 101 of file reflection-inlines.h.

102 {
103 return file_;
104 }
const char * file_
The file name where the source location was captured.
Definition reflection.h:189

References file_.

Referenced by micro_os_plus::micro_test_plus::runner::abort(), micro_os_plus::micro_test_plus::detail::reporter_human::abort_session(), micro_os_plus::micro_test_plus::detail::reporter_tap::abort_session(), micro_os_plus::micro_test_plus::detail::reporter_human::output_fail_prefix(), and micro_os_plus::micro_test_plus::detail::reporter_tap::output_fail_suffix().

◆ line()

auto micro_os_plus::micro_test_plus::reflection::source_location::line ( void ) const
nodiscardconstexprnoexcept
Parameters
None.
Returns
The line number as an unsigned integer.

Returns the line number captured at the time this source_location instance was created.

Definition at line 112 of file reflection-inlines.h.

113 {
114 return line_;
115 }
unsigned int line_
The line number where the source location was captured.
Definition reflection.h:197

References line_.

Referenced by micro_os_plus::micro_test_plus::runner::abort(), micro_os_plus::micro_test_plus::detail::reporter_human::abort_session(), micro_os_plus::micro_test_plus::detail::reporter_tap::abort_session(), current(), micro_os_plus::micro_test_plus::detail::reporter_human::output_fail_prefix(), and micro_os_plus::micro_test_plus::detail::reporter_tap::output_fail_suffix().

Member Data Documentation

◆ file_

const char* micro_os_plus::micro_test_plus::reflection::source_location::file_ { "unknown" }
private

Defaults to "unknown" when no location was provided.

Definition at line 189 of file reflection.h.

Referenced by current(), and file_name().

◆ line_

unsigned int micro_os_plus::micro_test_plus::reflection::source_location::line_ {}
private

Defaults to zero when no location was provided.

Definition at line 197 of file reflection.h.

Referenced by current(), and line().


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