#ifndef TESTS_H #define TESTS_H #include #include #ifndef NOCOLOR #define TBLD "\033[1m" #define TRED "\033[31m" #define TGRN "\033[32m" #define TBLU "\033[34m" #define TRST "\033[0m" #else #define TBLD "" #define TRED "" #define TGRN "" #define TBLU "" #define TRST "" #endif #define RUN_TEST(test_func) \ printf("%s:\t", #test_func); \ fflush(stdout); \ test_func(); \ printf(TGRN "OK!\n" TRST) #define INIT_TESTS() \ printf(TBLD "running %s tests\n" TRST, __FILE__) #define FAIL_TEST(reason) \ printf(TBLD TRED "FAIL!\n" TRST); \ printf("%s:%d: %s: ", __FILE__, __LINE__, __func__); \ printf(reason); \ abort() #define asserteq(a, b) \ if (a != b) { \ FAIL_TEST("assertion " TBLD TBLU #a " == " #b TRST " failed\n"); \ } #define assertneq(a, b) \ if (a == b) { \ FAIL_TEST("assertion " TBLD TBLU #a " != " #b TRST " failed\n"); \ } #endif