- -
+ +
+
+

-Criterion

+Criterion Logo + -

Build Status -Coverage Status +

Unix Build Status +Windows Build Status +Coverage Status License -Version

+Version

-

A dead-simple, yet extensible, C unit testing framework.

+

A dead-simple, yet extensible, C and C++ unit testing framework.

Screencast

-Philosophy

+Philosophy

Most test frameworks for C require a lot of boilerplate code to set up tests and test suites -- you need to create a main, @@ -62,37 +56,52 @@ these suits, and finally call the right functions.

the user would have with other frameworks:

    +
  • [x] C99 and C++11 compatible.
  • [x] Tests are automatically registered when declared.
  • [x] Implements a xUnit framework structure.
  • [x] A default entry point is provided, no need to declare a main unless you want to do special handling.
  • [x] Test are isolated in their own process, crashes and signals can be reported and tested.
  • +
  • [x] Unified interface between C and C++: include the criterion header and it just works.
  • +
  • [x] Supports parameterized tests and theories.
  • [x] Progress and statistics can be followed in real time with report hooks.
  • [x] TAP output format can be enabled with an option.
  • -
  • [x] Runs on Linux, FreeBSD, Mac OS X, and Windows (Compiles only with MinGW or Cygwin).
  • +
  • [x] Runs on Linux, FreeBSD, Mac OS X, and Windows (Compiling with MinGW GCC and Visual Studio 2015+).

-Downloads

+Downloads + +

+Packages

+

+Binary archives

+ +

Binary releases are available on the release page

+

If you have a different platform, you can still build the library from source

-Documentation

+Developer Resources + +

+Documentation

An online documentation is available on ReadTheDocs (PDF | Zip | Epub)

-

-Samples

+

+Samples

Sample tests can be found in the sample directory.

@@ -105,42 +114,60 @@ reported and tested.
  • Using report hooks
  • +

    +Getting help

    + + + + + + + + + + + + + + + + + + +
    ChannelDescription
    Join the chat at https://gitter.im/Snaipe/Criterion +Snaipe/Criterion on gitter.im
    Join #criterion on freenode +#criterion on irc.freenode.net
    + +

    +Misc

    + + +

    -F.A.Q.

    +Credits -

    Q. What's wrong with other test frameworks?
    -A. I worked with CUnit and Check, and I must say that they do their job - very well -- the only thing that bugs me is that setting up a test - suite from scratch is a pain, it should really be simpler. Most - (if not all) high-level languages have test frameworks with automatic - test registration, but all the ones for C require you to set up a - main, manually register suites, then tests. Criterion tries to - fix these shortcomings.

    +

    Logo made by Paul Bouigue

    +
    -

    Q. Where has this been tested?
    -A. Currently, on Linux 2.6.32 and Linux 3.15.7, although it should work on - most *nix systems; Mac OS X Yosemite 10.10, FreeBSD 10.0, and finally - Windows 7 (with the MinGW and Cygwin ports of GCC).

    -
    +