31 lines
769 B
Plaintext
31 lines
769 B
Plaintext
Test_Suite :: struct {
|
|
name : string;
|
|
passed : int;
|
|
failed : int;
|
|
}
|
|
|
|
begin_suite :: (name: string) -> Test_Suite {
|
|
print("\n== % ==\n", name);
|
|
return .{ name = name };
|
|
}
|
|
|
|
check :: (suite: *Test_Suite, name: string, condition: bool) {
|
|
if condition {
|
|
suite.passed += 1;
|
|
print(" [PASS] %\n", name);
|
|
} else {
|
|
suite.failed += 1;
|
|
print(" [FAIL] %\n", name);
|
|
}
|
|
}
|
|
|
|
end_suite :: (suite: Test_Suite) {
|
|
total := suite.passed + suite.failed;
|
|
if suite.failed == 0 {
|
|
print(" => All % tests passed.\n", total);
|
|
} else {
|
|
print(" => %/% passed, % FAILED.\n", suite.passed, total, suite.failed);
|
|
assert(false, "Test suite '%' had % failure(s).", suite.name, suite.failed);
|
|
}
|
|
}
|