diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-12-11 13:48:13 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-12-11 13:48:13 +0000 |
commit | 4ab00798bd41084fea7dd1361c5ebfe5771e315b (patch) | |
tree | f1faf214501b6c0b2b26aea8d1c2046f862dfa6a /src/testbed/testbed_api_test.c | |
parent | 19a850a8d8723fb70ce265304590d390f6782557 (diff) | |
download | gnunet-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.c | 58 |
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 | */ | ||
84 | static void | ||
85 | controller_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 | */ | ||
107 | static void | ||
108 | master_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 | ||