PCUT: Plain C Unit Testing mini-framework
=========================================

PCUT is a very simple framework for unit testing of C code.
Unlike many other frameworks where you need to specify manually which
functions belong to a particular test, PCUT provides several smart
macros that hides this and lets you focus on the most important
part of testing only: that is, coding the test cases.

This mini-framework is definitely not complete but it offers the basic
functionality needed for writing unit tests.
This includes the possibility to group tests into test suites, optionally
having set-up and tear-down functions.
There are several assert macros for evaluating the results, their highlight
is very detailed information about the problem.

The output of the test can come in two forms: either as an XML output suited
for later processing or in the form of Test-Anything-Protocol.
PCUT is able to capture standard output and display it together with test
results.
And by running each test in a separate process, the whole framework is pretty
safe against unexpected crashes, such as null pointer dereference.

More details can be found on PCUT wiki on GitHub:
https://github.com/vhotspur/pcut/wiki


Quick-start example
-------------------

The following code tests the standard ``atoi`` function::

	#include <pcut/pcut.h>
	#include <stdlib.h>
	
	PCUT_INIT
	
	PCUT_TEST(atoi_zero) {
	    PCUT_ASSERT_INT_EQUALS(0, atoi("0"));
	}
	
	PCUT_TEST(atoi_positive) {
	    PCUT_ASSERT_INT_EQUALS(42, atoi("42"));
	}
	
	PCUT_TEST(atoi_negative) {
	    PCUT_ASSERT_INT_EQUALS(-273, atoi("-273"));
	}
	
	PCUT_MAIN()

As you can see, there is no manual listing of tests that form the test
suite etc, only the tests and ``PCUT_INIT`` at the beginning and
``PCUT_MAIN`` at the end.

This code has to be linked with ``libpcut`` to get an executable that runs
the tests and reports the results.

More examples, in the form of self-tests, are available in the ``tests/``
subdirectory.
Other examples can be found on the Wiki.


Building and installing
-----------------------

PCUT uses CMake (http://www.cmake.org/).
On Unix systems, following commands build the library and execute the
built-in tests::

	mkdir build
	cd build
	cmake .. && make all test

More details can be found on https://github.com/vhotspur/pcut/wiki/Building.
