summaryrefslogtreecommitdiff
path: root/test/abts.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/abts.c')
-rw-r--r--test/abts.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/test/abts.c b/test/abts.c
index cab2e1aa0..ef9f9dbf1 100644
--- a/test/abts.c
+++ b/test/abts.c
@@ -120,7 +120,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
suite_name, p - suite_name);
}
else {
- subsuite->name = suite_name;
+ subsuite->name = strdup(suite_name);
}
if (list_tests) {
@@ -152,6 +152,21 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
return suite;
}
+static void abts_free_suite(abts_suite *suite)
+{
+ if (suite) {
+ sub_suite *dptr, *next;
+
+ for (dptr = suite->head; dptr; dptr = next) {
+ next = dptr->next;
+ free(dptr->name);
+ free(dptr);
+ }
+
+ free(suite);
+ }
+}
+
void abts_run_test(abts_suite *ts, test_func f, void *value)
{
abts_case tc;
@@ -430,6 +445,7 @@ int main(int argc, const char *const argv[]) {
}
rv = report(suite);
+ abts_free_suite(suite);
return rv;
}