diff options
Diffstat (limited to 'unit/src/Unit.c')
| -rw-r--r--[-rwxr-xr-x] | unit/src/Unit.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/unit/src/Unit.c b/unit/src/Unit.c index ead5449..57d80b1 100755..100644 --- a/unit/src/Unit.c +++ b/unit/src/Unit.c @@ -12,6 +12,21 @@ typedef struct BH_Unit static BH_Unit *root = NULL; +static void BH_UnitCleanup(void) +{ + BH_Unit *current; + + current = root; + while (current) + { + BH_Unit *next = current->next; + + free(current); + current = next; + } +} + + void BH_UnitAdd(const char *name, BH_UnitCallback cb) { BH_Unit *unit, *current; @@ -49,6 +64,7 @@ int BH_UnitRun(void) if (current->cb()) { printf("\tFAIL\n"); + BH_UnitCleanup(); return -1; } printf("\tPASS\n"); @@ -56,6 +72,7 @@ int BH_UnitRun(void) current = current->next; } + BH_UnitCleanup(); return 0; } |
