/* Minimal test harness: no dependencies, exit code = failure count. */ #ifndef NAUT_TEST_H #define NAUT_TEST_H #include #include static int naut_test_fails = 0; static int naut_test_count = 0; #define CHECK(cond) do { \ naut_test_count++; \ if (!(cond)) { \ naut_test_fails++; \ fprintf(stderr, " FAIL %s:%d: %s\n", __FILE__, __LINE__, #cond); \ } \ } while (0) #define CHECK_EQ(a, b) do { \ long long _a = (long long)(a), _b = (long long)(b); \ naut_test_count++; \ if (_a != _b) { \ naut_test_fails++; \ fprintf(stderr, " FAIL %s:%d: %s (%lld) == %s (%lld)\n", \ __FILE__, __LINE__, #a, _a, #b, _b); \ } \ } while (0) #define TEST_MAIN_END() do { \ fprintf(stderr, "%s: %d checks, %d failures\n", \ __FILE__, naut_test_count, naut_test_fails); \ return naut_test_fails ? 1 : 0; \ } while (0) #endif