Skip to main content

reporter-human.h File

C++ header file with declarations for the µTest++ human test reporter. More...

Included Headers

#include "reporter.h" #include "reflection.h"

Namespaces Index

namespacemicro_os_plus

The primary namespace for the µOS++ framework. More...

namespacemicro_test_plus

Primary namespace for the µTest++ testing framework. More...

Classes Index

classreporter_human

Human (standard output) implementation of reporter. More...

Description

C++ header file with declarations for the µTest++ human test reporter.

This header provides the declaration for reporter_human, the default concrete implementation of the reporter abstract interface. It formats and presents test results using printf-based standard output, accumulating output in an internal string buffer and supporting colour-coded diagnostics and multiple verbosity levels.

Users who require custom output behaviour (e.g. redirecting to a serial port on bare-metal targets) may derive a new class from reporter instead of using this class.

All definitions reside within the micro_os_plus::micro_test_plus namespace, ensuring clear separation from user code and minimising the risk of naming conflicts.

The header files are organised within the include/micro-os-plus/micro-test-plus folder to maintain a structured and modular codebase.

This file is intended solely for internal use within the framework and should not be included directly by user code.

File Listing

The file content with the documentation metadata removed is:

1/*
2 * This file is part of the µOS++ project (https://micro-os-plus.github.io/).
3 * Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose is hereby granted, under the terms of the MIT license.
7 *
8 * If a copy of the license was not distributed with this file, it can be
9 * obtained from https://opensource.org/licenses/mit.
10 *
11 * Major parts of the code are inspired from v1.1.8 of the Boost UT project,
12 * released under the terms of the Boost Version 1 Software License,
13 * which can be obtained from https://www.boost.org/LICENSE_1_0.txt.
14 */
15
16// ----------------------------------------------------------------------------
17
45
46#ifndef MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
47#define MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
48
49// ----------------------------------------------------------------------------
50
51#ifdef __cplusplus
52
53// ----------------------------------------------------------------------------
54
55#include "reporter.h"
56#include "reflection.h"
57
58// ----------------------------------------------------------------------------
59
60#if defined(__GNUC__)
61#pragma GCC diagnostic push
62#pragma GCC diagnostic ignored "-Wpadded"
63#if defined(__clang__)
64#pragma clang diagnostic ignored "-Wc++98-compat"
65#endif
66#endif
67
68// ============================================================================
69
71{
72 // --------------------------------------------------------------------------
73
74 class runner;
75 class suite;
76 class subtest;
77
78 // ==========================================================================
79
101 class reporter_human final : public reporter
102 {
103 public:
110 reporter_human (std::unique_ptr<std::vector<std::string_view>> argvs);
111
115 reporter_human (const reporter_human&) = delete;
116
121
127 = delete;
128
134 = delete;
135
139 ~reporter_human () override;
140
141 // ------------------------------------------------------------------------
142
151
152 // Bring base class operator<< overloads into scope to prevent name hiding.
153 using reporter::operator<<;
154
155 // ------------------------------------------------------------------------
156
164 void
165 begin_session (runner& runner) override;
166
174 void
175 end_session (runner& runner) override;
176
184 virtual void
185 begin_suite (suite& suite) override;
186
194 virtual void
195 end_suite (suite& suite) override;
196
204 virtual void
205 begin_subtest (subtest& subtest) override;
206
214 virtual void
215 end_subtest (subtest& subtest) override;
216
225 virtual const char*
226 get_comment_prefix (void) override;
227
228 protected:
237 void
238 output_pass_prefix_ (std::string& message, subtest& subtest) override;
239
247 void
249
261 void
262 output_fail_prefix_ (std::string& message, const bool has_expression,
263 const reflection::source_location& location,
264 subtest& subtest) override;
265
275 void
277 bool abort, subtest& subtest) override;
278 };
279
280 // --------------------------------------------------------------------------
281} // namespace micro_os_plus::micro_test_plus
282
283#if defined(__GNUC__)
284#pragma GCC diagnostic pop
285#endif
286
287// ----------------------------------------------------------------------------
288
289#endif // __cplusplus
290
291// ----------------------------------------------------------------------------
292
293#endif // MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
294
295// ----------------------------------------------------------------------------

Generated via doxygen2docusaurus 2.2.0 by Doxygen 1.17.0.