From b260fdca1b8a427b5a8794b37a9a86904367bb72 Mon Sep 17 00:00:00 2001 From: Snaipe Date: Fri, 6 Feb 2015 14:08:14 +0100 Subject: [PATCH] Added philosophy & features, fixed formatting [ci skip] --- README.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 936d5b6..e7db71b 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,27 @@ Criterion ========= +A dead-simple, yet extensible, C test framework. + +## 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, +then register new test suites, then register the tests within +these suits, and finally call the right functions. + +This gives the user great control, at the unfortunate cost of simplicity. + +Criterion follows the KISS principle, while keeping the control +the user would have with other frameworks: + +* Tests are automatically registered when declared. +* A default entry point is provided, no need to declare a main + unless you want to do special handling. +* Test are isolated in their own process, crashes and signals can be + reported and tested. +* Progress and statistics can be followed in real time with report hooks. + ## Installation ```bash @@ -29,7 +50,7 @@ Sample tests can be found in the [sample directory](https://github.com/Snaipe/Cr ## F.A.Q. -**Q. What's wrong with other test frameworks?** +**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 @@ -38,11 +59,11 @@ A. I worked with CUnit and Check, and I must say that they do their job main, manually register suites, then tests. Criterion tries to fix these shortcomings. -**Q. Where has this been tested?** +**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. More tests will be added on the build matrix. -**Q. Will this work under Windows/MSVC?** +**Q. Will this work under Windows/MSVC?** A. Windows support with MinGW is coming, but MSVC is a bit of a lost cause for the C language. The project internally uses c99 features and gnu extensions, and MSVC is stuck at supporting c89.