Simple to use library to easily cover your code with tests. No dependencies, no obscure or over-engineered pipeline, just a dead-simple framework. You can easily make use of it, it looks pleasant (especially on CI flows), and it won't slow you down anyhow.
- zpl - This is where the library has originated.
- librg - Making multi-player simpler since 2017. Single-header cross-platform world replication library in pure C99.
- Easy to use single-header framework
- No dependencies (except the standard library :)
- Works with C99 code
- Integrates well within any CI pipeline
- Supports the following checks:
FAIL,UFAIL,STRFAIL,EQUALS,UEQUALS,STREQUALS,STRCEQUALS,STRCNEQUALS,STRNEQUALS,NEQUALS,LESSER,GREATER,LESSEREQ,GREATEREQ,SKIP - Did I mention it takes a minimum time to set up?
- Either clone the repository or download unit.h.
- Include
unit.hin your test app and cover your code already!
At first, we should define our entry point for the tester app:
#define UNIT_MAX_MODULES 2
#include "unit.h"
/* TEST CATEGORIES */
#include "cases/some_math.h"
#include "cases/cool_stuff.h"
int main() {
UNIT_CREATE("small");
UNIT_MODULE(math);
UNIT_MODULE(cool_stuff);
return UNIT_RUN();
}As you can see, this app defines 2 test modules called: math and cool_stuff, respectively.
Let's explore them!
#include <math.h>
MODULE(math, {
IT("can do cos(0)", {
EQUALS(cosf(0), 1);
});
IT("can do sqrt(9)", {
EQUALS(sqrtf(9), 3);
});
});MODULE(cool_stuff, {
IT("can predict the future", {
// Not today ...
SKIP();
});
});As you can see, this is all it takes to cover your code, relatively simple, right? You can also skip tests you plan on running later in the future (or never :)
Have fun!

