aboutsummaryrefslogtreecommitdiff
path: root/src/ats-tests/ats-testing.h
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-01-23 14:56:59 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-01-23 14:56:59 +0000
commitee1c5c74a2409a52af706e613bd86a26341abba8 (patch)
treeef18e73357f63737c7560cc3a3ca7fb211bcd468 /src/ats-tests/ats-testing.h
parent65b732a465152cf0769651397ff9d2c0980e1727 (diff)
downloadgnunet-ee1c5c74a2409a52af706e613bd86a26341abba8.tar.gz
gnunet-ee1c5c74a2409a52af706e613bd86a26341abba8.zip
new logging functionality
Diffstat (limited to 'src/ats-tests/ats-testing.h')
-rw-r--r--src/ats-tests/ats-testing.h65
1 files changed, 52 insertions, 13 deletions
diff --git a/src/ats-tests/ats-testing.h b/src/ats-tests/ats-testing.h
index d57ce2667..028789d69 100644
--- a/src/ats-tests/ats-testing.h
+++ b/src/ats-tests/ats-testing.h
@@ -39,11 +39,19 @@ struct BenchmarkPartner;
39struct BenchmarkPeer; 39struct BenchmarkPeer;
40struct GNUNET_ATS_TEST_Topology; 40struct GNUNET_ATS_TEST_Topology;
41struct TrafficGenerator; 41struct TrafficGenerator;
42struct LoggingHandle;
42 43
43typedef void (*GNUNET_ATS_TESTING_TopologySetupDoneCallback) (void *cls, 44typedef void (*GNUNET_ATS_TEST_TopologySetupDoneCallback) (void *cls,
44 struct BenchmarkPeer *masters, 45 struct BenchmarkPeer *masters,
45 struct BenchmarkPeer *slaves); 46 struct BenchmarkPeer *slaves);
46 47
48typedef void
49(*GNUNET_ATS_TEST_LogRequest) (void *cls,
50 const struct GNUNET_HELLO_Address *address, int address_active,
51 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
52 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
53 const struct GNUNET_ATS_Information *ats, uint32_t ats_count);
54
47/** 55/**
48 * Information we track for a peer in the testbed. 56 * Information we track for a peer in the testbed.
49 */ 57 */
@@ -309,11 +317,6 @@ struct GNUNET_ATS_TEST_Topology
309 */ 317 */
310 int result; 318 int result;
311 319
312 /**
313 * Test result logging
314 */
315 int logging;
316
317 /**Test core (GNUNET_YES) or transport (GNUNET_NO) 320 /**Test core (GNUNET_YES) or transport (GNUNET_NO)
318 */ 321 */
319 int test_core; 322 int test_core;
@@ -377,11 +380,22 @@ struct GNUNET_ATS_TEST_Topology
377 380
378 GNUNET_TRANSPORT_ReceiveCallback transport_recv_cb; 381 GNUNET_TRANSPORT_ReceiveCallback transport_recv_cb;
379 382
380 GNUNET_ATS_TESTING_TopologySetupDoneCallback done_cb; 383 GNUNET_ATS_TEST_TopologySetupDoneCallback done_cb;
381 GNUNET_ATS_AddressInformationCallback ats_perf_cb; 384 GNUNET_ATS_AddressInformationCallback ats_perf_cb;
382 void *done_cb_cls; 385 void *done_cb_cls;
383}; 386};
384 387
388struct Experiment;
389
390struct Episode;
391
392typedef void (*GNUNET_ATS_TESTING_EpisodeDoneCallback) (
393 struct Episode *e);
394
395typedef void (*GNUNET_ATS_TESTING_ExperimentDoneCallback) (
396 struct Experiment *e, int success);
397
398
385struct Experiment 399struct Experiment
386{ 400{
387 char *name; 401 char *name;
@@ -389,10 +403,33 @@ struct Experiment
389 unsigned long long int num_masters; 403 unsigned long long int num_masters;
390 unsigned long long int num_slaves; 404 unsigned long long int num_slaves;
391 struct GNUNET_TIME_Relative max_duration; 405 struct GNUNET_TIME_Relative max_duration;
406 struct GNUNET_TIME_Relative total_duration;
407 struct GNUNET_TIME_Absolute start_time;
408 unsigned int num_episodes;
409 struct Episode *start;
410
411 GNUNET_SCHEDULER_TaskIdentifier experiment_timeout_task;
412 GNUNET_SCHEDULER_TaskIdentifier episode_timeout_task;
413 struct Episode *cur;
414
415 GNUNET_ATS_TESTING_EpisodeDoneCallback ep_done_cb;
416 GNUNET_ATS_TESTING_ExperimentDoneCallback e_done_cb;
417};
418
419struct Episode
420{
421 int id;
422 struct Episode *next;
423 struct GNUNET_TIME_Relative duration;
392}; 424};
393 425
426void
427GNUNET_ATS_TEST_experimentation_run (struct Experiment *e,
428 GNUNET_ATS_TESTING_EpisodeDoneCallback ep_done_cb,
429 GNUNET_ATS_TESTING_ExperimentDoneCallback e_done_cb);
430
394struct Experiment * 431struct Experiment *
395GNUNET_ATS_TEST_experimentation_start (char *filename); 432GNUNET_ATS_TEST_experimentation_load (char *filename);
396 433
397void 434void
398GNUNET_ATS_TEST_experimentation_stop (struct Experiment *e); 435GNUNET_ATS_TEST_experimentation_stop (struct Experiment *e);
@@ -415,7 +452,7 @@ GNUNET_ATS_TEST_generate_traffic_stop_all ();
415/** 452/**
416 * Start logging 453 * Start logging
417 */ 454 */
418void 455struct LoggingHandle *
419GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency, 456GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency,
420 char * testname, struct BenchmarkPeer *masters, int num_masters); 457 char * testname, struct BenchmarkPeer *masters, int num_masters);
421 458
@@ -423,14 +460,16 @@ GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency,
423 * Stop logging 460 * Stop logging
424 */ 461 */
425void 462void
426GNUNET_ATS_TEST_logging_stop (void); 463GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *);
427 464
428/** 465/**
429 * Log all data now 466 * Log all data now
430 */ 467 */
431void 468void
432GNUNET_ATS_TEST_logging_now (void); 469GNUNET_ATS_TEST_logging_now (struct LoggingHandle *);
433 470
471void
472GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *, char *test);
434 473
435void 474void
436GNUNET_ATS_TEST_traffic_handle_ping (struct BenchmarkPartner *p); 475GNUNET_ATS_TEST_traffic_handle_ping (struct BenchmarkPartner *p);
@@ -444,10 +483,10 @@ GNUNET_ATS_TEST_create_topology (char *name, char *cfg_file,
444 unsigned int num_slaves, 483 unsigned int num_slaves,
445 unsigned int num_masters, 484 unsigned int num_masters,
446 int test_core, 485 int test_core,
447 GNUNET_ATS_TESTING_TopologySetupDoneCallback done_cb, 486 GNUNET_ATS_TEST_TopologySetupDoneCallback done_cb,
448 void *done_cb_cls, 487 void *done_cb_cls,
449 GNUNET_TRANSPORT_ReceiveCallback transport_recv_cb, 488 GNUNET_TRANSPORT_ReceiveCallback transport_recv_cb,
450 GNUNET_ATS_AddressInformationCallback ats_perf_cb); 489 GNUNET_ATS_TEST_LogRequest ats_perf_cb);
451 490
452void 491void
453GNUNET_ATS_TEST_shutdown_topology (void); 492GNUNET_ATS_TEST_shutdown_topology (void);