41#if defined(MICRO_OS_PLUS_INCLUDE_CONFIG_H)
42#include <micro-os-plus/config.h>
53#pragma GCC diagnostic ignored "-Waggregate-return"
55#pragma clang diagnostic ignored "-Wc++98-compat"
56#pragma clang diagnostic ignored "-Wc++98-c++11-c++14-compat"
57#pragma clang diagnostic ignored "-Wunknown-warning-option"
75#if defined(MICRO_OS_PLUS_TRACE_MICRO_TEST_PLUS)
76 printf (
"%s\n", __PRETTY_FUNCTION__);
80#pragma GCC diagnostic push
82#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
99#if defined(MICRO_OS_PLUS_TRACE_MICRO_TEST_PLUS)
100 printf (
"%s\n", __PRETTY_FUNCTION__);
103#if defined(_WIN32) || defined(CLOCK_MONOTONIC)
105 timespec_get (&begin_time, TIME_UTC);
107 clock_gettime (CLOCK_MONOTONIC, &begin_time);
116#if !(defined(MICRO_OS_PLUS_INCLUDE_STARTUP) && defined(MICRO_OS_PLUS_TRACE))
117#if defined(MICRO_OS_PLUS_DEBUG)
119 for (
int i = 0; i < argc; ++i)
125 printf (
"'%s'", argv[i]);
132 const char* reporter_name =
"tap";
133 for (
int i = 0; i < argc; ++i)
135 if (strcmp (argv[i],
"--verbose") == 0)
139 else if (strcmp (argv[i],
"--quiet") == 0)
143 else if (strcmp (argv[i],
"--silent") == 0)
147 else if (strncmp (argv[i],
"--reporter=", 11) == 0)
149 reporter_name = argv[i] + 11;
154 if (strcmp (reporter_name,
"basic") == 0)
158 else if (strcmp (reporter_name,
"tap") == 0)
164 fprintf (stderr,
"error: unknown reporter '%s'\n", reporter_name);
171#if !(defined(MICRO_OS_PLUS_INCLUDE_STARTUP) && defined(MICRO_OS_PLUS_TRACE))
174#if defined(__clang__)
175 printf (
"Built with clang " __VERSION__);
176#elif defined(__GNUC__)
177 printf (
"Built with GCC " __VERSION__);
178#elif defined(_MSC_VER)
180 printf (
"Built with MSVC %d", _MSC_VER);
182 printf (
"Built with an unknown compiler");
184#if !(defined(__APPLE__) || defined(__linux__) || defined(__unix__) \
187#if defined(__ARM_PCS_VFP) || defined(__ARM_FP)
188 printf (
", with FP");
193#if defined(__EXCEPTIONS)
194 printf (
", with exceptions");
196 printf (
", no exceptions");
198#if defined(MICRO_OS_PLUS_DEBUG)
199 printf (
", with MICRO_OS_PLUS_DEBUG");
215#pragma GCC diagnostic pop
220 bool was_successful =
true;
254#if defined(_WIN32) || defined(CLOCK_MONOTONIC)
256 timespec_get (&end_time, TIME_UTC);
258 clock_gettime (CLOCK_MONOTONIC, &end_time);
264 return was_successful ? 0 : 1;
282 printf (
"%s\n", __PRETTY_FUNCTION__);
287 test_suites =
new std::vector<test_suite_base*> ();
Basic (standard output) implementation of test_reporter.
TAP (Test Anything Protocol) implementation of test_reporter.
char ** argv_
Stores the argument vector passed to the test runner.
void abort(void)
Aborts test execution immediately.
test_runner()
Default constructor for the test_runner class.
constexpr const char * name(void)
Retrieves the name of the default test suite.
int argc_
Stores the argument count passed to the test runner.
std::vector< test_suite_base * > * test_suites
Pointer to the array of registered test suites.
int exit_code(void)
Returns 0 if all tests were successful, 1 otherwise.
void initialize(int argc, char *argv[], const char *name)
Initialises the test runner with command-line arguments and an optional suite name.
void register_test_suite(test_suite_base *suite)
Registers a test suite with the runner.
struct micro_os_plus::micro_test_plus::test_runner::@203116162314165176152054201130262045267070023134 totals
test_suite_base * default_test_suite
Pointer to the default test suite which groups the main tests.
const char * default_suite_name_
The name of the default test suite.
Base class for all test suites.
size_t index
The test suite index, counting from 1.
constexpr size_t test_cases_count(void)
Gets the number of test cases.
void end_test_suite(void)
Marks the end of the test suite.
size_t successful_checks
Number of successful checks in the current test case.
size_t failed_checks
Number of failed checks in the current test case.
void begin_test_suite(void)
Begins the execution of the test suite.
constexpr bool was_successful(void)
Gets the test suite result.
Represents a named group of test cases that self-register to the runner.
virtual void run(void) override
Runs the sequence of test cases in the suite by invoking the stored callable.
Main C++ header with the declarations for the µTest++ Testing Framework.
Primary namespace for the µTest++ testing framework.
verbosity verbosity_t
Type alias for the verbosity enumeration used in test reporting.
test_reporter * reporter
Global pointer to test_reporter.
test_suite_base * current_test_suite
Global pointer references the currently active test suite.
verbosity
The verbosity levels for test reporting.