aboutsummaryrefslogtreecommitdiff
path: root/src/set/test_set_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-03-12 23:33:00 +0100
committerChristian Grothoff <christian@grothoff.org>2017-03-13 01:24:34 +0100
commit7860923ce13f826ca6671b42aa7f1e62f9770c86 (patch)
treeff8c0190dc2c60afc21caacfc4c6937044cf5861 /src/set/test_set_api.c
parentdda2c14c04b6ef6275934e752c6952f9e35dbf44 (diff)
downloadgnunet-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.c76
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
242iter_cb (void *cls, 250iter_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 */