aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api_test.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-12-11 13:48:13 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-12-11 13:48:13 +0000
commit4ab00798bd41084fea7dd1361c5ebfe5771e315b (patch)
treef1faf214501b6c0b2b26aea8d1c2046f862dfa6a /src/testbed/testbed_api_test.c
parent19a850a8d8723fb70ce265304590d390f6782557 (diff)
downloadgnunet-4ab00798bd41084fea7dd1361c5ebfe5771e315b.tar.gz
gnunet-4ab00798bd41084fea7dd1361c5ebfe5771e315b.zip
fix 2689
Diffstat (limited to 'src/testbed/testbed_api_test.c')
-rw-r--r--src/testbed/testbed_api_test.c58
1 files changed, 3 insertions, 55 deletions
diff --git a/src/testbed/testbed_api_test.c b/src/testbed/testbed_api_test.c
index 0fa55fa36..9ac8cf4ea 100644
--- a/src/testbed/testbed_api_test.c
+++ b/src/testbed/testbed_api_test.c
@@ -62,59 +62,10 @@ struct TestRunContext
62 * Number of peers to start 62 * Number of peers to start
63 */ 63 */
64 unsigned int num_peers; 64 unsigned int num_peers;
65
66 /**
67 * counter for loading peers
68 */
69 unsigned int peer_cnt;
70
71 /**
72 * Followed by peers list
73 */
74 struct GNUNET_TESTBED_Peer *peers[0];
75}; 65};
76 66
77 67
78/** 68/**
79 * Controller event callback
80 *
81 * @param cls NULL
82 * @param event the controller event
83 */
84static void
85controller_event_cb (void *cls,
86 const struct GNUNET_TESTBED_EventInformation *event)
87{
88 struct TestRunContext *rc = cls;
89
90 if ((NULL != rc->cc) && (0 != (rc->event_mask & (1LL << event->type))))
91 rc->cc (rc->cc_cls, event);
92 if (rc->peer_cnt == rc->num_peers)
93 return;
94 GNUNET_assert (GNUNET_TESTBED_ET_PEER_START == event->type);
95 GNUNET_assert (NULL == rc->peers[rc->peer_cnt]);
96 GNUNET_assert (NULL != event->details.peer_start.peer);
97 rc->peers[rc->peer_cnt++] = event->details.peer_start.peer;
98}
99
100
101/**
102 * Task to be executed when peers are ready
103 *
104 * @param cls NULL
105 * @param tc the task context
106 */
107static void
108master_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
109{
110 struct TestRunContext *rc = cls;
111
112 GNUNET_assert (rc->peer_cnt == rc->num_peers);
113 rc->test_master (rc->test_master_cls, rc->num_peers, rc->peers);
114}
115
116
117/**
118 * Main run function. 69 * Main run function.
119 * 70 *
120 * @param cls NULL 71 * @param cls NULL
@@ -127,12 +78,9 @@ run (void *cls, char *const *args, const char *cfgfile,
127 const struct GNUNET_CONFIGURATION_Handle *config) 78 const struct GNUNET_CONFIGURATION_Handle *config)
128{ 79{
129 struct TestRunContext *rc = cls; 80 struct TestRunContext *rc = cls;
130 uint64_t event_mask; 81
131 82 GNUNET_TESTBED_run (NULL, config, rc->num_peers, rc->event_mask,
132 event_mask = rc->event_mask; 83 rc->cc, rc->cc_cls, rc->test_master, rc->test_master_cls);
133 event_mask |= (1LL << GNUNET_TESTBED_ET_PEER_START);
134 GNUNET_TESTBED_run (NULL, config, rc->num_peers, event_mask,
135 &controller_event_cb, rc, &master_task, rc);
136} 84}
137 85
138 86