aboutsummaryrefslogtreecommitdiff
path: root/unit
diff options
context:
space:
mode:
Diffstat (limited to 'unit')
-rw-r--r--[-rwxr-xr-x]unit/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]unit/include/BH/Unit.h0
-rw-r--r--[-rwxr-xr-x]unit/src/Unit.c17
3 files changed, 17 insertions, 0 deletions
diff --git a/unit/CMakeLists.txt b/unit/CMakeLists.txt
index 42e9ffb..42e9ffb 100755..100644
--- a/unit/CMakeLists.txt
+++ b/unit/CMakeLists.txt
diff --git a/unit/include/BH/Unit.h b/unit/include/BH/Unit.h
index 3b3b2b6..3b3b2b6 100755..100644
--- a/unit/include/BH/Unit.h
+++ b/unit/include/BH/Unit.h
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;
}