#include #include #include #define TEST_MOD #include "generated.c" double diff_time(struct timespec a, struct timespec b) { double a_time = (double)a.tv_sec + a.tv_nsec * 1e-9; double b_time = (double)b.tv_sec + b.tv_nsec * 1e-9; return a_time - b_time; } int main() { int i = 0; int return_type = 0; while (i < total_test_count) { char padded_testname[max_test_name_size + 2]; int j = 0; while (test_names[i][j] != 0) { padded_testname[j] = test_names[i][j]; j++; } while (j < max_test_name_size + 2) { padded_testname[j++] = ' '; } padded_testname[j] = 0; printf("%s", padded_testname); fflush(stdout); struct timespec begin, end; clock_gettime(CLOCK_MONOTONIC, &begin); bool result = tests[i](); clock_gettime(CLOCK_MONOTONIC, &end); return_type |= !result; printf( " %s %.2lfs\n", result ? "\x1b[32mP\x1b[0m" : "\x1b[31mF\x1b[0m", diff_time(end, begin) ); i++; } return return_type; }