/* 9unit Copyright (C) Jonathan Lamothe This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #include #include "../9unit.h" #include "util.h" #include "run-test.h" // Internal Prototypes static void test_pass(TestState *); static void test_fail(TestState *); static void test_pend(TestState *); static void null_state(TestState *); decl_test(always_passes); decl_test(always_fails); decl_test(always_pends); // Public Functions void test_run_test(TestState *s) { print("run_test()\n"); test_pass(s); test_fail(s); test_pend(s); null_state(s); } // Internal Functions static void test_pass(TestState *s) { TestState expected, actual; print("\tpassing\n"); // expected result memset(&expected, 0, sizeof(TestState)); expected.passed = 2; expected.failed = 2; expected.pending = 3; expected.run = 7; // actual result mk_sample_state(&actual); run_test(&actual, always_passes); chk_TestState_eq( s, "\t\t", "ERROR: run_test(): passing:", &actual, &expected ); } static void test_fail(TestState *s) { TestState expected, actual; print("\tfailing\n"); // expected result memset(&expected, 0, sizeof(TestState)); expected.passed = 1; expected.failed = 3; expected.pending = 3; expected.run = 7; // actual result mk_sample_state(&actual); run_test(&actual, always_fails); chk_TestState_eq( s, "\t\t", "ERROR: run_test(): failing:", &expected, &actual ); } static void test_pend(TestState *s) { TestState expected, actual; print("\tpending\n"); // expected result memset(&expected, 0, sizeof(TestState)); expected.passed = 1; expected.failed = 2; expected.pending = 4; expected.run = 7; // actual result mk_sample_state(&actual); run_test(&actual, always_pends); chk_TestState_eq( s, "\t\t", "ERROR: run_test(): pending:", &expected, &actual ); } static void null_state(TestState *s) { print("\tnull state\n"); // make sure it doesn't crash run_test(0, always_passes); } decl_test(always_passes) { return test_success; } decl_test(always_fails) { return test_failure; } decl_test(always_pends) { return test_pending; } //jl