/* 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 *); decl_test(null_state); static void null_test(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); run_test(s, null_state); null_test(s); } // Internal Functions static void test_pass(TestState *s) { TestState expected, actual; print("\tpassing\n"); // expected result mk_sample_state(&expected); expected.passed = 2; 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 mk_sample_state(&expected); expected.failed = 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 mk_sample_state(&expected); 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 ); } decl_test(null_state) { print("\tnull state\n"); run_test(0, always_passes); return test_success; } static void null_test(TestState *s) { TestState actual, expected; print("\tnull test\n"); // expected value mk_sample_state(&expected); expected.pending = 4; expected.run = 7; // actual value mk_sample_state(&actual); run_test(&actual, 0); chk_TestState_eq( s, "\t\t", "ERROR: run_test(): null_test:", &actual, &expected ); } decl_test(always_passes) { return test_success; } decl_test(always_fails) { return test_failure; } decl_test(always_pends) { return test_pending; } //jl