ucx/test.c

Sat, 18 Feb 2012 15:50:43 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 18 Feb 2012 15:50:43 +0100
changeset 26
59f147baea31
child 83
3b552d7a9610
permissions
-rw-r--r--

added test framework and foreach macro

universe@26 1 /*
universe@26 2 * File: test.c
universe@26 3 * Author: Mike
universe@26 4 *
universe@26 5 * Created on 18. Februar 2012, 14:15
universe@26 6 */
universe@26 7
universe@26 8 #include "test.h"
universe@26 9
universe@26 10 UcxTestSuite* ucx_test_suite_new() {
universe@26 11 UcxTestSuite* suite = (UcxTestSuite*) malloc(sizeof(UcxTestSuite));
universe@26 12 if (suite != NULL) {
universe@26 13 suite->success = 0;
universe@26 14 suite->failure = 0;
universe@26 15 suite->tests = NULL;
universe@26 16 }
universe@26 17 return suite;
universe@26 18 }
universe@26 19
universe@26 20 void ucx_test_suite_free(UcxTestSuite* suite) {
universe@26 21 ucx_list_free(suite->tests);
universe@26 22 free(suite);
universe@26 23 }
universe@26 24
universe@26 25 void ucx_test_register(UcxTestSuite* suite, UcxTest test) {
universe@26 26 suite->tests = ucx_list_append(suite->tests, (void*) test);
universe@26 27 }
universe@26 28
universe@26 29 void ucx_test_run(UcxTestSuite* suite, FILE* output) {
universe@26 30 suite->success = 0;
universe@26 31 suite->failure = 0;
universe@26 32 UCX_FOREACH (UcxList*, suite->tests, e) {
universe@26 33 UcxTest test = (UcxTest) (e->data);
universe@26 34 test(suite, output);
universe@26 35 }
universe@26 36 fwrite("\nAll test completed.\n", 1, 21, output);
universe@26 37 fprintf(output, " Total: %d\n Success: %d\n Failure: %d\n",
universe@26 38 suite->success+suite->failure, suite->success, suite->failure);
universe@26 39 }

mercurial