diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-01-30 09:32:01 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-01-30 09:32:01 +0000 |
commit | 247ecc51c01c54313844cb495c1fa829806bc170 (patch) | |
tree | 72d9f516765361cfae33825e2a2e7057d59b5c0a /src | |
parent | 4ed987ed9bd12e201d9146972274933b4479bb0e (diff) | |
download | gnunet-247ecc51c01c54313844cb495c1fa829806bc170.tar.gz gnunet-247ecc51c01c54313844cb495c1fa829806bc170.zip |
fix and improved logging
Diffstat (limited to 'src')
-rw-r--r-- | src/ats-tests/ats-testing-experiment.c | 9 | ||||
-rw-r--r-- | src/ats-tests/ats-testing-log.c | 18 | ||||
-rw-r--r-- | src/ats-tests/ats-testing.h | 8 | ||||
-rw-r--r-- | src/ats-tests/gnunet-ats-sim.c | 24 | ||||
-rw-r--r-- | src/ats-tests/perf_ats.c | 2 | ||||
-rw-r--r-- | src/ats-tests/perf_ats.h | 2 |
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) | |||
668 | void | 668 | void |
669 | GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l) | 669 | GNUNET_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 | */ | ||
691 | void | ||
692 | GNUNET_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 | */ |
569 | void | 569 | void |
570 | GNUNET_ATS_TEST_logging_clean_up (struct LoggingHandle *l); | ||
571 | |||
572 | /** | ||
573 | * Stop logging | ||
574 | * | ||
575 | * @param l the logging handle | ||
576 | */ | ||
577 | void | ||
570 | GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l); | 578 | GNUNET_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 @@ | |||
37 | static struct BenchmarkPeer *masters_p; | 37 | static struct BenchmarkPeer *masters_p; |
38 | static struct BenchmarkPeer *slaves_p; | 38 | static struct BenchmarkPeer *slaves_p; |
39 | 39 | ||
40 | /** | ||
41 | * cmd option -e: experiment file | ||
42 | */ | ||
43 | static char *opt_exp_file; | ||
44 | |||
45 | /** | ||
46 | * cmd option -l: enable logging | ||
47 | */ | ||
48 | static int opt_log; | ||
49 | |||
40 | GNUNET_SCHEDULER_TaskIdentifier timeout_task; | 50 | GNUNET_SCHEDULER_TaskIdentifier timeout_task; |
41 | 51 | ||
42 | struct Experiment *e; | 52 | struct 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 | ||
202 | static char *opt_exp_file; | ||
203 | static int opt_log; | ||
204 | |||
205 | static void | 217 | static void |
206 | parse_args (int argc, char *argv[]) | 218 | parse_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 | |||
251 | GNUNET_ATS_TEST_logging_now (void); | 251 | GNUNET_ATS_TEST_logging_now (void); |
252 | 252 | ||
253 | void | 253 | void |
254 | GNUNET_ATS_TEST_logging_stop (); | 254 | GNUNET_ATS_TEST_logging_clean_up (); |
255 | 255 | ||
256 | void | 256 | void |
257 | GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency, | 257 | GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency, |