aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-01-30 10:45:13 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-01-30 10:45:13 +0000
commit7067d8df58abce4636ff94cd3621aee9de1ab594 (patch)
tree3632705ab7d0b30b791c240ef05eca74fa624597 /src
parentdaf74c08914b5dbec07848207262eff933a5f180 (diff)
downloadgnunet-7067d8df58abce4636ff94cd3621aee9de1ab594.tar.gz
gnunet-7067d8df58abce4636ff94cd3621aee9de1ab594.zip
writign plots
Diffstat (limited to 'src')
-rw-r--r--src/ats-tests/ats-testing-log.c59
-rw-r--r--src/ats-tests/ats-testing.h5
-rw-r--r--src/ats-tests/gnunet-ats-sim.c12
3 files changed, 53 insertions, 23 deletions
diff --git a/src/ats-tests/ats-testing-log.c b/src/ats-tests/ats-testing-log.c
index 17b3ab450..3d689e7b2 100644
--- a/src/ats-tests/ats-testing-log.c
+++ b/src/ats-tests/ats-testing-log.c
@@ -258,6 +258,9 @@ write_throughput_gnuplot_script (char * fn, struct LoggingPeer *lp)
258 int peer_index; 258 int peer_index;
259 259
260 GNUNET_asprintf (&gfn, "gnuplot_throughput_%s",fn); 260 GNUNET_asprintf (&gfn, "gnuplot_throughput_%s",fn);
261 fprintf (stderr, "Writing throughput plot for master %u to `%s'\n",
262 lp->peer->no, gfn);
263
261 f = GNUNET_DISK_file_open (gfn, 264 f = GNUNET_DISK_file_open (gfn,
262 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, 265 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE,
263 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 266 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ |
@@ -328,6 +331,9 @@ write_rtt_gnuplot_script (char * fn, struct LoggingPeer *lp)
328 int index; 331 int index;
329 332
330 GNUNET_asprintf (&gfn, "gnuplot_rtt_%s",fn); 333 GNUNET_asprintf (&gfn, "gnuplot_rtt_%s",fn);
334 fprintf (stderr, "Writing rtt plot for master %u to `%s'\n",
335 lp->peer->no, gfn);
336
331 f = GNUNET_DISK_file_open (gfn, 337 f = GNUNET_DISK_file_open (gfn,
332 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, 338 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE,
333 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 339 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ |
@@ -374,6 +380,9 @@ write_bw_gnuplot_script (char * fn, struct LoggingPeer *lp)
374 int index; 380 int index;
375 381
376 GNUNET_asprintf (&gfn, "gnuplot_bw_%s",fn); 382 GNUNET_asprintf (&gfn, "gnuplot_bw_%s",fn);
383 fprintf (stderr, "Writing bandwidth plot for master %u to `%s'\n",
384 lp->peer->no, gfn);
385
377 f = GNUNET_DISK_file_open (gfn, 386 f = GNUNET_DISK_file_open (gfn,
378 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, 387 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE,
379 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 388 GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ |
@@ -386,7 +395,6 @@ write_bw_gnuplot_script (char * fn, struct LoggingPeer *lp)
386 } 395 }
387 396
388 /* Write header */ 397 /* Write header */
389
390 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, BW_TEMPLATE, strlen(BW_TEMPLATE))) 398 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, BW_TEMPLATE, strlen(BW_TEMPLATE)))
391 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 399 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
392 "Cannot write data to plot file `%s'\n", gfn); 400 "Cannot write data to plot file `%s'\n", gfn);
@@ -417,11 +425,12 @@ write_bw_gnuplot_script (char * fn, struct LoggingPeer *lp)
417 425
418 426
419void 427void
420GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l, char *test_name) 428GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l,
429 char *experiment_name, int plots)
421{ 430{
422 struct GNUNET_DISK_FileHandle *f; 431 struct GNUNET_DISK_FileHandle *f;
423 432 char *tmp_exp_name;
424 char * filename; 433 char *filename_data;
425 char *data; 434 char *data;
426 char *slave_string; 435 char *slave_string;
427 char *slave_string_tmp; 436 char *slave_string_tmp;
@@ -431,32 +440,39 @@ GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l, char *test_name)
431 int c_m; 440 int c_m;
432 int c_s; 441 int c_s;
433 442
443
434 timestamp = GNUNET_TIME_absolute_get(); 444 timestamp = GNUNET_TIME_absolute_get();
435 445
446 tmp_exp_name = experiment_name;
447 if (NULL != strchr (experiment_name, '/'));
448 {
449 tmp_exp_name = strchr (experiment_name, '/');
450 tmp_exp_name++;
451 }
452
436 for (c_m = 0; c_m < l->num_peers; c_m++) 453 for (c_m = 0; c_m < l->num_peers; c_m++)
437 { 454 {
438 GNUNET_asprintf (&filename, "%s_%llu_master_%u_%s_%s.data", test_name, 455 GNUNET_asprintf (&filename_data, "%s_%llu_master_%u_%s_%s.data", tmp_exp_name,
439 timestamp.abs_value_us, 456 timestamp.abs_value_us,
440 l->lp[c_m].peer->no, GNUNET_i2s(&l->lp[c_m].peer->id), l->name); 457 l->lp[c_m].peer->no, GNUNET_i2s(&l->lp[c_m].peer->id), l->name);
441 458
442 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Writing master %u to file `%s'\n", 459 fprintf (stderr, "Writing master %u to file `%s'\n", c_m, filename_data);
443 c_m, filename);
444 460
445 f = GNUNET_DISK_file_open (filename, 461 f = GNUNET_DISK_file_open (filename_data,
446 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, 462 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE,
447 GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE); 463 GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE);
448 if (NULL == f) 464 if (NULL == f)
449 { 465 {
450 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot open log file `%s'\n", filename); 466 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot open log file `%s'\n", filename_data);
451 GNUNET_free (filename); 467 GNUNET_free (filename_data);
452 return; 468 return;
453 } 469 }
454 470
455 GNUNET_asprintf (&data, "# master peers: %u ; slave peers: %u ; experiment : %s\n", 471 GNUNET_asprintf (&data, "# master peers: %u ; slave peers: %u ; experiment : %s\n",
456 l->num_peers, l->lp[c_m].peer->num_partners, test_name); 472 l->num_peers, l->lp[c_m].peer->num_partners, experiment_name);
457 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, data, strlen(data))) 473 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, data, strlen(data)))
458 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 474 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
459 "Cannot write data to log file `%s'\n", filename); 475 "Cannot write data to log file `%s'\n", filename_data);
460 GNUNET_free (data); 476 GNUNET_free (data);
461 477
462 for (cur_lt = l->lp[c_m].head; NULL != cur_lt; cur_lt = cur_lt->next) 478 for (cur_lt = l->lp[c_m].head; NULL != cur_lt; cur_lt = cur_lt->next)
@@ -534,24 +550,27 @@ GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l, char *test_name)
534 550
535 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, data, strlen(data))) 551 if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, data, strlen(data)))
536 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 552 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
537 "Cannot write data to log file `%s'\n", filename); 553 "Cannot write data to log file `%s'\n", filename_data);
538 GNUNET_free (data); 554 GNUNET_free (data);
539 } 555 }
540 if (GNUNET_SYSERR == GNUNET_DISK_file_close(f)) 556 if (GNUNET_SYSERR == GNUNET_DISK_file_close(f))
541 { 557 {
542 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 558 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
543 "Cannot close log file `%s'\n", filename); 559 "Cannot close log file `%s'\n", filename_data);
544 GNUNET_free (filename); 560 GNUNET_free (filename_data);
545 return; 561 return;
546 } 562 }
547 563
548 write_throughput_gnuplot_script (filename, l->lp); 564 if (GNUNET_YES == plots)
549 write_rtt_gnuplot_script (filename, l->lp); 565 {
550 write_bw_gnuplot_script (filename, l->lp); 566 write_throughput_gnuplot_script (filename_data, &l->lp[c_m]);
567 write_rtt_gnuplot_script (filename_data, &l->lp[c_m]);
568 write_bw_gnuplot_script (filename_data, &l->lp[c_m]);
569 }
551 570
552 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 571 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
553 "Data file successfully written to log file `%s'\n", filename); 572 "Data file successfully written to log file `%s'\n", filename_data);
554 GNUNET_free (filename); 573 GNUNET_free (filename_data);
555 } 574 }
556} 575}
557 576
diff --git a/src/ats-tests/ats-testing.h b/src/ats-tests/ats-testing.h
index c27033ee7..59a9145d7 100644
--- a/src/ats-tests/ats-testing.h
+++ b/src/ats-tests/ats-testing.h
@@ -591,10 +591,11 @@ GNUNET_ATS_TEST_logging_now (struct LoggingHandle *l);
591 * 591 *
592 * @param l logging handle to use 592 * @param l logging handle to use
593 * @param test_name name of the current test 593 * @param test_name name of the current test
594 * @param plots create gnuplots: GNUNET_YES or GNUNET_NO
594 */ 595 */
595void 596void
596GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *h, 597GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l,
597 char *test_name); 598 char *test_name, int plots);
598 599
599/* 600/*
600 * Topology related functions 601 * Topology related functions
diff --git a/src/ats-tests/gnunet-ats-sim.c b/src/ats-tests/gnunet-ats-sim.c
index 6a9797179..26d0d7d91 100644
--- a/src/ats-tests/gnunet-ats-sim.c
+++ b/src/ats-tests/gnunet-ats-sim.c
@@ -47,6 +47,11 @@ static char *opt_exp_file;
47 */ 47 */
48static int opt_log; 48static int opt_log;
49 49
50/**
51 * cmd option -p: enable plots
52 */
53static int opt_plot;
54
50GNUNET_SCHEDULER_TaskIdentifier timeout_task; 55GNUNET_SCHEDULER_TaskIdentifier timeout_task;
51 56
52struct Experiment *e; 57struct Experiment *e;
@@ -162,7 +167,7 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i
162 GNUNET_ATS_TEST_logging_stop (l); 167 GNUNET_ATS_TEST_logging_stop (l);
163 evaluate (duration); 168 evaluate (duration);
164 if (opt_log) 169 if (opt_log)
165 GNUNET_ATS_TEST_logging_write_to_file(l, opt_exp_file); 170 GNUNET_ATS_TEST_logging_write_to_file(l, opt_exp_file, opt_plot);
166 171
167 /* Stop traffic generation */ 172 /* Stop traffic generation */
168 GNUNET_ATS_TEST_generate_traffic_stop_all(); 173 GNUNET_ATS_TEST_generate_traffic_stop_all();
@@ -220,6 +225,7 @@ parse_args (int argc, char *argv[])
220 int c; 225 int c;
221 opt_exp_file = NULL; 226 opt_exp_file = NULL;
222 opt_log = GNUNET_NO; 227 opt_log = GNUNET_NO;
228 opt_plot = GNUNET_NO;
223 229
224 for (c = 0; c < argc; c++) 230 for (c = 0; c < argc; c++)
225 { 231 {
@@ -231,6 +237,10 @@ parse_args (int argc, char *argv[])
231 { 237 {
232 opt_log = GNUNET_YES; 238 opt_log = GNUNET_YES;
233 } 239 }
240 if (0 == strcmp (argv[c], "-p"))
241 {
242 opt_plot = GNUNET_YES;
243 }
234 } 244 }
235} 245}
236 246