Skip to content

Latest commit

 

History

History
79 lines (65 loc) · 1.79 KB

readme.md

File metadata and controls

79 lines (65 loc) · 1.79 KB

Testoasterror

Testoasterror is a minimalistic testing library. It is written in C99 and does not use dynamic memory allocations by default.

Testing

Run make and make run. This will execute the example in the tests folder.

Using

TL;DR

Check out the tests folder

Details

Include testoasterror.h and compile testoasterror.c with your testing main().

Declare an array of bool to hold the results of each tested expression. Its size determines the maximum number of expression checks for the same test. If one outreaches that limit, testoasterror will print a "fail overflow" message. The limit is 255, the maximum for a uint8_t.

bool results[255];

Also declare an array of function pointers to hold your tests

void (*funcs[3])(struct testoasterror*) =
{
	test1,
	test2,
	test3
}

Then, initialize a testoasterror context, giving:

  • a pointer to the context to initialize
  • the expression results buffer
  • its length
  • the testing functions array
  • its length
struct testoasterror test;
testoasterror_init(&test, results, 255, funcs, 3);

Run the tests and you're good to go!

testoasterror_run(&test);

You can now write your tests in other C files, using the same function prototype

#ifndef C_TESTS
#define C_TESTS

#include "testoasterror.h"

// a test
void test1(struct testoasterror* test)
{
	// an expression check
	testoasterror(test, 1 > 0);
}

#endif

It is, in my opinion, a good idea to include them directly with the main(). This way, the function pointers will resolve without the need for a header (hence the include guards in the C file example above)

#include "tests.c"

Extra: to abort, call the fail function and return

testoasterror_fail(test);

Greetings

nnorm for ninja-starring this repo (how can you be this fast?!)