diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-07-19 20:15:31 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-07-19 20:15:31 +0000 |
commit | c9d068253d379fcbfc5102c3ca772d96f8bc2581 (patch) | |
tree | 34325a8cdb8a5ea0be2fd329c85560a5511001a0 /src/testzzuf | |
parent | 1237387390f4be97f861a5cb93eec2445fe1a565 (diff) | |
download | libmicrohttpd-c9d068253d379fcbfc5102c3ca772d96f8bc2581.tar.gz libmicrohttpd-c9d068253d379fcbfc5102c3ca772d96f8bc2581.zip |
-fixing memory leaks in testcases
Diffstat (limited to 'src/testzzuf')
-rw-r--r-- | src/testzzuf/test_post.c | 28 | ||||
-rw-r--r-- | src/testzzuf/test_post_form.c | 31 |
2 files changed, 52 insertions, 7 deletions
diff --git a/src/testzzuf/test_post.c b/src/testzzuf/test_post.c index 66077b4f..9bc3c604 100644 --- a/src/testzzuf/test_post.c +++ b/src/testzzuf/test_post.c | |||
@@ -50,6 +50,21 @@ struct CBC | |||
50 | size_t size; | 50 | size_t size; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | |||
54 | static void | ||
55 | completed_cb (void *cls, | ||
56 | struct MHD_Connection *connection, | ||
57 | void **con_cls, | ||
58 | enum MHD_RequestTerminationCode toe) | ||
59 | { | ||
60 | struct MHD_PostProcessor *pp = *con_cls; | ||
61 | |||
62 | if (NULL != pp) | ||
63 | MHD_destroy_post_processor (pp); | ||
64 | *con_cls = NULL; | ||
65 | } | ||
66 | |||
67 | |||
53 | static size_t | 68 | static size_t |
54 | copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) | 69 | copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) |
55 | { | 70 | { |
@@ -62,6 +77,7 @@ copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) | |||
62 | return size * nmemb; | 77 | return size * nmemb; |
63 | } | 78 | } |
64 | 79 | ||
80 | |||
65 | /** | 81 | /** |
66 | * Note that this post_iterator is not perfect | 82 | * Note that this post_iterator is not perfect |
67 | * in that it fails to support incremental processing. | 83 | * in that it fails to support incremental processing. |
@@ -142,7 +158,9 @@ testInternalPost () | |||
142 | cbc.size = 2048; | 158 | cbc.size = 2048; |
143 | cbc.pos = 0; | 159 | cbc.pos = 0; |
144 | d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */ , | 160 | d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */ , |
145 | 11080, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 161 | 11080, NULL, NULL, &ahc_echo, NULL, |
162 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
163 | MHD_OPTION_END); | ||
146 | if (d == NULL) | 164 | if (d == NULL) |
147 | return 1; | 165 | return 1; |
148 | zzuf_socat_start (); | 166 | zzuf_socat_start (); |
@@ -191,7 +209,9 @@ testMultithreadedPost () | |||
191 | cbc.size = 2048; | 209 | cbc.size = 2048; |
192 | cbc.pos = 0; | 210 | cbc.pos = 0; |
193 | d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */ , | 211 | d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */ , |
194 | 11080, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 212 | 11080, NULL, NULL, &ahc_echo, NULL, |
213 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
214 | MHD_OPTION_END); | ||
195 | if (d == NULL) | 215 | if (d == NULL) |
196 | return 16; | 216 | return 16; |
197 | 217 | ||
@@ -252,7 +272,9 @@ testExternalPost () | |||
252 | cbc.size = 2048; | 272 | cbc.size = 2048; |
253 | cbc.pos = 0; | 273 | cbc.pos = 0; |
254 | d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */ , | 274 | d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */ , |
255 | 1082, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 275 | 1082, NULL, NULL, &ahc_echo, NULL, |
276 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
277 | MHD_OPTION_END); | ||
256 | if (d == NULL) | 278 | if (d == NULL) |
257 | return 256; | 279 | return 256; |
258 | multi = curl_multi_init (); | 280 | multi = curl_multi_init (); |
diff --git a/src/testzzuf/test_post_form.c b/src/testzzuf/test_post_form.c index 873c7fef..34bc0114 100644 --- a/src/testzzuf/test_post_form.c +++ b/src/testzzuf/test_post_form.c | |||
@@ -19,7 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * @file daemontest_post.c | 22 | * @file test_post_form.c |
23 | * @brief Testcase for libmicrohttpd POST operations using multipart/postform data | 23 | * @brief Testcase for libmicrohttpd POST operations using multipart/postform data |
24 | * @author Christian Grothoff | 24 | * @author Christian Grothoff |
25 | */ | 25 | */ |
@@ -48,6 +48,21 @@ struct CBC | |||
48 | size_t size; | 48 | size_t size; |
49 | }; | 49 | }; |
50 | 50 | ||
51 | |||
52 | static void | ||
53 | completed_cb (void *cls, | ||
54 | struct MHD_Connection *connection, | ||
55 | void **con_cls, | ||
56 | enum MHD_RequestTerminationCode toe) | ||
57 | { | ||
58 | struct MHD_PostProcessor *pp = *con_cls; | ||
59 | |||
60 | if (NULL != pp) | ||
61 | MHD_destroy_post_processor (pp); | ||
62 | *con_cls = NULL; | ||
63 | } | ||
64 | |||
65 | |||
51 | static size_t | 66 | static size_t |
52 | copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) | 67 | copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) |
53 | { | 68 | { |
@@ -90,6 +105,7 @@ post_iterator (void *cls, | |||
90 | return MHD_YES; | 105 | return MHD_YES; |
91 | } | 106 | } |
92 | 107 | ||
108 | |||
93 | static int | 109 | static int |
94 | ahc_echo (void *cls, | 110 | ahc_echo (void *cls, |
95 | struct MHD_Connection *connection, | 111 | struct MHD_Connection *connection, |
@@ -161,7 +177,9 @@ testInternalPost () | |||
161 | cbc.size = 2048; | 177 | cbc.size = 2048; |
162 | cbc.pos = 0; | 178 | cbc.pos = 0; |
163 | d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */ , | 179 | d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */ , |
164 | 11080, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 180 | 11080, NULL, NULL, &ahc_echo, NULL, |
181 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
182 | MHD_OPTION_END); | ||
165 | if (d == NULL) | 183 | if (d == NULL) |
166 | return 1; | 184 | return 1; |
167 | zzuf_socat_start (); | 185 | zzuf_socat_start (); |
@@ -195,6 +213,7 @@ testInternalPost () | |||
195 | return 0; | 213 | return 0; |
196 | } | 214 | } |
197 | 215 | ||
216 | |||
198 | static int | 217 | static int |
199 | testMultithreadedPost () | 218 | testMultithreadedPost () |
200 | { | 219 | { |
@@ -209,7 +228,9 @@ testMultithreadedPost () | |||
209 | cbc.size = 2048; | 228 | cbc.size = 2048; |
210 | cbc.pos = 0; | 229 | cbc.pos = 0; |
211 | d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */ , | 230 | d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */ , |
212 | 11080, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 231 | 11080, NULL, NULL, &ahc_echo, NULL, |
232 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
233 | MHD_OPTION_END); | ||
213 | if (d == NULL) | 234 | if (d == NULL) |
214 | return 16; | 235 | return 16; |
215 | zzuf_socat_start (); | 236 | zzuf_socat_start (); |
@@ -268,7 +289,9 @@ testExternalPost () | |||
268 | cbc.size = 2048; | 289 | cbc.size = 2048; |
269 | cbc.pos = 0; | 290 | cbc.pos = 0; |
270 | d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */ , | 291 | d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */ , |
271 | 1082, NULL, NULL, &ahc_echo, NULL, MHD_OPTION_END); | 292 | 1082, NULL, NULL, &ahc_echo, NULL, |
293 | MHD_OPTION_NOTIFY_COMPLETED, &completed_cb, NULL, | ||
294 | MHD_OPTION_END); | ||
272 | if (d == NULL) | 295 | if (d == NULL) |
273 | return 256; | 296 | return 256; |
274 | multi = curl_multi_init (); | 297 | multi = curl_multi_init (); |