summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2021-09-10 00:17:24 +0000
committerYann Ylavic <ylavic@apache.org>2021-09-10 00:17:24 +0000
commit163521ebfaa78bec639897b3c4d3bdcd35a9cd1c (patch)
treed84b38503b848ea21e9d127ea06ffd8c82fbf829 /test
parent398fc32f2930640777aa1afc3417d73c4f3afc48 (diff)
downloadapr-163521ebfaa78bec639897b3c4d3bdcd35a9cd1c.tar.gz
test: fix memory leaks of the test framework at exit.
To please memory leak analysers.. git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1893202 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/abts.c18
-rw-r--r--test/abts.h2
-rw-r--r--test/sendfile.c6
3 files changed, 21 insertions, 5 deletions
diff --git a/test/abts.c b/test/abts.c
index 3c5660fc2..8d651797b 100644
--- a/test/abts.c
+++ b/test/abts.c
@@ -125,7 +125,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) {
@@ -157,6 +157,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;
@@ -483,6 +498,7 @@ int main(int argc, const char *const argv[]) {
}
rv = report(suite);
+ abts_free_suite(suite);
return rv;
}
diff --git a/test/abts.h b/test/abts.h
index d4603ae34..73d25a83f 100644
--- a/test/abts.h
+++ b/test/abts.h
@@ -39,7 +39,7 @@ extern "C" {
#endif
struct sub_suite {
- const char *name;
+ char *name;
int num_test;
int failed;
int skipped;
diff --git a/test/sendfile.c b/test/sendfile.c
index f8de30984..a09df421f 100644
--- a/test/sendfile.c
+++ b/test/sendfile.c
@@ -274,7 +274,7 @@ static int client(apr_pool_t *p, client_socket_mode_t socket_mode,
hdtr.headers[0].iov_len = strlen(hdtr.headers[0].iov_base);
hdtr.headers[1].iov_base = HDR2;
hdtr.headers[1].iov_len = strlen(hdtr.headers[1].iov_base);
- hdtr.headers[2].iov_base = malloc(HDR3_LEN);
+ hdtr.headers[2].iov_base = apr_palloc(p, HDR3_LEN);
assert(hdtr.headers[2].iov_base);
memset(hdtr.headers[2].iov_base, HDR3_CHAR, HDR3_LEN);
hdtr.headers[2].iov_len = HDR3_LEN;
@@ -285,9 +285,9 @@ static int client(apr_pool_t *p, client_socket_mode_t socket_mode,
hdtr.trailers[0].iov_len = strlen(hdtr.trailers[0].iov_base);
hdtr.trailers[1].iov_base = TRL2;
hdtr.trailers[1].iov_len = strlen(hdtr.trailers[1].iov_base);
- hdtr.trailers[2].iov_base = malloc(TRL3_LEN);
- memset(hdtr.trailers[2].iov_base, TRL3_CHAR, TRL3_LEN);
+ hdtr.trailers[2].iov_base = apr_palloc(p, TRL3_LEN);
assert(hdtr.trailers[2].iov_base);
+ memset(hdtr.trailers[2].iov_base, TRL3_CHAR, TRL3_LEN);
hdtr.trailers[2].iov_len = TRL3_LEN;
expected_len =