micro-test-plus 5.0.1
µTest++ Testing Framework
Loading...
Searching...
No Matches
reporter-human.h
Go to the documentation of this file.
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.0 Software License,
13 * which can be obtained from https://www.boost.org/LICENSE_1_0.txt.
14 */
15
16// ----------------------------------------------------------------------------
17
45
46#ifndef MICRO_OS_PLUS_MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
47#define MICRO_OS_PLUS_MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
48
49// ----------------------------------------------------------------------------
50
51#if defined(__cplusplus)
52
53// ----------------------------------------------------------------------------
54
55#if __has_include("micro-os-plus/project-config.h")
56#include "micro-os-plus/project-config.h"
57#endif // __has_include("micro-os-plus/project-config.h")
58
59#if __has_include("micro-os-plus/micro-test-plus-defines.h")
60#include "micro-os-plus/micro-test-plus-defines.h"
61#endif // __has_include("micro-os-plus/micro-test-plus-defines.h")
62
63#include "reporter.h"
64#include "reflection.h"
65
66// ----------------------------------------------------------------------------
67
68#if defined(__GNUC__)
69#pragma GCC diagnostic push
70
71#pragma GCC diagnostic ignored "-Wpadded"
72#if defined(__clang__)
73#pragma clang diagnostic ignored "-Wc++98-compat"
74#endif // defined(__clang__)
75#endif // defined(__GNUC__)
76
77// ============================================================================
78
80{
81 // --------------------------------------------------------------------------
82
83 class runner;
84 class suite;
85 class subtest;
86
87 // ==========================================================================
88
110 class reporter_human final : public reporter
111 {
112 public:
119 reporter_human (std::unique_ptr<std::vector<std::string_view>> argvs);
120
125
130
136 = delete;
137
143 = delete;
144
148 ~reporter_human () override;
149
150 // ------------------------------------------------------------------------
151
160
161 // Bring base class operator<< overloads into scope to prevent name hiding.
162 using reporter::operator<<;
163
164 // ------------------------------------------------------------------------
165
173 void
174 begin_session (runner& runner) override;
175
183 void
184 end_session (runner& runner) override;
185
193 virtual void
194 begin_suite (suite& suite) override;
195
203 virtual void
204 end_suite (suite& suite) override;
205
213 virtual void
214 begin_subtest (subtest& subtest) override;
215
223 virtual void
224 end_subtest (subtest& subtest) override;
225
234 virtual const char*
235 get_comment_prefix (void) override;
236
237 protected:
246 void
247 output_pass_prefix_ (std::string& message, subtest& subtest) override;
248
256 void
258
270 void
271 output_fail_prefix_ (std::string& message, const bool has_expression,
272 const reflection::source_location& location,
273 subtest& subtest) override;
274
284 void
286 bool abort, subtest& subtest) override;
287 };
288
289 // --------------------------------------------------------------------------
290} // namespace micro_os_plus::micro_test_plus
291
292#if defined(__GNUC__)
293#pragma GCC diagnostic pop
294#endif // defined(__GNUC__)
295
296// ----------------------------------------------------------------------------
297
298#endif // defined(__cplusplus)
299
300// ----------------------------------------------------------------------------
301
302#endif // MICRO_OS_PLUS_MICRO_TEST_PLUS_TEST_REPORTER_BASIC_H_
303
304// ----------------------------------------------------------------------------
Local implementation of source location information for diagnostics.
Definition reflection.h:150
virtual void end_subtest(subtest &subtest) override
Mark the end of a subtest.
virtual void begin_suite(suite &suite) override
Mark the beginning of a suite.
void output_fail_prefix_(std::string &message, const bool has_expression, const reflection::source_location &location, subtest &subtest) override
Outputs the prefix for a failing condition.
void end_session(runner &runner) override
Mark the end of a test session.
reporter_human(std::unique_ptr< std::vector< std::string_view > > argvs)
Constructor for the reporter_human class.
reporter_human & operator=(const reporter_human &)=delete
Deleted copy assignment operator to prevent copying.
virtual void begin_subtest(subtest &subtest) override
Mark the beginning of a subtest.
reporter_human & operator<<(detail::indent_t m)
Output operator for the indent_t manipulator.
reporter_human(const reporter_human &)=delete
Deleted copy constructor to prevent copying.
void begin_session(runner &runner) override
Mark the beginning of a test session.
virtual void end_suite(suite &suite) override
Mark the end of a test suite.
void output_pass_suffix_(subtest &subtest) override
Outputs the suffix for a passing condition.
virtual const char * get_comment_prefix(void) override
Returns an empty comment prefix string.
void output_pass_prefix_(std::string &message, subtest &subtest) override
Outputs the prefix for a passing condition.
reporter_human(reporter_human &&)=delete
Deleted move constructor to prevent moving.
void output_fail_suffix_(const reflection::source_location &location, bool abort, subtest &subtest) override
Outputs the suffix for a failing condition.
~reporter_human() override
Destructor for the reporter_human class.
reporter(std::unique_ptr< std::vector< std::string_view > > argvs)
Constructor for the reporter class.
Definition reporter.cpp:80
The test runner for the µTest++ framework.
Definition runner.h:144
A named, runnable test case that lives inside a suite.
Definition test.h:551
A named, runnable test suite registered with the test runner.
Definition test.h:723
Primary namespace for the µTest++ testing framework.
C++ header file with declarations for the µTest++ reflection utilities.
C++ header file with declarations for the µTest++ test reporter.
Parameterised stream manipulator for outputting indentation.
Definition reporter.h:147