summaryrefslogtreecommitdiff
path: root/src/set/test_set_union_result_symmetric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/set/test_set_union_result_symmetric.c')
-rw-r--r--src/set/test_set_union_result_symmetric.c475
1 files changed, 238 insertions, 237 deletions
diff --git a/src/set/test_set_union_result_symmetric.c b/src/set/test_set_union_result_symmetric.c
index 5238aa596..b6c7a82f6 100644
--- a/src/set/test_set_union_result_symmetric.c
+++ b/src/set/test_set_union_result_symmetric.c
@@ -75,128 +75,128 @@ static struct GNUNET_SCHEDULER_Task *timeout_task;
75 75
76 76
77static void 77static void
78result_cb_set1(void *cls, 78result_cb_set1 (void *cls,
79 const struct GNUNET_SET_Element *element, 79 const struct GNUNET_SET_Element *element,
80 uint64_t current_size, 80 uint64_t current_size,
81 enum GNUNET_SET_Status status) 81 enum GNUNET_SET_Status status)
82{ 82{
83 switch (status) 83 switch (status)
84 {
85 case GNUNET_SET_STATUS_ADD_LOCAL:
86 count_set1++;
87 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
88 "set 1: got element\n");
89 break;
90
91 case GNUNET_SET_STATUS_FAILURE:
92 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
93 "set 1: failure\n");
94 oh1 = NULL;
95 ret = 1;
96 if (NULL != timeout_task)
97 {
98 GNUNET_SCHEDULER_cancel (timeout_task);
99 timeout_task = NULL;
100 }
101 GNUNET_SCHEDULER_shutdown ();
102 break;
103
104 case GNUNET_SET_STATUS_DONE:
105 oh1 = NULL;
106 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
107 "set 1: done\n");
108 GNUNET_SET_destroy (set1);
109 set1 = NULL;
110 if (NULL == set2)
84 { 111 {
85 case GNUNET_SET_STATUS_ADD_LOCAL:
86 count_set1++;
87 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
88 "set 1: got element\n");
89 break;
90
91 case GNUNET_SET_STATUS_FAILURE:
92 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
93 "set 1: failure\n");
94 oh1 = NULL;
95 ret = 1;
96 if (NULL != timeout_task) 112 if (NULL != timeout_task)
97 { 113 {
98 GNUNET_SCHEDULER_cancel(timeout_task); 114 GNUNET_SCHEDULER_cancel (timeout_task);
99 timeout_task = NULL; 115 timeout_task = NULL;
100 } 116 }
101 GNUNET_SCHEDULER_shutdown(); 117 GNUNET_SCHEDULER_shutdown ();
102 break;
103
104 case GNUNET_SET_STATUS_DONE:
105 oh1 = NULL;
106 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
107 "set 1: done\n");
108 GNUNET_SET_destroy(set1);
109 set1 = NULL;
110 if (NULL == set2)
111 {
112 if (NULL != timeout_task)
113 {
114 GNUNET_SCHEDULER_cancel(timeout_task);
115 timeout_task = NULL;
116 }
117 GNUNET_SCHEDULER_shutdown();
118 }
119 break;
120
121 case GNUNET_SET_STATUS_ADD_REMOTE:
122 break;
123
124 default:
125 GNUNET_assert(0);
126 } 118 }
119 break;
120
121 case GNUNET_SET_STATUS_ADD_REMOTE:
122 break;
123
124 default:
125 GNUNET_assert (0);
126 }
127} 127}
128 128
129 129
130static void 130static void
131result_cb_set2(void *cls, 131result_cb_set2 (void *cls,
132 const struct GNUNET_SET_Element *element, 132 const struct GNUNET_SET_Element *element,
133 uint64_t current_size, 133 uint64_t current_size,
134 enum GNUNET_SET_Status status) 134 enum GNUNET_SET_Status status)
135{ 135{
136 switch (status) 136 switch (status)
137 {
138 case GNUNET_SET_STATUS_ADD_LOCAL:
139 count_set2++;
140 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
141 "set 2: got element\n");
142 break;
143
144 case GNUNET_SET_STATUS_FAILURE:
145 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
146 "set 2: failure\n");
147 oh2 = NULL;
148 ret = 1;
149 if (NULL != timeout_task)
150 {
151 GNUNET_SCHEDULER_cancel (timeout_task);
152 timeout_task = NULL;
153 }
154 GNUNET_SCHEDULER_shutdown ();
155 break;
156
157 case GNUNET_SET_STATUS_DONE:
158 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
159 "set 2: done\n");
160 oh2 = NULL;
161 GNUNET_SET_destroy (set2);
162 set2 = NULL;
163 if (NULL == set1)
137 { 164 {
138 case GNUNET_SET_STATUS_ADD_LOCAL:
139 count_set2++;
140 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
141 "set 2: got element\n");
142 break;
143
144 case GNUNET_SET_STATUS_FAILURE:
145 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
146 "set 2: failure\n");
147 oh2 = NULL;
148 ret = 1;
149 if (NULL != timeout_task) 165 if (NULL != timeout_task)
150 { 166 {
151 GNUNET_SCHEDULER_cancel(timeout_task); 167 GNUNET_SCHEDULER_cancel (timeout_task);
152 timeout_task = NULL; 168 timeout_task = NULL;
153 } 169 }
154 GNUNET_SCHEDULER_shutdown(); 170 GNUNET_SCHEDULER_shutdown ();
155 break;
156
157 case GNUNET_SET_STATUS_DONE:
158 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
159 "set 2: done\n");
160 oh2 = NULL;
161 GNUNET_SET_destroy(set2);
162 set2 = NULL;
163 if (NULL == set1)
164 {
165 if (NULL != timeout_task)
166 {
167 GNUNET_SCHEDULER_cancel(timeout_task);
168 timeout_task = NULL;
169 }
170 GNUNET_SCHEDULER_shutdown();
171 }
172 break;
173
174 case GNUNET_SET_STATUS_ADD_REMOTE:
175 break;
176
177 default:
178 GNUNET_assert(0);
179 } 171 }
172 break;
173
174 case GNUNET_SET_STATUS_ADD_REMOTE:
175 break;
176
177 default:
178 GNUNET_assert (0);
179 }
180} 180}
181 181
182 182
183static void 183static void
184listen_cb(void *cls, 184listen_cb (void *cls,
185 const struct GNUNET_PeerIdentity *other_peer, 185 const struct GNUNET_PeerIdentity *other_peer,
186 const struct GNUNET_MessageHeader *context_msg, 186 const struct GNUNET_MessageHeader *context_msg,
187 struct GNUNET_SET_Request *request) 187 struct GNUNET_SET_Request *request)
188{ 188{
189 GNUNET_assert(NULL != context_msg); 189 GNUNET_assert (NULL != context_msg);
190 GNUNET_assert(ntohs(context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); 190 GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY);
191 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 191 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
192 "listen cb called\n"); 192 "listen cb called\n");
193 oh2 = GNUNET_SET_accept(request, 193 oh2 = GNUNET_SET_accept (request,
194 GNUNET_SET_RESULT_SYMMETRIC, 194 GNUNET_SET_RESULT_SYMMETRIC,
195 (struct GNUNET_SET_Option[]) { 0 }, 195 (struct GNUNET_SET_Option[]) { 0 },
196 &result_cb_set2, 196 &result_cb_set2,
197 NULL); 197 NULL);
198 GNUNET_SET_commit(oh2, 198 GNUNET_SET_commit (oh2,
199 set2); 199 set2);
200} 200}
201 201
202 202
@@ -206,24 +206,24 @@ listen_cb(void *cls,
206 * @param cls closure, unused 206 * @param cls closure, unused
207 */ 207 */
208static void 208static void
209start(void *cls) 209start (void *cls)
210{ 210{
211 struct GNUNET_MessageHeader context_msg; 211 struct GNUNET_MessageHeader context_msg;
212 212
213 context_msg.size = htons(sizeof context_msg); 213 context_msg.size = htons (sizeof context_msg);
214 context_msg.type = htons(GNUNET_MESSAGE_TYPE_DUMMY); 214 context_msg.type = htons (GNUNET_MESSAGE_TYPE_DUMMY);
215 215
216 listen_handle = GNUNET_SET_listen(config, 216 listen_handle = GNUNET_SET_listen (config,
217 GNUNET_SET_OPERATION_UNION, 217 GNUNET_SET_OPERATION_UNION,
218 &app_id, 218 &app_id,
219 &listen_cb, NULL); 219 &listen_cb, NULL);
220 oh1 = GNUNET_SET_prepare(&local_id, 220 oh1 = GNUNET_SET_prepare (&local_id,
221 &app_id, 221 &app_id,
222 &context_msg, 222 &context_msg,
223 GNUNET_SET_RESULT_SYMMETRIC, 223 GNUNET_SET_RESULT_SYMMETRIC,
224 (struct GNUNET_SET_Option[]) { 0 }, 224 (struct GNUNET_SET_Option[]) { 0 },
225 &result_cb_set1, NULL); 225 &result_cb_set1, NULL);
226 GNUNET_SET_commit(oh1, set1); 226 GNUNET_SET_commit (oh1, set1);
227} 227}
228 228
229 229
@@ -233,35 +233,35 @@ start(void *cls)
233 * @param cls closure, unused 233 * @param cls closure, unused
234 */ 234 */
235static void 235static void
236init_set2(void *cls) 236init_set2 (void *cls)
237{ 237{
238 struct GNUNET_SET_Element element; 238 struct GNUNET_SET_Element element;
239 239
240 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 240 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
241 "initializing set 2\n"); 241 "initializing set 2\n");
242 if (empty) 242 if (empty)
243 { 243 {
244 start(NULL); 244 start (NULL);
245 return; 245 return;
246 } 246 }
247 element.element_type = 0; 247 element.element_type = 0;
248 element.data = "hello"; 248 element.data = "hello";
249 element.size = strlen(element.data); 249 element.size = strlen (element.data);
250 GNUNET_SET_add_element(set2, 250 GNUNET_SET_add_element (set2,
251 &element, 251 &element,
252 NULL, 252 NULL,
253 NULL); 253 NULL);
254 element.data = "quux"; 254 element.data = "quux";
255 element.size = strlen(element.data); 255 element.size = strlen (element.data);
256 GNUNET_SET_add_element(set2, 256 GNUNET_SET_add_element (set2,
257 &element, 257 &element,
258 NULL, 258 NULL,
259 NULL); 259 NULL);
260 element.data = "baz"; 260 element.data = "baz";
261 element.size = strlen(element.data); 261 element.size = strlen (element.data);
262 GNUNET_SET_add_element(set2, 262 GNUNET_SET_add_element (set2,
263 &element, 263 &element,
264 &start, NULL); 264 &start, NULL);
265} 265}
266 266
267 267
@@ -269,72 +269,72 @@ init_set2(void *cls)
269 * Initialize the first set, continue. 269 * Initialize the first set, continue.
270 */ 270 */
271static void 271static void
272init_set1(void) 272init_set1 (void)
273{ 273{
274 struct GNUNET_SET_Element element; 274 struct GNUNET_SET_Element element;
275 275
276 if (empty) 276 if (empty)
277 { 277 {
278 init_set2(NULL); 278 init_set2 (NULL);
279 return; 279 return;
280 } 280 }
281 element.element_type = 0; 281 element.element_type = 0;
282 element.data = "hello"; 282 element.data = "hello";
283 element.size = strlen(element.data); 283 element.size = strlen (element.data);
284 GNUNET_SET_add_element(set1, 284 GNUNET_SET_add_element (set1,
285 &element, 285 &element,
286 NULL, 286 NULL,
287 NULL); 287 NULL);
288 element.data = "bar"; 288 element.data = "bar";
289 element.size = strlen(element.data); 289 element.size = strlen (element.data);
290 GNUNET_SET_add_element(set1, 290 GNUNET_SET_add_element (set1,
291 &element, 291 &element,
292 &init_set2, 292 &init_set2,
293 NULL); 293 NULL);
294 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 294 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
295 "initialized set 1\n"); 295 "initialized set 1\n");
296} 296}
297 297
298 298
299static int 299static int
300iter_cb(void *cls, 300iter_cb (void *cls,
301 const struct GNUNET_SET_Element *element) 301 const struct GNUNET_SET_Element *element)
302{ 302{
303 if (NULL == element) 303 if (NULL == element)
304 { 304 {
305 GNUNET_assert(iter_count == 3); 305 GNUNET_assert (iter_count == 3);
306 GNUNET_SET_destroy(cls); 306 GNUNET_SET_destroy (cls);
307 return GNUNET_YES; 307 return GNUNET_YES;
308 } 308 }
309 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 309 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
310 "iter: got element\n"); 310 "iter: got element\n");
311 iter_count++; 311 iter_count++;
312 return GNUNET_YES; 312 return GNUNET_YES;
313} 313}
314 314
315 315
316static void 316static void
317test_iter() 317test_iter ()
318{ 318{
319 struct GNUNET_SET_Element element; 319 struct GNUNET_SET_Element element;
320 struct GNUNET_SET_Handle *iter_set; 320 struct GNUNET_SET_Handle *iter_set;
321 321
322 iter_count = 0; 322 iter_count = 0;
323 iter_set = GNUNET_SET_create(config, GNUNET_SET_OPERATION_UNION); 323 iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_UNION);
324 element.element_type = 0; 324 element.element_type = 0;
325 element.data = "hello"; 325 element.data = "hello";
326 element.size = strlen(element.data); 326 element.size = strlen (element.data);
327 GNUNET_SET_add_element(iter_set, &element, NULL, NULL); 327 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
328 element.data = "bar"; 328 element.data = "bar";
329 element.size = strlen(element.data); 329 element.size = strlen (element.data);
330 GNUNET_SET_add_element(iter_set, &element, NULL, NULL); 330 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
331 element.data = "quux"; 331 element.data = "quux";
332 element.size = strlen(element.data); 332 element.size = strlen (element.data);
333 GNUNET_SET_add_element(iter_set, &element, NULL, NULL); 333 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
334 334
335 GNUNET_SET_iterate(iter_set, 335 GNUNET_SET_iterate (iter_set,
336 &iter_cb, 336 &iter_cb,
337 iter_set); 337 iter_set);
338} 338}
339 339
340 340
@@ -344,12 +344,12 @@ test_iter()
344 * @param cls closure 344 * @param cls closure
345 */ 345 */
346static void 346static void
347timeout_fail(void *cls) 347timeout_fail (void *cls)
348{ 348{
349 timeout_task = NULL; 349 timeout_task = NULL;
350 GNUNET_SCHEDULER_shutdown(); 350 GNUNET_SCHEDULER_shutdown ();
351 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, 351 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
352 "test timed out\n"); 352 "test timed out\n");
353 ret = 1; 353 ret = 1;
354} 354}
355 355
@@ -360,38 +360,38 @@ timeout_fail(void *cls)
360 * @param cls closure 360 * @param cls closure
361 */ 361 */
362static void 362static void
363do_shutdown(void *cls) 363do_shutdown (void *cls)
364{ 364{
365 if (NULL != timeout_task) 365 if (NULL != timeout_task)
366 { 366 {
367 GNUNET_SCHEDULER_cancel(timeout_task); 367 GNUNET_SCHEDULER_cancel (timeout_task);
368 timeout_task = NULL; 368 timeout_task = NULL;
369 } 369 }
370 if (NULL != oh1) 370 if (NULL != oh1)
371 { 371 {
372 GNUNET_SET_operation_cancel(oh1); 372 GNUNET_SET_operation_cancel (oh1);
373 oh1 = NULL; 373 oh1 = NULL;
374 } 374 }
375 if (NULL != oh2) 375 if (NULL != oh2)
376 { 376 {
377 GNUNET_SET_operation_cancel(oh2); 377 GNUNET_SET_operation_cancel (oh2);
378 oh2 = NULL; 378 oh2 = NULL;
379 } 379 }
380 if (NULL != set1) 380 if (NULL != set1)
381 { 381 {
382 GNUNET_SET_destroy(set1); 382 GNUNET_SET_destroy (set1);
383 set1 = NULL; 383 set1 = NULL;
384 } 384 }
385 if (NULL != set2) 385 if (NULL != set2)
386 { 386 {
387 GNUNET_SET_destroy(set2); 387 GNUNET_SET_destroy (set2);
388 set2 = NULL; 388 set2 = NULL;
389 } 389 }
390 if (NULL != listen_handle) 390 if (NULL != listen_handle)
391 { 391 {
392 GNUNET_SET_listen_cancel(listen_handle); 392 GNUNET_SET_listen_cancel (listen_handle);
393 listen_handle = NULL; 393 listen_handle = NULL;
394 } 394 }
395} 395}
396 396
397 397
@@ -404,51 +404,52 @@ do_shutdown(void *cls)
404 * @param peer identity of the peer that was created 404 * @param peer identity of the peer that was created
405 */ 405 */
406static void 406static void
407run(void *cls, 407run (void *cls,
408 const struct GNUNET_CONFIGURATION_Handle *cfg, 408 const struct GNUNET_CONFIGURATION_Handle *cfg,
409 struct GNUNET_TESTING_Peer *peer) 409 struct GNUNET_TESTING_Peer *peer)
410{ 410{
411 timeout_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 5), 411 timeout_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (
412 &timeout_fail, 412 GNUNET_TIME_UNIT_SECONDS, 5),
413 NULL); 413 &timeout_fail,
414 GNUNET_SCHEDULER_add_shutdown(&do_shutdown, 414 NULL);
415 NULL); 415 GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
416 NULL);
416 config = cfg; 417 config = cfg;
417 GNUNET_TESTING_peer_get_identity(peer, 418 GNUNET_TESTING_peer_get_identity (peer,
418 &local_id); 419 &local_id);
419 420
420 if (0) 421 if (0)
421 test_iter(); 422 test_iter ();
422 423
423 set1 = GNUNET_SET_create(cfg, GNUNET_SET_OPERATION_UNION); 424 set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION);
424 set2 = GNUNET_SET_create(cfg, GNUNET_SET_OPERATION_UNION); 425 set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION);
425 GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK, &app_id); 426 GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &app_id);
426 427
427 /* test the real set reconciliation */ 428 /* test the real set reconciliation */
428 init_set1(); 429 init_set1 ();
429} 430}
430 431
431 432
432int 433int
433main(int argc, char **argv) 434main (int argc, char **argv)
434{ 435{
435 empty = 1; 436 empty = 1;
436 if (0 != GNUNET_TESTING_peer_run("test_set_api", 437 if (0 != GNUNET_TESTING_peer_run ("test_set_api",
437 "test_set.conf", 438 "test_set.conf",
438 &run, NULL)) 439 &run, NULL))
439 { 440 {
440 return 1; 441 return 1;
441 } 442 }
442 GNUNET_assert(0 == count_set1); 443 GNUNET_assert (0 == count_set1);
443 GNUNET_assert(0 == count_set2); 444 GNUNET_assert (0 == count_set2);
444 empty = 0; 445 empty = 0;
445 if (0 != GNUNET_TESTING_peer_run("test_set_api", 446 if (0 != GNUNET_TESTING_peer_run ("test_set_api",
446 "test_set.conf", 447 "test_set.conf",
447 &run, NULL)) 448 &run, NULL))
448 { 449 {
449 return 1; 450 return 1;
450 } 451 }
451 GNUNET_break(2 == count_set1); 452 GNUNET_break (2 == count_set1);
452 GNUNET_break(1 == count_set2); 453 GNUNET_break (1 == count_set2);
453 return ret; 454 return ret;
454} 455}