diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2011-08-31 15:45:07 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2011-08-31 15:45:07 +0000 |
commit | 75bf0641a6f6b19ae1ebea3c8f376c0226a0672b (patch) | |
tree | 71316a5d7d9843c803a8955c022bd03a36da8c34 /src/transport | |
parent | 95dd1c20cc527cd8d808955fc05866829f760256 (diff) | |
download | gnunet-75bf0641a6f6b19ae1ebea3c8f376c0226a0672b.tar.gz gnunet-75bf0641a6f6b19ae1ebea3c8f376c0226a0672b.zip |
utility functions
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/test_transport_api_reliability.c | 49 | ||||
-rw-r--r-- | src/transport/transport-testing.c | 121 | ||||
-rw-r--r-- | src/transport/transport-testing.h | 6 |
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 | ||
85 | static char *test_name; | 85 | static char *test_name; |
86 | static char *test_plugin; | ||
86 | 87 | ||
87 | static int msg_scheduled; | 88 | static int msg_scheduled; |
88 | static int msg_sent; | 89 | static 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, | |||
379 | static int | 380 | static int |
380 | check () | 381 | check () |
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 | ||
348 | char * | ||
349 | extract_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 | |||
378 | void | ||
379 | GNUNET_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 | |||
393 | void | ||
394 | GNUNET_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 | |||
426 | fail: | ||
427 | (*pluginname) = NULL; | ||
428 | suc: | ||
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 | |||
356 | GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname, | 442 | GNUNET_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 | ||
468 | fail: | ||
469 | (*cfgname) = NULL; | ||
470 | return; | ||
471 | |||
472 | suc: | ||
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 | |||
133 | GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname, | 133 | GNUNET_TRANSPORT_TESTING_get_config_name (const char *file, char **cfgname, |
134 | int count); | 134 | int count); |
135 | 135 | ||
136 | void | ||
137 | GNUNET_TRANSPORT_TESTING_get_test_plugin (const char * executable, const char * testname, char **pluginname); | ||
138 | |||
139 | void | ||
140 | GNUNET_TRANSPORT_TESTING_get_test_sourcename (const char * file, char **testname); | ||
141 | |||
136 | /* end of transport_testing.h */ | 142 | /* end of transport_testing.h */ |