aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport-testing-main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport-testing-main.c')
-rw-r--r--src/transport/transport-testing-main.c445
1 files changed, 226 insertions, 219 deletions
diff --git a/src/transport/transport-testing-main.c b/src/transport/transport-testing-main.c
index 7e7b0df4b..7581120c8 100644
--- a/src/transport/transport-testing-main.c
+++ b/src/transport/transport-testing-main.c
@@ -28,7 +28,8 @@
28/** 28/**
29 * Closure for #connect_cb. 29 * Closure for #connect_cb.
30 */ 30 */
31struct GNUNET_TRANSPORT_TESTING_ConnectRequestList { 31struct GNUNET_TRANSPORT_TESTING_ConnectRequestList
32{
32 /** 33 /**
33 * Stored in a DLL. 34 * Stored in a DLL.
34 */ 35 */
@@ -67,41 +68,41 @@ struct GNUNET_TRANSPORT_TESTING_ConnectRequestList {
67 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` 68 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *`
68 */ 69 */
69static void 70static void
70do_shutdown(void *cls) 71do_shutdown (void *cls)
71{ 72{
72 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; 73 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls;
73 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; 74 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl;
74 75
75 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 76 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
76 "Testcase shutting down\n"); 77 "Testcase shutting down\n");
77 if (NULL != ccc->shutdown_task) 78 if (NULL != ccc->shutdown_task)
78 ccc->shutdown_task(ccc->shutdown_task_cls); 79 ccc->shutdown_task (ccc->shutdown_task_cls);
79 if (NULL != ccc->timeout_task) 80 if (NULL != ccc->timeout_task)
80 { 81 {
81 GNUNET_SCHEDULER_cancel(ccc->timeout_task); 82 GNUNET_SCHEDULER_cancel (ccc->timeout_task);
82 ccc->timeout_task = NULL; 83 ccc->timeout_task = NULL;
83 } 84 }
84 if (NULL != ccc->connect_task) 85 if (NULL != ccc->connect_task)
85 { 86 {
86 GNUNET_SCHEDULER_cancel(ccc->connect_task); 87 GNUNET_SCHEDULER_cancel (ccc->connect_task);
87 ccc->connect_task = NULL; 88 ccc->connect_task = NULL;
88 } 89 }
89 while (NULL != (crl = ccc->crl_head)) 90 while (NULL != (crl = ccc->crl_head))
90 { 91 {
91 GNUNET_CONTAINER_DLL_remove(ccc->crl_head, 92 GNUNET_CONTAINER_DLL_remove (ccc->crl_head,
92 ccc->crl_tail, 93 ccc->crl_tail,
93 crl); 94 crl);
94 GNUNET_TRANSPORT_TESTING_connect_peers_cancel(crl->cr); 95 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (crl->cr);
95 GNUNET_free(crl); 96 GNUNET_free (crl);
96 } 97 }
97 for (unsigned int i = 0; i < ccc->num_peers; i++) 98 for (unsigned int i = 0; i < ccc->num_peers; i++)
99 {
100 if (NULL != ccc->p[i])
98 { 101 {
99 if (NULL != ccc->p[i]) 102 GNUNET_TRANSPORT_TESTING_stop_peer (ccc->p[i]);
100 { 103 ccc->p[i] = NULL;
101 GNUNET_TRANSPORT_TESTING_stop_peer(ccc->p[i]);
102 ccc->p[i] = NULL;
103 }
104 } 104 }
105 }
105} 106}
106 107
107 108
@@ -111,15 +112,15 @@ do_shutdown(void *cls)
111 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *` 112 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *`
112 */ 113 */
113static void 114static void
114do_timeout(void *cls) 115do_timeout (void *cls)
115{ 116{
116 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; 117 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls;
117 118
118 ccc->timeout_task = NULL; 119 ccc->timeout_task = NULL;
119 GNUNET_log(GNUNET_ERROR_TYPE_WARNING, 120 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
120 "Testcase timed out\n"); 121 "Testcase timed out\n");
121 ccc->global_ret = GNUNET_SYSERR; 122 ccc->global_ret = GNUNET_SYSERR;
122 GNUNET_SCHEDULER_shutdown(); 123 GNUNET_SCHEDULER_shutdown ();
123} 124}
124 125
125 126
@@ -128,7 +129,8 @@ do_timeout(void *cls)
128 * #connect_cb, #disconnect_cb, #my_nc and #start_cb. 129 * #connect_cb, #disconnect_cb, #my_nc and #start_cb.
129 * Allows us to identify which peer this is about. 130 * Allows us to identify which peer this is about.
130 */ 131 */
131struct GNUNET_TRANSPORT_TESTING_InternalPeerContext { 132struct GNUNET_TRANSPORT_TESTING_InternalPeerContext
133{
132 /** 134 /**
133 * Overall context of the callback. 135 * Overall context of the callback.
134 */ 136 */
@@ -144,7 +146,8 @@ struct GNUNET_TRANSPORT_TESTING_InternalPeerContext {
144/** 146/**
145 * Information tracked per connected peer. 147 * Information tracked per connected peer.
146 */ 148 */
147struct ConnectPairInfo { 149struct ConnectPairInfo
150{
148 /** 151 /**
149 * Peer this is about. 152 * Peer this is about.
150 */ 153 */
@@ -164,33 +167,33 @@ struct ConnectPairInfo {
164 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *` 167 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *`
165 */ 168 */
166static void 169static void
167connect_cb(void *cls) 170connect_cb (void *cls)
168{ 171{
169 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl = cls; 172 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl = cls;
170 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = crl->ccc; 173 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = crl->ccc;
171 174
172 GNUNET_CONTAINER_DLL_remove(ccc->crl_head, 175 GNUNET_CONTAINER_DLL_remove (ccc->crl_head,
173 ccc->crl_tail, 176 ccc->crl_tail,
174 crl); 177 crl);
175 { 178 {
176 char *p1_c = GNUNET_strdup(GNUNET_i2s(&crl->p1->id)); 179 char *p1_c = GNUNET_strdup (GNUNET_i2s (&crl->p1->id));
177 180
178 GNUNET_log(GNUNET_ERROR_TYPE_INFO, 181 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
179 "Peers connected: %u (%s) <-> %u (%s)\n", 182 "Peers connected: %u (%s) <-> %u (%s)\n",
180 crl->p1->no, 183 crl->p1->no,
181 p1_c, 184 p1_c,
182 crl->p2->no, 185 crl->p2->no,
183 GNUNET_i2s(&crl->p2->id)); 186 GNUNET_i2s (&crl->p2->id));
184 GNUNET_free(p1_c); 187 GNUNET_free (p1_c);
185 GNUNET_free(crl); 188 GNUNET_free (crl);
186 } 189 }
187 if (NULL == ccc->crl_head) 190 if (NULL == ccc->crl_head)
188 { 191 {
189 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 192 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
190 "All connections UP, launching custom test logic.\n"); 193 "All connections UP, launching custom test logic.\n");
191 GNUNET_SCHEDULER_add_now(ccc->connect_continuation, 194 GNUNET_SCHEDULER_add_now (ccc->connect_continuation,
192 ccc->connect_continuation_cls); 195 ccc->connect_continuation_cls);
193 } 196 }
194} 197}
195 198
196 199
@@ -202,14 +205,16 @@ connect_cb(void *cls)
202 * @return NULL if @a peer was not found 205 * @return NULL if @a peer was not found
203 */ 206 */
204struct GNUNET_TRANSPORT_TESTING_PeerContext * 207struct GNUNET_TRANSPORT_TESTING_PeerContext *
205GNUNET_TRANSPORT_TESTING_find_peer(struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc, 208GNUNET_TRANSPORT_TESTING_find_peer (struct
206 const struct GNUNET_PeerIdentity *peer) 209 GNUNET_TRANSPORT_TESTING_ConnectCheckContext
210 *ccc,
211 const struct GNUNET_PeerIdentity *peer)
207{ 212{
208 for (unsigned int i = 0; i < ccc->num_peers; i++) 213 for (unsigned int i = 0; i < ccc->num_peers; i++)
209 if ((NULL != ccc->p[i]) && 214 if ((NULL != ccc->p[i]) &&
210 (0 == memcmp(peer, 215 (0 == memcmp (peer,
211 &ccc->p[i]->id, 216 &ccc->p[i]->id,
212 sizeof(*peer)))) 217 sizeof(*peer))))
213 return ccc->p[i]; 218 return ccc->p[i];
214 return NULL; 219 return NULL;
215} 220}
@@ -224,19 +229,19 @@ GNUNET_TRANSPORT_TESTING_find_peer(struct GNUNET_TRANSPORT_TESTING_ConnectCheckC
224 * @return closure for message handlers 229 * @return closure for message handlers
225 */ 230 */
226static void * 231static void *
227my_nc(void *cls, 232my_nc (void *cls,
228 const struct GNUNET_PeerIdentity *peer, 233 const struct GNUNET_PeerIdentity *peer,
229 struct GNUNET_MQ_Handle *mq) 234 struct GNUNET_MQ_Handle *mq)
230{ 235{
231 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; 236 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls;
232 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; 237 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc;
233 struct ConnectPairInfo *cpi; 238 struct ConnectPairInfo *cpi;
234 239
235 if (NULL != ccc->nc) 240 if (NULL != ccc->nc)
236 ccc->nc(ccc->cls, 241 ccc->nc (ccc->cls,
237 ccc->p[ipi->off], 242 ccc->p[ipi->off],
238 peer); 243 peer);
239 cpi = GNUNET_new(struct ConnectPairInfo); 244 cpi = GNUNET_new (struct ConnectPairInfo);
240 cpi->ipi = ipi; 245 cpi->ipi = ipi;
241 cpi->sender = peer; /* valid until disconnect */ 246 cpi->sender = peer; /* valid until disconnect */
242 return cpi; 247 return cpi;
@@ -251,19 +256,19 @@ my_nc(void *cls,
251 * @param custom_cls return value from @my_nc 256 * @param custom_cls return value from @my_nc
252 */ 257 */
253static void 258static void
254my_nd(void *cls, 259my_nd (void *cls,
255 const struct GNUNET_PeerIdentity *peer, 260 const struct GNUNET_PeerIdentity *peer,
256 void *custom_cls) 261 void *custom_cls)
257{ 262{
258 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; 263 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls;
259 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; 264 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc;
260 struct ConnectPairInfo *cpi = custom_cls; 265 struct ConnectPairInfo *cpi = custom_cls;
261 266
262 if (NULL != ccc->nd) 267 if (NULL != ccc->nd)
263 ccc->nd(ccc->cls, 268 ccc->nd (ccc->cls,
264 ccc->p[ipi->off], 269 ccc->p[ipi->off],
265 peer); 270 peer);
266 GNUNET_free(cpi); 271 GNUNET_free (cpi);
267} 272}
268 273
269 274
@@ -275,8 +280,8 @@ my_nd(void *cls,
275 * @return #GNUNET_OK (all messages are fine) 280 * @return #GNUNET_OK (all messages are fine)
276 */ 281 */
277static int 282static int
278check_test(void *cls, 283check_test (void *cls,
279 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) 284 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message)
280{ 285{
281 return GNUNET_OK; 286 return GNUNET_OK;
282} 287}
@@ -289,18 +294,18 @@ check_test(void *cls,
289 * @param message message we received 294 * @param message message we received
290 */ 295 */
291static void 296static void
292handle_test(void *cls, 297handle_test (void *cls,
293 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) 298 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message)
294{ 299{
295 struct ConnectPairInfo *cpi = cls; 300 struct ConnectPairInfo *cpi = cls;
296 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; 301 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi;
297 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; 302 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc;
298 303
299 if (NULL != ccc->rec) 304 if (NULL != ccc->rec)
300 ccc->rec(ccc->cls, 305 ccc->rec (ccc->cls,
301 ccc->p[ipi->off], 306 ccc->p[ipi->off],
302 cpi->sender, 307 cpi->sender,
303 message); 308 message);
304} 309}
305 310
306 311
@@ -312,8 +317,8 @@ handle_test(void *cls,
312 * @return #GNUNET_OK (all messages are fine) 317 * @return #GNUNET_OK (all messages are fine)
313 */ 318 */
314static int 319static int
315check_test2(void *cls, 320check_test2 (void *cls,
316 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) 321 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message)
317{ 322{
318 return GNUNET_OK; 323 return GNUNET_OK;
319} 324}
@@ -326,18 +331,18 @@ check_test2(void *cls,
326 * @param message message we received 331 * @param message message we received
327 */ 332 */
328static void 333static void
329handle_test2(void *cls, 334handle_test2 (void *cls,
330 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message) 335 const struct GNUNET_TRANSPORT_TESTING_TestMessage *message)
331{ 336{
332 struct ConnectPairInfo *cpi = cls; 337 struct ConnectPairInfo *cpi = cls;
333 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi; 338 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cpi->ipi;
334 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; 339 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc;
335 340
336 if (NULL != ccc->rec) 341 if (NULL != ccc->rec)
337 ccc->rec(ccc->cls, 342 ccc->rec (ccc->cls,
338 ccc->p[ipi->off], 343 ccc->p[ipi->off],
339 cpi->sender, 344 cpi->sender,
340 message); 345 message);
341} 346}
342 347
343 348
@@ -347,41 +352,42 @@ handle_test2(void *cls,
347 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext` 352 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext`
348 */ 353 */
349static void 354static void
350do_connect(void *cls) 355do_connect (void *cls)
351{ 356{
352 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; 357 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls;
353 358
354 ccc->connect_task = NULL; 359 ccc->connect_task = NULL;
355 for (unsigned int i = 0; i < ccc->num_peers; i++) 360 for (unsigned int i = 0; i < ccc->num_peers; i++)
356 for (unsigned int j = (ccc->bi_directional ? 0 : i + 1); j < ccc->num_peers; j++) 361 for (unsigned int j = (ccc->bi_directional ? 0 : i + 1); j < ccc->num_peers;
362 j++)
363 {
364 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl;
365
366 if (i == j)
367 continue;
368 crl = GNUNET_new (struct GNUNET_TRANSPORT_TESTING_ConnectRequestList);
369 GNUNET_CONTAINER_DLL_insert (ccc->crl_head,
370 ccc->crl_tail,
371 crl);
372 crl->ccc = ccc;
373 crl->p1 = ccc->p[i];
374 crl->p2 = ccc->p[j];
357 { 375 {
358 struct GNUNET_TRANSPORT_TESTING_ConnectRequestList *crl; 376 char *sender_c = GNUNET_strdup (GNUNET_i2s (&ccc->p[0]->id));
359 377
360 if (i == j) 378 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
361 continue; 379 "Test tries to connect peer %u (`%s') -> peer %u (`%s')\n",
362 crl = GNUNET_new(struct GNUNET_TRANSPORT_TESTING_ConnectRequestList); 380 ccc->p[0]->no,
363 GNUNET_CONTAINER_DLL_insert(ccc->crl_head, 381 sender_c,
364 ccc->crl_tail, 382 ccc->p[1]->no,
365 crl); 383 GNUNET_i2s (&ccc->p[1]->id));
366 crl->ccc = ccc; 384 GNUNET_free (sender_c);
367 crl->p1 = ccc->p[i];
368 crl->p2 = ccc->p[j];
369 {
370 char *sender_c = GNUNET_strdup(GNUNET_i2s(&ccc->p[0]->id));
371
372 GNUNET_log(GNUNET_ERROR_TYPE_INFO,
373 "Test tries to connect peer %u (`%s') -> peer %u (`%s')\n",
374 ccc->p[0]->no,
375 sender_c,
376 ccc->p[1]->no,
377 GNUNET_i2s(&ccc->p[1]->id));
378 GNUNET_free(sender_c);
379 }
380 crl->cr = GNUNET_TRANSPORT_TESTING_connect_peers(ccc->p[i],
381 ccc->p[j],
382 &connect_cb,
383 crl);
384 } 385 }
386 crl->cr = GNUNET_TRANSPORT_TESTING_connect_peers (ccc->p[i],
387 ccc->p[j],
388 &connect_cb,
389 crl);
390 }
385} 391}
386 392
387 393
@@ -393,32 +399,32 @@ do_connect(void *cls)
393 * @param cls our `struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *` 399 * @param cls our `struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *`
394 */ 400 */
395static void 401static void
396start_cb(void *cls) 402start_cb (void *cls)
397{ 403{
398 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls; 404 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext *ipi = cls;
399 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc; 405 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = ipi->ccc;
400 struct GNUNET_TRANSPORT_TESTING_PeerContext *p = ccc->p[ipi->off]; 406 struct GNUNET_TRANSPORT_TESTING_PeerContext *p = ccc->p[ipi->off];
401 407
402 ccc->started++; 408 ccc->started++;
403 GNUNET_log(GNUNET_ERROR_TYPE_INFO, 409 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
404 "Peer %u (`%s') started\n", 410 "Peer %u (`%s') started\n",
405 p->no, 411 p->no,
406 GNUNET_i2s(&p->id)); 412 GNUNET_i2s (&p->id));
407 if (ccc->started != ccc->num_peers) 413 if (ccc->started != ccc->num_peers)
408 return; 414 return;
409 if (NULL != ccc->pre_connect_task) 415 if (NULL != ccc->pre_connect_task)
410 { 416 {
411 /* Run the custom per-connect job, then give it a second to 417 /* Run the custom per-connect job, then give it a second to
412 go into effect before we continue connecting peers. */ 418 go into effect before we continue connecting peers. */
413 ccc->pre_connect_task(ccc->pre_connect_task_cls); 419 ccc->pre_connect_task (ccc->pre_connect_task_cls);
414 ccc->connect_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_SECONDS, 420 ccc->connect_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
415 &do_connect, 421 &do_connect,
416 ccc); 422 ccc);
417 } 423 }
418 else 424 else
419 { 425 {
420 do_connect(ccc); 426 do_connect (ccc);
421 } 427 }
422} 428}
423 429
424 430
@@ -433,52 +439,52 @@ start_cb(void *cls)
433 * @param cfg configuration 439 * @param cfg configuration
434 */ 440 */
435static void 441static void
436connect_check_run(void *cls, 442connect_check_run (void *cls,
437 char *const *args, 443 char *const *args,
438 const char *cfgfile, 444 const char *cfgfile,
439 const struct GNUNET_CONFIGURATION_Handle *cfg) 445 const struct GNUNET_CONFIGURATION_Handle *cfg)
440{ 446{
441 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; 447 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls;
442 int ok; 448 int ok;
443 449
444 ccc->cfg = cfg; 450 ccc->cfg = cfg;
445 ccc->timeout_task = GNUNET_SCHEDULER_add_delayed(ccc->timeout, 451 ccc->timeout_task = GNUNET_SCHEDULER_add_delayed (ccc->timeout,
446 &do_timeout, 452 &do_timeout,
447 ccc); 453 ccc);
448 GNUNET_SCHEDULER_add_shutdown(&do_shutdown, 454 GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
449 ccc); 455 ccc);
450 ok = GNUNET_OK; 456 ok = GNUNET_OK;
451 for (unsigned int i = 0; i < ccc->num_peers; i++) 457 for (unsigned int i = 0; i < ccc->num_peers; i++)
452 { 458 {
453 struct GNUNET_MQ_MessageHandler handlers[] = { 459 struct GNUNET_MQ_MessageHandler handlers[] = {
454 GNUNET_MQ_hd_var_size(test, 460 GNUNET_MQ_hd_var_size (test,
455 GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE, 461 GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE,
456 struct GNUNET_TRANSPORT_TESTING_TestMessage, 462 struct GNUNET_TRANSPORT_TESTING_TestMessage,
457 NULL), 463 NULL),
458 GNUNET_MQ_hd_var_size(test2, 464 GNUNET_MQ_hd_var_size (test2,
459 GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE2, 465 GNUNET_TRANSPORT_TESTING_SIMPLE_MTYPE2,
460 struct GNUNET_TRANSPORT_TESTING_TestMessage, 466 struct GNUNET_TRANSPORT_TESTING_TestMessage,
461 NULL), 467 NULL),
462 GNUNET_MQ_handler_end() 468 GNUNET_MQ_handler_end ()
463 }; 469 };
464 ccc->p[i] = GNUNET_TRANSPORT_TESTING_start_peer(ccc->tth, 470 ccc->p[i] = GNUNET_TRANSPORT_TESTING_start_peer (ccc->tth,
465 ccc->cfg_files[i], 471 ccc->cfg_files[i],
466 i + 1, 472 i + 1,
467 handlers, 473 handlers,
468 &my_nc, 474 &my_nc,
469 &my_nd, 475 &my_nd,
470 &ccc->ip[i], 476 &ccc->ip[i],
471 &start_cb, 477 &start_cb,
472 &ccc->ip[i]); 478 &ccc->ip[i]);
473 if (NULL == ccc->p[i]) 479 if (NULL == ccc->p[i])
474 ok = GNUNET_SYSERR; 480 ok = GNUNET_SYSERR;
475 } 481 }
476 if (GNUNET_OK != ok) 482 if (GNUNET_OK != ok)
477 { 483 {
478 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, 484 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
479 "Fail! Could not start peers!\n"); 485 "Fail! Could not start peers!\n");
480 GNUNET_SCHEDULER_shutdown(); 486 GNUNET_SCHEDULER_shutdown ();
481 } 487 }
482} 488}
483 489
484 490
@@ -498,12 +504,13 @@ connect_check_run(void *cls,
498 * @return #GNUNET_SYSERR on error 504 * @return #GNUNET_SYSERR on error
499 */ 505 */
500int 506int
501GNUNET_TRANSPORT_TESTING_connect_check(void *cls, 507GNUNET_TRANSPORT_TESTING_connect_check (void *cls,
502 struct GNUNET_TRANSPORT_TESTING_Handle *tth_, 508 struct GNUNET_TRANSPORT_TESTING_Handle *
503 const char *test_plugin_, 509 tth_,
504 const char *test_name_, 510 const char *test_plugin_,
505 unsigned int num_peers, 511 const char *test_name_,
506 char *cfg_files[]) 512 unsigned int num_peers,
513 char *cfg_files[])
507{ 514{
508 static struct GNUNET_GETOPT_CommandLineOption options[] = { 515 static struct GNUNET_GETOPT_CommandLineOption options[] = {
509 GNUNET_GETOPT_OPTION_END 516 GNUNET_GETOPT_OPTION_END
@@ -511,10 +518,10 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls,
511 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls; 518 struct GNUNET_TRANSPORT_TESTING_ConnectCheckContext *ccc = cls;
512 struct GNUNET_TRANSPORT_TESTING_PeerContext *p[num_peers]; 519 struct GNUNET_TRANSPORT_TESTING_PeerContext *p[num_peers];
513 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext ip[num_peers]; 520 struct GNUNET_TRANSPORT_TESTING_InternalPeerContext ip[num_peers];
514 char * argv[] = { 521 char *argv[] = {
515 (char *)test_name_, 522 (char *) test_name_,
516 "-c", 523 "-c",
517 (char *)ccc->config_file, 524 (char *) ccc->config_file,
518 NULL 525 NULL
519 }; 526 };
520 527
@@ -527,18 +534,18 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls,
527 ccc->p = p; 534 ccc->p = p;
528 ccc->ip = ip; 535 ccc->ip = ip;
529 for (unsigned int i = 0; i < num_peers; i++) 536 for (unsigned int i = 0; i < num_peers; i++)
530 { 537 {
531 ip[i].off = i; 538 ip[i].off = i;
532 ip[i].ccc = ccc; 539 ip[i].ccc = ccc;
533 } 540 }
534 if (GNUNET_OK != 541 if (GNUNET_OK !=
535 GNUNET_PROGRAM_run((sizeof(argv) / sizeof(char *)) - 1, 542 GNUNET_PROGRAM_run ((sizeof(argv) / sizeof(char *)) - 1,
536 argv, 543 argv,
537 test_name_, 544 test_name_,
538 "nohelp", 545 "nohelp",
539 options, 546 options,
540 &connect_check_run, 547 &connect_check_run,
541 ccc)) 548 ccc))
542 return GNUNET_SYSERR; 549 return GNUNET_SYSERR;
543 return ccc->global_ret; 550 return ccc->global_ret;
544} 551}
@@ -555,11 +562,11 @@ GNUNET_TRANSPORT_TESTING_connect_check(void *cls,
555 * @return #GNUNET_OK on success 562 * @return #GNUNET_OK on success
556 */ 563 */
557int 564int
558GNUNET_TRANSPORT_TESTING_main_(const char *argv0, 565GNUNET_TRANSPORT_TESTING_main_ (const char *argv0,
559 const char *filename, 566 const char *filename,
560 unsigned int num_peers, 567 unsigned int num_peers,
561 GNUNET_TRANSPORT_TESTING_CheckCallback check, 568 GNUNET_TRANSPORT_TESTING_CheckCallback check,
562 void *check_cls) 569 void *check_cls)
563{ 570{
564 struct GNUNET_TRANSPORT_TESTING_Handle *tth; 571 struct GNUNET_TRANSPORT_TESTING_Handle *tth;
565 char *test_name; 572 char *test_name;
@@ -569,36 +576,36 @@ GNUNET_TRANSPORT_TESTING_main_(const char *argv0,
569 int ret; 576 int ret;
570 577
571 ret = GNUNET_OK; 578 ret = GNUNET_OK;
572 test_name = GNUNET_TRANSPORT_TESTING_get_test_name(argv0); 579 test_name = GNUNET_TRANSPORT_TESTING_get_test_name (argv0);
573 GNUNET_log_setup(test_name, 580 GNUNET_log_setup (test_name,
574 "WARNING", 581 "WARNING",
575 NULL); 582 NULL);
576 test_source = GNUNET_TRANSPORT_TESTING_get_test_source_name(filename); 583 test_source = GNUNET_TRANSPORT_TESTING_get_test_source_name (filename);
577 test_plugin = GNUNET_TRANSPORT_TESTING_get_test_plugin_name(argv0, 584 test_plugin = GNUNET_TRANSPORT_TESTING_get_test_plugin_name (argv0,
578 test_source); 585 test_source);
579 for (unsigned int i = 0; i < num_peers; i++) 586 for (unsigned int i = 0; i < num_peers; i++)
580 cfg_names[i] = GNUNET_TRANSPORT_TESTING_get_config_name(argv0, 587 cfg_names[i] = GNUNET_TRANSPORT_TESTING_get_config_name (argv0,
581 i + 1); 588 i + 1);
582 tth = GNUNET_TRANSPORT_TESTING_init(); 589 tth = GNUNET_TRANSPORT_TESTING_init ();
583 if (NULL == tth) 590 if (NULL == tth)
584 { 591 {
585 ret = GNUNET_SYSERR; 592 ret = GNUNET_SYSERR;
586 } 593 }
587 else 594 else
588 { 595 {
589 ret = check(check_cls, 596 ret = check (check_cls,
590 tth, 597 tth,
591 test_plugin, 598 test_plugin,
592 test_name, 599 test_name,
593 num_peers, 600 num_peers,
594 cfg_names); 601 cfg_names);
595 GNUNET_TRANSPORT_TESTING_done(tth); 602 GNUNET_TRANSPORT_TESTING_done (tth);
596 } 603 }
597 for (unsigned int i = 0; i < num_peers; i++) 604 for (unsigned int i = 0; i < num_peers; i++)
598 GNUNET_free(cfg_names[i]); 605 GNUNET_free (cfg_names[i]);
599 GNUNET_free(test_source); 606 GNUNET_free (test_source);
600 GNUNET_free_non_null(test_plugin); 607 GNUNET_free_non_null (test_plugin);
601 GNUNET_free(test_name); 608 GNUNET_free (test_name);
602 return ret; 609 return ret;
603} 610}
604 611