aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-01-30 09:32:01 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-01-30 09:32:01 +0000
commit247ecc51c01c54313844cb495c1fa829806bc170 (patch)
tree72d9f516765361cfae33825e2a2e7057d59b5c0a /src
parent4ed987ed9bd12e201d9146972274933b4479bb0e (diff)
downloadgnunet-247ecc51c01c54313844cb495c1fa829806bc170.tar.gz
gnunet-247ecc51c01c54313844cb495c1fa829806bc170.zip
fix and improved logging
Diffstat (limited to 'src')
-rw-r--r--src/ats-tests/ats-testing-experiment.c9
-rw-r--r--src/ats-tests/ats-testing-log.c18
-rw-r--r--src/ats-tests/ats-testing.h8
-rw-r--r--src/ats-tests/gnunet-ats-sim.c24
-rw-r--r--src/ats-tests/perf_ats.c2
-rw-r--r--src/ats-tests/perf_ats.h2
6 files changed, 51 insertions, 12 deletions
diff --git a/src/ats-tests/ats-testing-experiment.c b/src/ats-tests/ats-testing-experiment.c
index 54c7675d7..d55adc2d7 100644
--- a/src/ats-tests/ats-testing-experiment.c
+++ b/src/ats-tests/ats-testing-experiment.c
@@ -259,6 +259,12 @@ timeout_experiment (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
259 e->experiment_timeout_task = GNUNET_SCHEDULER_NO_TASK; 259 e->experiment_timeout_task = GNUNET_SCHEDULER_NO_TASK;
260 fprintf (stderr, "Experiment timeout!\n"); 260 fprintf (stderr, "Experiment timeout!\n");
261 261
262 if (GNUNET_SCHEDULER_NO_TASK != e->episode_timeout_task)
263 {
264 e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK;
265 GNUNET_SCHEDULER_cancel (e->episode_timeout_task);
266 }
267
262 e->e_done_cb (e, GNUNET_TIME_absolute_get_duration(e->start_time), 268 e->e_done_cb (e, GNUNET_TIME_absolute_get_duration(e->start_time),
263 GNUNET_SYSERR); 269 GNUNET_SYSERR);
264} 270}
@@ -319,7 +325,8 @@ timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
319{ 325{
320 struct Experiment *e = cls; 326 struct Experiment *e = cls;
321 e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK; 327 e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK;
322 e->ep_done_cb (e->cur); 328 if (NULL != e->ep_done_cb)
329 e->ep_done_cb (e->cur);
323 330
324 /* Scheduling next */ 331 /* Scheduling next */
325 e->cur = e->cur->next; 332 e->cur = e->cur->next;
diff --git a/src/ats-tests/ats-testing-log.c b/src/ats-tests/ats-testing-log.c
index 29408d1f8..a5c1d0bc0 100644
--- a/src/ats-tests/ats-testing-log.c
+++ b/src/ats-tests/ats-testing-log.c
@@ -668,10 +668,7 @@ collect_log_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
668void 668void
669GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l) 669GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l)
670{ 670{
671 int c_m;
672 struct GNUNET_SCHEDULER_TaskContext tc; 671 struct GNUNET_SCHEDULER_TaskContext tc;
673 struct PeerLoggingTimestep *cur;
674
675 if (GNUNET_YES!= l->running) 672 if (GNUNET_YES!= l->running)
676 return; 673 return;
677 674
@@ -680,10 +677,25 @@ GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l)
680 l->log_task = GNUNET_SCHEDULER_NO_TASK; 677 l->log_task = GNUNET_SCHEDULER_NO_TASK;
681 tc.reason = GNUNET_SCHEDULER_REASON_SHUTDOWN; 678 tc.reason = GNUNET_SCHEDULER_REASON_SHUTDOWN;
682 collect_log_task (l, &tc); 679 collect_log_task (l, &tc);
680 l->running = GNUNET_NO;
683 681
684 GNUNET_log(GNUNET_ERROR_TYPE_INFO, 682 GNUNET_log(GNUNET_ERROR_TYPE_INFO,
685 _("Stop logging\n")); 683 _("Stop logging\n"));
684}
685
686/**
687 * Clean up logging data
688 *
689 * @param l the logging handle
690 */
691void
692GNUNET_ATS_TEST_logging_clean_up (struct LoggingHandle *l)
693{
694 int c_m;
695 struct PeerLoggingTimestep *cur;
686 696
697 if (GNUNET_YES == l->running)
698 GNUNET_ATS_TEST_logging_stop (l);
687 699
688 for (c_m = 0; c_m < l->num_peers; c_m++) 700 for (c_m = 0; c_m < l->num_peers; c_m++)
689 { 701 {
diff --git a/src/ats-tests/ats-testing.h b/src/ats-tests/ats-testing.h
index 91c15d6d1..c27033ee7 100644
--- a/src/ats-tests/ats-testing.h
+++ b/src/ats-tests/ats-testing.h
@@ -567,6 +567,14 @@ GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency,
567 * @param l the logging handle 567 * @param l the logging handle
568 */ 568 */
569void 569void
570GNUNET_ATS_TEST_logging_clean_up (struct LoggingHandle *l);
571
572/**
573 * Stop logging
574 *
575 * @param l the logging handle
576 */
577void
570GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l); 578GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l);
571 579
572/** 580/**
diff --git a/src/ats-tests/gnunet-ats-sim.c b/src/ats-tests/gnunet-ats-sim.c
index c7febecc9..6a9797179 100644
--- a/src/ats-tests/gnunet-ats-sim.c
+++ b/src/ats-tests/gnunet-ats-sim.c
@@ -37,6 +37,16 @@
37static struct BenchmarkPeer *masters_p; 37static struct BenchmarkPeer *masters_p;
38static struct BenchmarkPeer *slaves_p; 38static struct BenchmarkPeer *slaves_p;
39 39
40/**
41 * cmd option -e: experiment file
42 */
43static char *opt_exp_file;
44
45/**
46 * cmd option -l: enable logging
47 */
48static int opt_log;
49
40GNUNET_SCHEDULER_TaskIdentifier timeout_task; 50GNUNET_SCHEDULER_TaskIdentifier timeout_task;
41 51
42struct Experiment *e; 52struct Experiment *e;
@@ -151,11 +161,14 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i
151 /* Stop logging */ 161 /* Stop logging */
152 GNUNET_ATS_TEST_logging_stop (l); 162 GNUNET_ATS_TEST_logging_stop (l);
153 evaluate (duration); 163 evaluate (duration);
164 if (opt_log)
165 GNUNET_ATS_TEST_logging_write_to_file(l, opt_exp_file);
154 166
155 /* Stop traffic generation */ 167 /* Stop traffic generation */
156 GNUNET_ATS_TEST_generate_traffic_stop_all(); 168 GNUNET_ATS_TEST_generate_traffic_stop_all();
157 /* Clean up experiment */ 169 /* Clean up experiment */
158 GNUNET_ATS_TEST_experimentation_stop (e); 170 GNUNET_ATS_TEST_experimentation_stop (e);
171 GNUNET_ATS_TEST_logging_clean_up (l);
159 e = NULL; 172 e = NULL;
160 173
161 /* Shutdown topology */ 174 /* Shutdown topology */
@@ -179,8 +192,10 @@ static void topology_setup_done (void *cls,
179 masters_p = masters; 192 masters_p = masters;
180 slaves_p = slaves; 193 slaves_p = slaves;
181 194
182 l = GNUNET_ATS_TEST_logging_start (GNUNET_TIME_UNIT_SECONDS, e->name, 195 l = GNUNET_ATS_TEST_logging_start (GNUNET_TIME_UNIT_SECONDS,
183 masters_p, e->num_masters); 196 e->name,
197 masters_p,
198 e->num_masters);
184 GNUNET_ATS_TEST_experimentation_run (e, &episode_done_cb, &experiment_done_cb); 199 GNUNET_ATS_TEST_experimentation_run (e, &episode_done_cb, &experiment_done_cb);
185 200
186 for (c_m = 0; c_m < e->num_masters; c_m++) 201 for (c_m = 0; c_m < e->num_masters; c_m++)
@@ -199,9 +214,6 @@ static void topology_setup_done (void *cls,
199 e->max_duration), &do_shutdown, NULL); 214 e->max_duration), &do_shutdown, NULL);
200} 215}
201 216
202static char *opt_exp_file;
203static int opt_log;
204
205static void 217static void
206parse_args (int argc, char *argv[]) 218parse_args (int argc, char *argv[])
207{ 219{
@@ -236,7 +248,6 @@ main (int argc, char *argv[])
236 248
237 fprintf (stderr, "Loading experiment `%s' \n", opt_exp_file ); 249 fprintf (stderr, "Loading experiment `%s' \n", opt_exp_file );
238 e = GNUNET_ATS_TEST_experimentation_load (opt_exp_file); 250 e = GNUNET_ATS_TEST_experimentation_load (opt_exp_file);
239 GNUNET_free (opt_exp_file);
240 if (NULL == e) 251 if (NULL == e)
241 { 252 {
242 fprintf (stderr, "Invalid experiment\n"); 253 fprintf (stderr, "Invalid experiment\n");
@@ -257,6 +268,7 @@ main (int argc, char *argv[])
257 NULL, 268 NULL,
258 &transport_recv_cb, 269 &transport_recv_cb,
259 &log_request__cb); 270 &log_request__cb);
271 GNUNET_free (opt_exp_file);
260 return 0; 272 return 0;
261} 273}
262/* end of file gnunet-ats-sim.c */ 274/* end of file gnunet-ats-sim.c */
diff --git a/src/ats-tests/perf_ats.c b/src/ats-tests/perf_ats.c
index 7e835495c..33954f7eb 100644
--- a/src/ats-tests/perf_ats.c
+++ b/src/ats-tests/perf_ats.c
@@ -192,7 +192,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
192{ 192{
193 193
194 if (GNUNET_YES == logging) 194 if (GNUNET_YES == logging)
195 GNUNET_ATS_TEST_logging_stop(l); 195 GNUNET_ATS_TEST_logging_clean_up(l);
196 196
197 shutdown_task = GNUNET_SCHEDULER_NO_TASK; 197 shutdown_task = GNUNET_SCHEDULER_NO_TASK;
198 if (GNUNET_SCHEDULER_NO_TASK != progress_task) 198 if (GNUNET_SCHEDULER_NO_TASK != progress_task)
diff --git a/src/ats-tests/perf_ats.h b/src/ats-tests/perf_ats.h
index a1cd43173..8fd1f70f4 100644
--- a/src/ats-tests/perf_ats.h
+++ b/src/ats-tests/perf_ats.h
@@ -251,7 +251,7 @@ void
251GNUNET_ATS_TEST_logging_now (void); 251GNUNET_ATS_TEST_logging_now (void);
252 252
253void 253void
254GNUNET_ATS_TEST_logging_stop (); 254GNUNET_ATS_TEST_logging_clean_up ();
255 255
256void 256void
257GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency, 257GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency,