Skip to main content

micro-test-plus.h File

Main C++ header with the declarations for the µTest++ Testing Framework. More...

Included Headers

Macro Definitions Index

#defineMICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED

Enables the µTest++ Testing Framework. More...

#defineMICRO_OS_PLUS_MICRO_TEST_PLUS_TRACE_CONSTRUCTORS_ENABLED

Enable trace in constructors and destructors in µTest++. More...

#defineMICRO_OS_PLUS_MICRO_TEST_PLUS_TRACE_ENABLED

Enable trace in class methods in µTest++. More...

Description

Main C++ header with the declarations for the µTest++ Testing Framework.

This header serves as the principal entry point for the µTest++ testing framework, purpose-built for both embedded and general C++ projects.

It provides all essential declarations required to write and manage tests, including test runner and reporter objects, test suite and test case management, expectations, assumptions, comparators, logical operators, exception verification, and utility functions.

The header also incorporates all necessary dependencies and internal headers to ensure the framework operates correctly and efficiently.

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

This file is located in the top-level include/micro-os-plus directory; all other header files are organised within the include/micro-os-plus/micro-test-plus directory to maintain a structured and modular codebase.

To access the complete functionality of the µTest++ framework, users should include this header in their test projects.

The implementation is significantly inspired by Boost UT, with adaptations and extensions to address the requirements of embedded development and the µTest++ framework.

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
52
53#ifndef MICRO_OS_PLUS_MICRO_TEST_PLUS_H_
54#define MICRO_OS_PLUS_MICRO_TEST_PLUS_H_
55
56// ----------------------------------------------------------------------------
57
58#if defined(__cplusplus)
59
60// ----------------------------------------------------------------------------
61
62#if defined(__cplusplus)
63#if !(__cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L))
64#error "C++20 or higher is required"
65#endif // !(__cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L))
66#endif // defined(__cplusplus)
67
68#if __has_include("micro-os-plus/project-config.h")
69#include "micro-os-plus/project-config.h"
70#endif // __has_include("micro-os-plus/project-config.h")
71
72#if __has_include("micro-os-plus/micro-test-plus-defines.h")
73#include "micro-os-plus/micro-test-plus-defines.h"
74#endif // __has_include("micro-os-plus/micro-test-plus-defines.h")
75
76// ----------------------------------------------------------------------------
77
78#if defined(__DOXYGEN__)
79// Present here solely for Doxygen, to document the macros.
80#define MICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED
81#define MICRO_OS_PLUS_MICRO_TEST_PLUS_TRACE_ENABLED
82#define MICRO_OS_PLUS_MICRO_TEST_PLUS_TRACE_CONSTRUCTORS_ENABLED
83#endif // defined(__DOXYGEN__)
84
85// ----------------------------------------------------------------------------
86
87#if defined(MICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED)
88
89// ----------------------------------------------------------------------------
90
91// No deps.
93
94// Requires math.h.
96
97// No deps.
99
100// Requires type-traits.h, reflection.h.
102
103// Requires type-traits.h, math.h.
105
106// No deps.
108
109// No deps.
111
112// Requires type-traits.h + detail.h,
114
115// Requires type-traits.h, detail.h + reflection.h.
117
118// Requires type-traits.h, detail.h, expression-formatter.h, reflection.h.
120
121// Requires type-traits.h, reflection.h, expression-formatter.h.
123
124// No deps.
126
127// Requires reporter.h, reflection.h.
129
130// Requires reporter.h, reflection.h.
132
133// No deps.
135
136// Requires reporter.h, runner-totals.h, reflection.h, type-traits.h and
137// timings.h + deferred-reporter.h, reporter.h.
139
140// Requires timings.h, test.h (detail::test_node, top_suite), reflection.h.
142
143// ----------------------------------------------------------------------------
144
145#endif // defined(MICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED)
146
147// ----------------------------------------------------------------------------
148
149#endif // defined(__cplusplus)
150
151// ----------------------------------------------------------------------------
152
153#endif // MICRO_OS_PLUS_MICRO_TEST_PLUS_H_
154
155// ----------------------------------------------------------------------------

Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.17.0.