/* 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 . */ // Tracks information about the tests being run. typedef struct TestState { int run; // number of tests run int passed; // number of successful tests int failed; // number of failed tests int postponed; // number of postponed tests } TestState; // Possible results of running a single test typedef enum TestResult { test_success, test_failure, test_postponed } TestResult; // Initializes a TestState value extern void initTestState(TestState *); // Runs a single test extern void runTest( TestState *, // the TestState data TestResult (*)(void) // the test to run ); // Runs multiple tests extern void runTests( // function that runs the tests and updates the provided TestState void (*)(TestState *) ); //jl