3.2 Data Structures
/* Test result */
typedef enum {
D3TUI_TEST_PASSED,
D3TUI_TEST_FAILED,
D3TUI_TEST_SKIPPED,
D3TUI_TEST_ERROR
} d3tui_test_result_t;
/* Test case */
typedef struct {
const char *name; /* Test name */
const char *suite; /* Test suite */
void (*func)(void); /* Test function */
d3tui_test_result_t result; /* Test result */
const char *failure_msg; /* Failure message */
uint32_t duration_ms; /* Test duration */
bool enabled; /* Test enabled */
} d3tui_test_case_t;
/* Test suite */
typedef struct {
const char *name; /* Suite name */
d3tui_test_case_t *tests; /* Array of tests */
size_t test_count; /* Number of tests */
size_t passed; /* Passed count */
size_t failed; /* Failed count */
size_t skipped; /* Skipped count */
size_t errors; /* Error count */
} d3tui_test_suite_t;
/* Test runner */
typedef struct {
d3tui_test_suite_t *suites; /* Array of suites */
size_t suite_count; /* Number of suites */
size_t total_passed; /* Total passed */
size_t total_failed; /* Total failed */
size_t total_skipped; /* Total skipped */
size_t total_errors; /* Total errors */
bool verbose; /* Verbose output */
bool stop_on_failure; /* Stop on first failure */
} d3tui_test_runner_t;