diff --git a/src/core/runner.c b/src/core/runner.c index 34ac6ce..1aae935 100644 --- a/src/core/runner.c +++ b/src/core/runner.c @@ -361,6 +361,8 @@ void criterion_finalize(struct criterion_test_set *set) { #ifndef ENABLE_VALGRIND_ERRORS VALGRIND_ENABLE_ERROR_REPORTING; #endif + + criterion_free_output(); } static void run_tests_async(struct criterion_test_set *set, diff --git a/src/log/output.c b/src/log/output.c index b7893ff..b5ce1fb 100644 --- a/src/log/output.c +++ b/src/log/output.c @@ -44,6 +44,13 @@ int criterion_add_output(const char *provider, const char *path) { } void criterion_free_output(void) { + for (khint_t k = kh_begin(outputs); k != kh_end(outputs); ++k) { + if (!kh_exist(outputs, k)) + continue; + str_vec *vec = kh_value(outputs, k); + kv_destroy(*vec); + free(vec); + } kh_destroy(ht_str, reporters); kh_destroy(ht_path, outputs); }