Skip to main content

Compatibility notices

According to SemVer rules:

Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API.

The changes of each major and minor release that affect existing code are documented in reverse chronological order. The details are in the respective release notes.

v6.0 (2026-11-09)​

Version 6.0 adds parametrised tests (test_each()), new function comparators (all_of(), any_of(), negate(), and approx()), the extension namespace for the comparators of the applications, and the --filter, --colour, --list-tests, and --help options. The overloaded operators, the literals, and the type wrappers are deprecated in favour of the function comparators, and available only when MICRO_OS_PLUS_MICRO_TEST_PLUS_DEPRECATED_ENABLED is defined; several changes break the compilation of existing code or change its behaviour, for example the top suite is now added with add_top_suite(), and a failed require() stops only its test case. The details, with the old and new names, are in the v6.0.0 release post.

v5.0 (2026-07-14)​

The C++ API is unchanged; the changes affect only the configuration and the build integration. The library must now be enabled by defining MICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED, the configuration file is now micro-os-plus/micro-test-plus-defines.h, the configuration macros were renamed with the _ENABLED suffix (the old names are silently ignored), and the CMake OBJECT library was renamed to micro-os-plus::micro-test-plus-objects-library. The old and new names are listed in the v5.0.0 release post.

v4.1 (2026-05-12)​

Passing the top suite name via the runner constructor is deprecated in favour of passing it via the initialise() function. The name is optional; the default is the program name, derived from argv[0].

v4.0 (2026-04-29)​

Major rework introducing explicit objects for test suites and test cases (subtests), using a ts.test() and t.expect() mechanism inspired by node-tap. The static objects of the framework itself (the runner and the reporter) are no longer used; the applications create the runner, and the static suites remain objects of the application, which register themselves with a runner. The TAP reporter is now the default.

v3.3 (2026-03-22)​

Support for multiple reporters was added, including a new TAP-compliant reporter.

v3.0 (2022-04-03)​

Significant revision introducing a set of comparators, exception handling, function templates for test cases, and class templates for test suites. Heavily influenced by Boost UT.

The run_test_case(func, name) function was deprecated in favour of run_test_case(name, func), in preparation for the adoption of variadic templates.

v2.0 (2021-03-01)​

The C++ namespace was changed from os to micro_os_plus.

v1.1 (2021-02-05)​

The initial codebase, noted for its simplicity and inspired by node-tap, was extracted from the µOS++ monorepo.