/* 9unit Copyright (C) 2023 Jonathan Lamothe This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "9unit.h" void initTestState(TestState *s) { if (!s) return; s->run = 0; s->passed = 0; s->failed = 0; s->postponed = 0; } void runTest(TestState *s, TestResult (*t)(void)) { if (!(s && t)) return; s->run++; switch ((*t)()) { case test_success: s->passed++; break; case test_failure: s->failed++; break; case test_postponed: s->postponed++; break; } } void runTests(void (*tests)(TestState *)) { if(!tests) return; TestState s; initTestState(&s); (*tests)(&s); printf("Tests run: %d\n", s.run); printf("Tests passed: %d\n", s.passed); printf("Tests failed: %d\n", s.failed); printf("Tests postponed: %d\n", s.postponed); } //jl