CppUnit


CppUnit is a unit testing framework module for the C++ programming language. It allows unit-testing of C sources as well as C++ with minimal source modification. It was started around 2000 by Michael Feathers as a C++ port of JUnit for Windows and ported to Unix by Jerome Lacoste. The library is released under the GNU Lesser General Public License. However, unlike JUnit, CppUnit does not rely on annotations, and rather creates tests with preprocessor macros.
The framework runs tests in suites. Test result output is sent to a filter, the most basic being a simple pass or fail count printed out, or more advanced filters allowing XML output compatible with continuous integration reporting systems.
The project has been forked several times. The freedesktop.org version at, maintained by Markus Mohrhard of the LibreOffice project, was actively maintained until 2020, and is used in Linux distributions such as Debian, Ubuntu, Gentoo and Arch.
Some libraries, such as POCO C++ Libraries, provide their own APIs to consume the CppUnit library.

Example

Consider the following class Integer:

module;
export module org.wikipedia.examples.Integer;
export namespace org::wikipedia::examples

It can be tested like so:

module;
export module org.wikipedia.examples.tests.IntegerTest;
import ;
import org.wikipedia.examples.Integer;
using CppUnit::TestFixture;
using org::wikipedia::examples::Integer;
export namespace org::wikipedia::examples::tests