aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-08-31 15:45:07 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-08-31 15:45:07 +0000
commit75bf0641a6f6b19ae1ebea3c8f376c0226a0672b (patch)
tree71316a5d7d9843c803a8955c022bd03a36da8c34 /src/transport
parent95dd1c20cc527cd8d808955fc05866829f760256 (diff)
downloadgnunet-75bf0641a6f6b19ae1ebea3c8f376c0226a0672b.tar.gz
gnunet-75bf0641a6f6b19ae1ebea3c8f376c0226a0672b.zip
utility functions
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/test_transport_api_reliability.c49
-rw-r--r--src/transport/transport-testing.c121
-rw-r--r--src/transport/transport-testing.h6
3 files changed, 127 insertions, 49 deletions
diff --git a/src/transport/test_transport_api_reliability.c b/src/transport/test_transport_api_reliability.c
index 55db67877..09d23b789 100644
--- a/src/transport/test_transport_api_reliability.c
+++ b/src/transport/test_transport_api_reliability.c
@@ -83,6 +83,7 @@ struct TestMessage
83}; 83};
84 84
85static char *test_name; 85static char *test_name;
86static char *test_plugin;
86 87
87static int msg_scheduled; 88static int msg_scheduled;
88static int msg_sent; 89static int msg_sent;
@@ -118,7 +119,7 @@ end ()
118 delta = GNUNET_TIME_absolute_get_duration (start_time).rel_value; 119 delta = GNUNET_TIME_absolute_get_duration (start_time).rel_value;
119 fprintf (stderr, "\nThroughput was %llu kb/s\n", 120 fprintf (stderr, "\nThroughput was %llu kb/s\n",
120 total_bytes * 1000 / 1024 / delta); 121 total_bytes * 1000 / 1024 / delta);
121 GNUNET_asprintf (&value_name, "reliable_%s", test_name); 122 GNUNET_asprintf (&value_name, "reliable_%s", test_plugin);
122 GAUGER ("TRANSPORT", value_name, (int) (total_bytes * 1000 / 1024 / delta), 123 GAUGER ("TRANSPORT", value_name, (int) (total_bytes * 1000 / 1024 / delta),
123 "kb/s"); 124 "kb/s");
124 GNUNET_free (value_name); 125 GNUNET_free (value_name);
@@ -379,7 +380,7 @@ run (void *cls, char *const *args, const char *cfgfile,
379static int 380static int
380check () 381check ()
381{ 382{
382 static char *const argv[] = { "test-transport-api-reliability", 383 static char * argv[] = { "SDSD",
383 "-c", 384 "-c",
384 "test_transport_api_data.conf", 385 "test_transport_api_data.conf",
385#if VERBOSE 386#if VERBOSE
@@ -396,7 +397,7 @@ check ()
396#endif 397#endif
397 ok = 1; 398 ok = 1;
398 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, 399 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv,
399 "test-transport-api-reliability", "nohelp", options, &run, 400 test_name, "nohelp", options, &run,
400 &ok); 401 &ok);
401 402
402 return ok; 403 return ok;
@@ -407,8 +408,12 @@ main (int argc, char *argv[])
407{ 408{
408 int ret; 409 int ret;
409 int nat_res; 410 int nat_res;
411 //char * test_exec;
410 412
411 GNUNET_log_setup ("test-transport-api-reliability", 413 GNUNET_TRANSPORT_TESTING_get_test_sourcename (__FILE__, &test_name);
414
415
416 GNUNET_log_setup (test_name,
412#if VERBOSE 417#if VERBOSE
413 "DEBUG", 418 "DEBUG",
414#else 419#else
@@ -416,37 +421,7 @@ main (int argc, char *argv[])
416#endif 421#endif
417 NULL); 422 NULL);
418 423
419 char *pch = strdup (argv[0]); 424 GNUNET_TRANSPORT_TESTING_get_test_plugin (argv[0], test_name, &test_plugin);
420 char *backup = pch;
421 char *filename = NULL;
422 char *dotexe;
423 char *src_name = strdup (__FILE__);
424 char *split = NULL;
425
426 /* get executable filename */
427 pch = strtok (pch, "/");
428 while (pch != NULL)
429 {
430 pch = strtok (NULL, "/");
431 if (pch != NULL)
432 filename = pch;
433 }
434 /* remove "lt-" */
435 filename = strstr (filename, "tes");
436 if (NULL != (dotexe = strstr (filename, ".exe")))
437 dotexe[0] = '\0';
438
439 split = strstr (src_name, ".");
440 if (split != NULL)
441 {
442 split[0] = '\0';
443 test_name = strdup (&filename[strlen (src_name) + 1]);
444 }
445 else
446 test_name = NULL;
447
448 GNUNET_free (src_name);
449 GNUNET_free (backup);
450 425
451 if ((strstr (argv[0], "tcp_nat") != NULL) || 426 if ((strstr (argv[0], "tcp_nat") != NULL) ||
452 (strstr (argv[0], "udp_nat") != NULL)) 427 (strstr (argv[0], "udp_nat") != NULL))
@@ -466,6 +441,7 @@ main (int argc, char *argv[])
466 } 441 }
467 } 442 }
468 443
444
469 GNUNET_TRANSPORT_TESTING_get_config_name (argv[0], &cfg_file_p1, 1); 445 GNUNET_TRANSPORT_TESTING_get_config_name (argv[0], &cfg_file_p1, 1);
470 GNUNET_TRANSPORT_TESTING_get_config_name (argv[0], &cfg_file_p2, 2); 446 GNUNET_TRANSPORT_TESTING_get_config_name (argv[0], &cfg_file_p2, 2);
471 447
@@ -474,7 +450,8 @@ main (int argc, char *argv[])
474 GNUNET_free (cfg_file_p1); 450 GNUNET_free (cfg_file_p1);
475 GNUNET_free (cfg_file_p2); 451 GNUNET_free (cfg_file_p2);
476 452
477 GNUNET_free_non_null (test_name); 453 GNUNET_free (test_name);
454 GNUNET_free (test_plugin);
478 455
479 return ret; 456 return ret;
480} 457}
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 3ee471453..f71d7b78b 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -345,6 +345,92 @@ void GNUNET_TRANSPORT_TESTING_connect_peers_cancel
345 * Some utility functions 345 * Some utility functions
346 */ 346 */
347 347
348char *
349extract_filename (const char * file)
350{
351 char *pch = strdup (file);
352 char *backup = pch;
353 char *filename = NULL;
354 char *res;
355
356
357 /* get executable filename */
358 if (NULL != strstr (pch, "/"))
359 {
360 pch = strtok (pch, "/");
361 while (pch != NULL)
362 {
363 pch = strtok (NULL, "/");
364 if (pch != NULL)
365 {
366 filename = pch;
367 }
368 }
369 }
370 else
371 filename = pch;
372 res = strdup(filename);
373 GNUNET_free (backup);
374
375 return res;
376}
377
378void
379GNUNET_TRANSPORT_TESTING_get_test_sourcename (const char * file, char **testname)
380{
381 char * src = extract_filename (file);
382 char * split;
383
384 split = strstr (src, ".");
385 if (split != NULL)
386 {
387 split[0] = '\0';
388 }
389 GNUNET_asprintf(testname, "%s", src);
390 GNUNET_free (src);
391}
392
393void
394GNUNET_TRANSPORT_TESTING_get_test_plugin (const char * executable, const char * testname, char **pluginname)
395{
396 char *exec = extract_filename (executable);
397 char *test = extract_filename (testname);
398
399 char *backup_t = test;
400 char *filename = NULL;
401 char *dotexe;
402
403 if (exec == NULL)
404 goto fail;
405
406 /* remove "lt-" */
407 filename = strstr (exec, "tes");
408 if (filename == NULL)
409 goto fail;
410
411 /* remove ".exe" */
412 if (NULL != (dotexe = strstr (filename, ".exe")))
413 dotexe[0] = '\0';
414
415 /* find last _ */
416 filename = strstr (filename, test);
417 if (filename == NULL)
418 goto fail;
419
420 /* copy plugin */
421 filename += strlen (test);
422 filename++;
423 GNUNET_asprintf (pluginname, "%s", filename);
424 goto suc;
425
426fail:
427 (*pluginname) = NULL;
428suc:
429 GNUNET_free (backup_t);
430 GNUNET_free (exec);
431
432}
433
348/** 434/**
349 * this function takes the filename (e.g. argv[0), removes a "lt-"-prefix and 435 * this function takes the filename (e.g. argv[0), removes a "lt-"-prefix and
350 * if existing ".exe"-prefix and adds the peer-number 436 * if existing ".exe"-prefix and adds the peer-number
@@ -356,30 +442,39 @@ void
356GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname, 442GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname,
357 int count) 443 int count)
358{ 444{
359 char *pch = strdup (file); 445 char *filename = extract_filename (file);
360 char *backup = pch; 446 char *backup = filename;
361 char *filename = NULL;
362 char *dotexe; 447 char *dotexe;
363 448
364 449
365 /* get executable filename */ 450 if (filename == NULL)
366 pch = strtok (pch, "/"); 451 goto fail;
367 while (pch != NULL) 452
368 {
369 pch = strtok (NULL, "/");
370 if (pch != NULL)
371 filename = pch;
372 }
373 /* remove "lt-" */ 453 /* remove "lt-" */
374 filename = strstr (filename, "tes"); 454 filename = strstr (filename, "tes");
455 if (filename == NULL)
456 goto fail;
457
458 /* remove ".exe" */
375 if (NULL != (dotexe = strstr (filename, ".exe"))) 459 if (NULL != (dotexe = strstr (filename, ".exe")))
376 dotexe[0] = '\0'; 460 dotexe[0] = '\0';
461
462 if (filename == NULL)
463 goto fail;
464
465 /* copy plugin */
466 goto suc;
377 467
468fail:
469 (*cfgname) = NULL;
470 return;
471
472suc:
378 /* create cfg filename */ 473 /* create cfg filename */
379 GNUNET_asprintf (cfgname, "%s_peer%u.conf", filename, count); 474 GNUNET_asprintf (cfgname, "%s_peer%u.conf", filename, count);
380
381 GNUNET_free (backup); 475 GNUNET_free (backup);
382} 476}
383 477
384 478
479
385/* end of transport_testing.h */ 480/* end of transport_testing.h */
diff --git a/src/transport/transport-testing.h b/src/transport/transport-testing.h
index 7899279dc..96fe216e9 100644
--- a/src/transport/transport-testing.h
+++ b/src/transport/transport-testing.h
@@ -133,4 +133,10 @@ void
133GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname, 133GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname,
134 int count); 134 int count);
135 135
136void
137GNUNET_TRANSPORT_TESTING_get_test_plugin (const char * executable, const char * testname, char **pluginname);
138
139void
140GNUNET_TRANSPORT_TESTING_get_test_sourcename (const char * file, char **testname);
141
136/* end of transport_testing.h */ 142/* end of transport_testing.h */