ucx/test.c

Wed, 27 Feb 2013 14:04:45 +0100

author
Mike Becker <universe@uap-core.de>
date
Wed, 27 Feb 2013 14:04:45 +0100
changeset 97
499e1b465d77
parent 83
3b552d7a9610
child 103
08018864fb91
permissions
-rw-r--r--

fixed execution order of tests + added test for sstrtrim

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@83 21 UcxTestList *l = suite->tests;
universe@83 22 while (l != NULL) {
universe@83 23 UcxTestList *e = l;
universe@83 24 l = l->next;
universe@83 25 free(e);
universe@83 26 }
universe@26 27 free(suite);
universe@26 28 }
universe@26 29
universe@83 30 int ucx_test_register(UcxTestSuite* suite, UcxTest test) {
universe@83 31 if (suite->tests) {
universe@97 32 UcxTestList *newelem = (UcxTestList*) malloc(sizeof(UcxTestList));
universe@97 33 if (newelem) {
universe@97 34 newelem->test = test;
universe@97 35 newelem->next = NULL;
universe@97 36
universe@97 37 UcxTestList *last = suite->tests;
universe@97 38 while (last->next) {
universe@97 39 last = last->next;
universe@97 40 }
universe@97 41 last->next = newelem;
universe@83 42
universe@83 43 return EXIT_SUCCESS;
universe@83 44 } else {
universe@83 45 return EXIT_FAILURE;
universe@83 46 }
universe@83 47 } else {
universe@83 48 suite->tests = (UcxTestList*) malloc(sizeof(UcxTestList));
universe@83 49 if (suite->tests) {
universe@83 50 suite->tests->test = test;
universe@83 51 suite->tests->next = NULL;
universe@83 52
universe@83 53 return EXIT_SUCCESS;
universe@83 54 } else {
universe@83 55 return EXIT_FAILURE;
universe@83 56 }
universe@83 57 }
universe@26 58 }
universe@26 59
universe@26 60 void ucx_test_run(UcxTestSuite* suite, FILE* output) {
universe@26 61 suite->success = 0;
universe@26 62 suite->failure = 0;
universe@83 63 UCX_FOREACH (UcxTestList*, suite->tests, e) {
universe@83 64 e->test(suite, output);
universe@26 65 }
universe@26 66 fwrite("\nAll test completed.\n", 1, 21, output);
universe@26 67 fprintf(output, " Total: %d\n Success: %d\n Failure: %d\n",
universe@26 68 suite->success+suite->failure, suite->success, suite->failure);
universe@26 69 }

mercurial