awooOS

Tinker

A test framework for C code, which only requires a C11 compiler and a pointer to a putchar()-compatible function.

(It may work with a pre-C11 compiler, but this has not been tested.)

Source: https://github.com/awooos/tinker

Issues: https://github.com/awooos/tinker/issues

Usage

TODO: Actual good documentation.

For now, here's an example:

#include <stdio.h> // for putchar()

// unit test
void test_some_function() {
    bool result = some_function();

    if (result == 0) {
        tinker_pass()
    } else if (result == 1) {
        tinker_fail("Failure reason #1.");
    } else if (result == 2) {
        tinker_fail("Failure reason #2.");
    }
}

// collection of assertions.
void test_math() {
    tinker_assert(1 + 1 == 2);
    tinker_assert(1 - 1 == 0);
    tinker_assert(2 * 2 == 4);
    tinker_assert(4 / 2 == 2);
}

void test_unfinished() {
    tinker_skip("Not implemented.");
    return;

    // <test unfinished functionality here>
}

void add_tests() {
  tinker_add_test(some_function);
  tinker_add_test(math);
  tinker_add_test(unfinished);
}

int main() {
  add_tests();
  tinker_run_tests(&putchar);
}

License

The code is available as open source under the terms of the MIT License.