universe@26: /* universe@26: * File: test.c universe@26: * Author: Mike universe@26: * universe@26: * Created on 18. Februar 2012, 14:15 universe@26: */ universe@26: universe@26: #include "test.h" universe@26: universe@26: UcxTestSuite* ucx_test_suite_new() { universe@26: UcxTestSuite* suite = (UcxTestSuite*) malloc(sizeof(UcxTestSuite)); universe@26: if (suite != NULL) { universe@26: suite->success = 0; universe@26: suite->failure = 0; universe@26: suite->tests = NULL; universe@26: } universe@26: return suite; universe@26: } universe@26: universe@26: void ucx_test_suite_free(UcxTestSuite* suite) { universe@83: UcxTestList *l = suite->tests; universe@83: while (l != NULL) { universe@83: UcxTestList *e = l; universe@83: l = l->next; universe@83: free(e); universe@83: } universe@26: free(suite); universe@26: } universe@26: universe@83: int ucx_test_register(UcxTestSuite* suite, UcxTest test) { universe@83: if (suite->tests) { universe@83: UcxTestList *list = (UcxTestList*) malloc(sizeof(UcxTestList)); universe@83: if (list) { universe@83: list->test = test; universe@83: list->next = suite->tests; universe@83: suite->tests = list; universe@83: universe@83: return EXIT_SUCCESS; universe@83: } else { universe@83: return EXIT_FAILURE; universe@83: } universe@83: } else { universe@83: suite->tests = (UcxTestList*) malloc(sizeof(UcxTestList)); universe@83: if (suite->tests) { universe@83: suite->tests->test = test; universe@83: suite->tests->next = NULL; universe@83: universe@83: return EXIT_SUCCESS; universe@83: } else { universe@83: return EXIT_FAILURE; universe@83: } universe@83: } universe@26: } universe@26: universe@26: void ucx_test_run(UcxTestSuite* suite, FILE* output) { universe@26: suite->success = 0; universe@26: suite->failure = 0; universe@83: UCX_FOREACH (UcxTestList*, suite->tests, e) { universe@83: e->test(suite, output); universe@26: } universe@26: fwrite("\nAll test completed.\n", 1, 21, output); universe@26: fprintf(output, " Total: %d\n Success: %d\n Failure: %d\n", universe@26: suite->success+suite->failure, suite->success, suite->failure); universe@26: }