56 lines
1.4 KiB
C
Raw Normal View History

2025-11-29 01:49:14 +01:00
#ifndef TEST_FRAMEWORK_H
#define TEST_FRAMEWORK_H
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
extern int tests_run;
extern int tests_passed;
extern int tests_failed;
#define TEST_ASSERT(condition, message) do { \
tests_run++; \
if (condition) { \
tests_passed++; \
printf(" [PASS] %s\n", message); \
} else { \
tests_failed++; \
printf(" [FAIL] %s (line %d)\n", message, __LINE__); \
} \
} while(0)
#define TEST_ASSERT_EQ(expected, actual, message) do { \
tests_run++; \
if ((expected) == (actual)) { \
tests_passed++; \
printf(" [PASS] %s\n", message); \
} else { \
tests_failed++; \
printf(" [FAIL] %s (expected %d, got %d, line %d)\n", message, (int)(expected), (int)(actual), __LINE__); \
} \
} while(0)
#define TEST_ASSERT_STR_EQ(expected, actual, message) do { \
tests_run++; \
if (strcmp(expected, actual) == 0) { \
tests_passed++; \
printf(" [PASS] %s\n", message); \
} else { \
tests_failed++; \
printf(" [FAIL] %s (expected '%s', got '%s', line %d)\n", message, expected, actual, __LINE__); \
} \
} while(0)
#define TEST_SUITE_BEGIN(name) do { \
printf("\n=== Test Suite: %s ===\n", name); \
} while(0)
#define TEST_SUITE_END() do { \
printf("\n"); \
} while(0)
void test_summary(void);
#endif