diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-03-12 23:33:00 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-03-13 01:24:34 +0100 |
commit | 7860923ce13f826ca6671b42aa7f1e62f9770c86 (patch) | |
tree | ff8c0190dc2c60afc21caacfc4c6937044cf5861 /src/set/test_set_api.c | |
parent | dda2c14c04b6ef6275934e752c6952f9e35dbf44 (diff) | |
download | gnunet-7860923ce13f826ca6671b42aa7f1e62f9770c86.tar.gz gnunet-7860923ce13f826ca6671b42aa7f1e62f9770c86.zip |
improve logging, shutdown on error without timeout, do not destroy listener too early
Diffstat (limited to 'src/set/test_set_api.c')
-rw-r--r-- | src/set/test_set_api.c | 76 |
1 files changed, 53 insertions, 23 deletions
diff --git a/src/set/test_set_api.c b/src/set/test_set_api.c index dd3f004f2..ca7d8a4e2 100644 --- a/src/set/test_set_api.c +++ b/src/set/test_set_api.c | |||
@@ -116,6 +116,7 @@ result_cb_set2 (void *cls, | |||
116 | oh2 = NULL; | 116 | oh2 = NULL; |
117 | fprintf (stderr, | 117 | fprintf (stderr, |
118 | "set 2: received failure status\n"); | 118 | "set 2: received failure status\n"); |
119 | GNUNET_SCHEDULER_shutdown (); | ||
119 | ret = 1; | 120 | ret = 1; |
120 | break; | 121 | break; |
121 | case GNUNET_SET_STATUS_DONE: | 122 | case GNUNET_SET_STATUS_DONE: |
@@ -147,8 +148,6 @@ listen_cb (void *cls, | |||
147 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); | 148 | GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); |
148 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 149 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
149 | "listen cb called\n"); | 150 | "listen cb called\n"); |
150 | GNUNET_SET_listen_cancel (listen_handle); | ||
151 | listen_handle = NULL; | ||
152 | oh2 = GNUNET_SET_accept (request, | 151 | oh2 = GNUNET_SET_accept (request, |
153 | GNUNET_SET_RESULT_ADDED, | 152 | GNUNET_SET_RESULT_ADDED, |
154 | (struct GNUNET_SET_Option[]) { 0 }, | 153 | (struct GNUNET_SET_Option[]) { 0 }, |
@@ -200,19 +199,25 @@ init_set2 (void *cls) | |||
200 | { | 199 | { |
201 | struct GNUNET_SET_Element element; | 200 | struct GNUNET_SET_Element element; |
202 | 201 | ||
203 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "initializing set 2\n"); | 202 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
203 | "initializing set 2\n"); | ||
204 | 204 | ||
205 | element.element_type = 0; | 205 | element.element_type = 0; |
206 | |||
207 | element.data = "hello"; | 206 | element.data = "hello"; |
208 | element.size = strlen(element.data); | 207 | element.size = strlen(element.data); |
209 | GNUNET_SET_add_element (set2, &element, NULL, NULL); | 208 | GNUNET_SET_add_element (set2, |
209 | &element, | ||
210 | NULL, NULL); | ||
210 | element.data = "quux"; | 211 | element.data = "quux"; |
211 | element.size = strlen(element.data); | 212 | element.size = strlen(element.data); |
212 | GNUNET_SET_add_element (set2, &element, NULL, NULL); | 213 | GNUNET_SET_add_element (set2, |
214 | &element, | ||
215 | NULL, NULL); | ||
213 | element.data = "baz"; | 216 | element.data = "baz"; |
214 | element.size = strlen(element.data); | 217 | element.size = strlen(element.data); |
215 | GNUNET_SET_add_element (set2, &element, &start, NULL); | 218 | GNUNET_SET_add_element (set2, |
219 | &element, | ||
220 | &start, NULL); | ||
216 | } | 221 | } |
217 | 222 | ||
218 | 223 | ||
@@ -225,14 +230,17 @@ init_set1 (void) | |||
225 | struct GNUNET_SET_Element element; | 230 | struct GNUNET_SET_Element element; |
226 | 231 | ||
227 | element.element_type = 0; | 232 | element.element_type = 0; |
228 | |||
229 | element.data = "hello"; | 233 | element.data = "hello"; |
230 | element.size = strlen(element.data); | 234 | element.size = strlen(element.data); |
231 | GNUNET_SET_add_element (set1, &element, NULL, NULL); | 235 | GNUNET_SET_add_element (set1, |
236 | &element, | ||
237 | NULL, NULL); | ||
232 | element.data = "bar"; | 238 | element.data = "bar"; |
233 | element.size = strlen(element.data); | 239 | element.size = strlen(element.data); |
234 | GNUNET_SET_add_element (set1, &element, init_set2, NULL); | 240 | GNUNET_SET_add_element (set1, |
235 | 241 | &element, | |
242 | &init_set2, | ||
243 | NULL); | ||
236 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 244 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
237 | "initialized set 1\n"); | 245 | "initialized set 1\n"); |
238 | } | 246 | } |
@@ -242,10 +250,15 @@ static int | |||
242 | iter_cb (void *cls, | 250 | iter_cb (void *cls, |
243 | const struct GNUNET_SET_Element *element) | 251 | const struct GNUNET_SET_Element *element) |
244 | { | 252 | { |
253 | struct GNUNET_SET_Handle *set = cls; | ||
254 | |||
245 | if (NULL == element) | 255 | if (NULL == element) |
246 | { | 256 | { |
247 | GNUNET_assert (3 == iter_count); | 257 | GNUNET_assert (3 == iter_count); |
248 | GNUNET_SET_destroy (cls); | 258 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
259 | "Iteration finished, destroying set %p\n", | ||
260 | set); | ||
261 | GNUNET_SET_destroy (set); | ||
249 | return GNUNET_YES; | 262 | return GNUNET_YES; |
250 | } | 263 | } |
251 | iter_count++; | 264 | iter_count++; |
@@ -262,21 +275,31 @@ test_iter () | |||
262 | struct GNUNET_SET_Element element; | 275 | struct GNUNET_SET_Element element; |
263 | struct GNUNET_SET_Handle *iter_set; | 276 | struct GNUNET_SET_Handle *iter_set; |
264 | 277 | ||
265 | iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_UNION); | 278 | iter_set = GNUNET_SET_create (config, |
266 | 279 | GNUNET_SET_OPERATION_UNION); | |
280 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
281 | "Testing iteration over 3 elements on set %p\n", | ||
282 | iter_set); | ||
267 | element.element_type = 0; | 283 | element.element_type = 0; |
268 | 284 | ||
269 | element.data = "hello"; | 285 | element.data = "hello"; |
270 | element.size = strlen(element.data); | 286 | element.size = strlen(element.data); |
271 | GNUNET_SET_add_element (iter_set, &element, NULL, NULL); | 287 | GNUNET_SET_add_element (iter_set, |
288 | &element, | ||
289 | NULL, NULL); | ||
272 | element.data = "bar"; | 290 | element.data = "bar"; |
273 | element.size = strlen(element.data); | 291 | element.size = strlen(element.data); |
274 | GNUNET_SET_add_element (iter_set, &element, NULL, NULL); | 292 | GNUNET_SET_add_element (iter_set, |
293 | &element, | ||
294 | NULL, NULL); | ||
275 | element.data = "quux"; | 295 | element.data = "quux"; |
276 | element.size = strlen(element.data); | 296 | element.size = strlen(element.data); |
277 | GNUNET_SET_add_element (iter_set, &element, NULL, NULL); | 297 | GNUNET_SET_add_element (iter_set, |
278 | 298 | &element, | |
279 | GNUNET_SET_iterate (iter_set, iter_cb, iter_set); | 299 | NULL, NULL); |
300 | GNUNET_SET_iterate (iter_set, | ||
301 | &iter_cb, | ||
302 | iter_set); | ||
280 | } | 303 | } |
281 | 304 | ||
282 | 305 | ||
@@ -372,12 +395,20 @@ run (void *cls, | |||
372 | GNUNET_i2s (&local_id)); | 395 | GNUNET_i2s (&local_id)); |
373 | test_iter (); | 396 | test_iter (); |
374 | 397 | ||
375 | set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); | 398 | set1 = GNUNET_SET_create (cfg, |
376 | set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); | 399 | GNUNET_SET_OPERATION_UNION); |
400 | set2 = GNUNET_SET_create (cfg, | ||
401 | GNUNET_SET_OPERATION_UNION); | ||
402 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
403 | "Created sets %p and %p for union operation\n", | ||
404 | set1, | ||
405 | set2); | ||
377 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, | 406 | GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, |
378 | &app_id); | 407 | &app_id); |
379 | 408 | ||
380 | ///* test if canceling an uncommited request works! */ | 409 | /* test if canceling an uncommited request works! */ |
410 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
411 | "Launching and instantly stopping set operation\n"); | ||
381 | my_oh = GNUNET_SET_prepare (&local_id, | 412 | my_oh = GNUNET_SET_prepare (&local_id, |
382 | &app_id, | 413 | &app_id, |
383 | NULL, | 414 | NULL, |
@@ -385,7 +416,6 @@ run (void *cls, | |||
385 | (struct GNUNET_SET_Option[]) { 0 }, | 416 | (struct GNUNET_SET_Option[]) { 0 }, |
386 | NULL, | 417 | NULL, |
387 | NULL); | 418 | NULL); |
388 | |||
389 | GNUNET_SET_operation_cancel (my_oh); | 419 | GNUNET_SET_operation_cancel (my_oh); |
390 | 420 | ||
391 | /* test the real set reconciliation */ | 421 | /* test the real set reconciliation */ |