aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-08-31 10:36:28 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-08-31 10:36:28 +0000
commita94a1861d123fe850d2ab5ae74cbb59b132a15ea (patch)
treea16d2518067d13f2463e83cd9dc66bdd6b733621 /src/testbed/test_testbed_api.c
parentd0c55c3ee57913977b1497ea0e6f20573820b206 (diff)
downloadgnunet-a94a1861d123fe850d2ab5ae74cbb59b132a15ea.tar.gz
gnunet-a94a1861d123fe850d2ab5ae74cbb59b132a15ea.zip
adhering to indentation standard
Diffstat (limited to 'src/testbed/test_testbed_api.c')
-rw-r--r--src/testbed/test_testbed_api.c117
1 files changed, 60 insertions, 57 deletions
diff --git a/src/testbed/test_testbed_api.c b/src/testbed/test_testbed_api.c
index 32f65542c..caa3d09fd 100644
--- a/src/testbed/test_testbed_api.c
+++ b/src/testbed/test_testbed_api.c
@@ -102,27 +102,27 @@ static int result;
102 * Enumeration of sub testcases 102 * Enumeration of sub testcases
103 */ 103 */
104enum Test 104enum Test
105 { 105{
106 /** 106 /**
107 * Test cases which are not covered by the below ones 107 * Test cases which are not covered by the below ones
108 */ 108 */
109 OTHER, 109 OTHER,
110 110
111 /** 111 /**
112 * Test where we get a peer config from controller 112 * Test where we get a peer config from controller
113 */ 113 */
114 PEER_GETCONFIG, 114 PEER_GETCONFIG,
115 115
116 /** 116 /**
117 * Test where we connect to a service running on the peer 117 * Test where we connect to a service running on the peer
118 */ 118 */
119 PEER_SERVICE_CONNECT, 119 PEER_SERVICE_CONNECT,
120 120
121 /** 121 /**
122 * Test where we get a peer's identity from controller 122 * Test where we get a peer's identity from controller
123 */ 123 */
124 PEER_DESTROY, 124 PEER_DESTROY,
125 }; 125};
126 126
127/** 127/**
128 * Testing status 128 * Testing status
@@ -170,7 +170,7 @@ do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
170/** 170/**
171 * Adapter function called to establish a connection to 171 * Adapter function called to establish a connection to
172 * a service. 172 * a service.
173 * 173 *
174 * @param cls closure 174 * @param cls closure
175 * @param cfg configuration of the peer to connect to; will be available until 175 * @param cfg configuration of the peer to connect to; will be available until
176 * GNUNET_TESTBED_operation_done() is called on the operation returned 176 * GNUNET_TESTBED_operation_done() is called on the operation returned
@@ -178,8 +178,7 @@ do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
178 * @return service handle to return in 'op_result', NULL on error 178 * @return service handle to return in 'op_result', NULL on error
179 */ 179 */
180static void * 180static void *
181dht_connect_adapter (void *cls, 181dht_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
182 const struct GNUNET_CONFIGURATION_Handle *cfg)
183{ 182{
184 GNUNET_assert (NULL == cls); 183 GNUNET_assert (NULL == cls);
185 GNUNET_assert (OTHER == sub_test); 184 GNUNET_assert (OTHER == sub_test);
@@ -192,13 +191,12 @@ dht_connect_adapter (void *cls,
192/** 191/**
193 * Adapter function called to destroy a connection to 192 * Adapter function called to destroy a connection to
194 * a service. 193 * a service.
195 * 194 *
196 * @param cls closure 195 * @param cls closure
197 * @param op_result service handle returned from the connect adapter 196 * @param op_result service handle returned from the connect adapter
198 */ 197 */
199static void 198static void
200dht_disconnect_adapter (void *cls, 199dht_disconnect_adapter (void *cls, void *op_result)
201 void *op_result)
202{ 200{
203 if (NULL != op_result) 201 if (NULL != op_result)
204 GNUNET_DHT_disconnect (op_result); 202 GNUNET_DHT_disconnect (op_result);
@@ -217,20 +215,20 @@ dht_disconnect_adapter (void *cls,
217 * @param cls closure 215 * @param cls closure
218 * @param event information about the event 216 * @param event information about the event
219 */ 217 */
220static void 218static void
221controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event) 219controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
222{ 220{
223 switch (event->type) 221 switch (event->type)
224 { 222 {
225 case GNUNET_TESTBED_ET_OPERATION_FINISHED: 223 case GNUNET_TESTBED_ET_OPERATION_FINISHED:
226 switch(sub_test) 224 switch (sub_test)
227 { 225 {
228 case PEER_GETCONFIG: 226 case PEER_GETCONFIG:
229 GNUNET_assert (event->details.operation_finished.operation == operation); 227 GNUNET_assert (event->details.operation_finished.operation == operation);
230 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 228 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
231 GNUNET_assert (NULL == event->details.operation_finished.emsg); 229 GNUNET_assert (NULL == event->details.operation_finished.emsg);
232 GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == 230 GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION ==
233 event->details.operation_finished.pit); 231 event->details.operation_finished.pit);
234 GNUNET_assert (NULL != event->details.operation_finished.op_result.cfg); 232 GNUNET_assert (NULL != event->details.operation_finished.op_result.cfg);
235 sub_test = PEER_DESTROY; 233 sub_test = PEER_DESTROY;
236 GNUNET_TESTBED_operation_done (operation); 234 GNUNET_TESTBED_operation_done (operation);
@@ -241,9 +239,9 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
241 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 239 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
242 GNUNET_assert (NULL == event->details.operation_finished.emsg); 240 GNUNET_assert (NULL == event->details.operation_finished.emsg);
243 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC == 241 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
244 event->details.operation_finished.pit); 242 event->details.operation_finished.pit);
245 GNUNET_assert (NULL == 243 GNUNET_assert (NULL ==
246 event->details.operation_finished.op_result.generic); 244 event->details.operation_finished.op_result.generic);
247 GNUNET_TESTBED_operation_done (operation); 245 GNUNET_TESTBED_operation_done (operation);
248 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 246 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
249 break; 247 break;
@@ -252,27 +250,26 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
252 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 250 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
253 GNUNET_assert (NULL == event->details.operation_finished.emsg); 251 GNUNET_assert (NULL == event->details.operation_finished.emsg);
254 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC == 252 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
255 event->details.operation_finished.pit); 253 event->details.operation_finished.pit);
256 GNUNET_assert (NULL != dht_handle); 254 GNUNET_assert (NULL != dht_handle);
257 GNUNET_assert (event->details.operation_finished.op_result.generic 255 GNUNET_assert (event->details.operation_finished.op_result.generic ==
258 == dht_handle); 256 dht_handle);
259 GNUNET_TESTBED_operation_done (operation); /* This results in call to 257 GNUNET_TESTBED_operation_done (operation); /* This results in call to
260 * disconnect adapter */ 258 * disconnect adapter */
261 break; 259 break;
262 case OTHER: 260 case OTHER:
263 GNUNET_assert (0); 261 GNUNET_assert (0);
264 break; 262 break;
265 } 263 }
266 break; 264 break;
267 case GNUNET_TESTBED_ET_PEER_START: 265 case GNUNET_TESTBED_ET_PEER_START:
268 GNUNET_assert (event->details.peer_start.host == host); 266 GNUNET_assert (event->details.peer_start.host == host);
269 GNUNET_assert (event->details.peer_start.peer == peer); 267 GNUNET_assert (event->details.peer_start.peer == peer);
270 GNUNET_assert (OTHER == sub_test); 268 GNUNET_assert (OTHER == sub_test);
271 GNUNET_TESTBED_operation_done (operation); 269 GNUNET_TESTBED_operation_done (operation);
272 operation = GNUNET_TESTBED_service_connect (NULL, peer, "dht", 270 operation =
273 &dht_connect_adapter, 271 GNUNET_TESTBED_service_connect (NULL, peer, "dht", &dht_connect_adapter,
274 &dht_disconnect_adapter, 272 &dht_disconnect_adapter, NULL);
275 NULL);
276 GNUNET_assert (NULL != operation); 273 GNUNET_assert (NULL != operation);
277 break; 274 break;
278 case GNUNET_TESTBED_ET_PEER_STOP: 275 case GNUNET_TESTBED_ET_PEER_STOP:
@@ -281,12 +278,12 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
281 result = GNUNET_YES; 278 result = GNUNET_YES;
282 sub_test = PEER_GETCONFIG; 279 sub_test = PEER_GETCONFIG;
283 GNUNET_TESTBED_operation_done (operation); 280 GNUNET_TESTBED_operation_done (operation);
284 operation = 281 operation =
285 GNUNET_TESTBED_peer_get_information (peer, 282 GNUNET_TESTBED_peer_get_information (peer,
286 GNUNET_TESTBED_PIT_CONFIGURATION); 283 GNUNET_TESTBED_PIT_CONFIGURATION);
287 break; 284 break;
288 default: 285 default:
289 GNUNET_assert (0); /* We should never reach this state */ 286 GNUNET_assert (0); /* We should never reach this state */
290 } 287 }
291} 288}
292 289
@@ -301,11 +298,10 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
301 * @param emsg NULL if peer is not NULL; else MAY contain the error description 298 * @param emsg NULL if peer is not NULL; else MAY contain the error description
302 */ 299 */
303static void 300static void
304peer_create_cb (void *cls, 301peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
305 struct GNUNET_TESTBED_Peer *peer, const char *emsg)
306{ 302{
307 struct GNUNET_TESTBED_Peer **peer_ptr; 303 struct GNUNET_TESTBED_Peer **peer_ptr;
308 304
309 peer_ptr = cls; 305 peer_ptr = cls;
310 GNUNET_assert (NULL != peer); 306 GNUNET_assert (NULL != peer);
311 GNUNET_assert (NULL != peer_ptr); 307 GNUNET_assert (NULL != peer_ptr);
@@ -322,12 +318,14 @@ peer_create_cb (void *cls,
322 * @param cls the host which has been registered 318 * @param cls the host which has been registered
323 * @param emsg the error message; NULL if host registration is successful 319 * @param emsg the error message; NULL if host registration is successful
324 */ 320 */
325static void 321static void
326registration_comp (void *cls, const char *emsg) 322registration_comp (void *cls, const char *emsg)
327{ 323{
328 GNUNET_assert (cls == neighbour); 324 GNUNET_assert (cls == neighbour);
329 reg_handle = NULL; 325 reg_handle = NULL;
330 operation = GNUNET_TESTBED_peer_create (controller, host, cfg, &peer_create_cb, &peer); 326 operation =
327 GNUNET_TESTBED_peer_create (controller, host, cfg, &peer_create_cb,
328 &peer);
331 GNUNET_assert (NULL != operation); 329 GNUNET_assert (NULL != operation);
332} 330}
333 331
@@ -341,9 +339,8 @@ registration_comp (void *cls, const char *emsg)
341 * @param status GNUNET_OK if the startup is successfull; GNUNET_SYSERR if not, 339 * @param status GNUNET_OK if the startup is successfull; GNUNET_SYSERR if not,
342 * GNUNET_TESTBED_controller_stop() shouldn't be called in this case 340 * GNUNET_TESTBED_controller_stop() shouldn't be called in this case
343 */ 341 */
344static void 342static void
345status_cb (void *cls, 343status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, int status)
346 const struct GNUNET_CONFIGURATION_Handle *cfg, int status)
347{ 344{
348 uint64_t event_mask; 345 uint64_t event_mask;
349 346
@@ -353,21 +350,22 @@ status_cb (void *cls,
353 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP); 350 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP);
354 event_mask |= (1L << GNUNET_TESTBED_ET_CONNECT); 351 event_mask |= (1L << GNUNET_TESTBED_ET_CONNECT);
355 event_mask |= (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED); 352 event_mask |= (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED);
356 controller = GNUNET_TESTBED_controller_connect (cfg, host, event_mask, 353 controller =
357 &controller_cb, NULL); 354 GNUNET_TESTBED_controller_connect (cfg, host, event_mask, &controller_cb,
355 NULL);
358 GNUNET_assert (NULL != controller); 356 GNUNET_assert (NULL != controller);
359 neighbour = GNUNET_TESTBED_host_create ("localhost", NULL, 0); 357 neighbour = GNUNET_TESTBED_host_create ("localhost", NULL, 0);
360 GNUNET_assert (NULL != neighbour); 358 GNUNET_assert (NULL != neighbour);
361 reg_handle = 359 reg_handle =
362 GNUNET_TESTBED_register_host (controller, neighbour, &registration_comp, 360 GNUNET_TESTBED_register_host (controller, neighbour, &registration_comp,
363 neighbour); 361 neighbour);
364 GNUNET_assert (NULL != reg_handle); 362 GNUNET_assert (NULL != reg_handle);
365} 363}
366 364
367 365
368 366
369/** 367/**
370 * Main run function. 368 * Main run function.
371 * 369 *
372 * @param cls NULL 370 * @param cls NULL
373 * @param args arguments passed to GNUNET_PROGRAM_run 371 * @param args arguments passed to GNUNET_PROGRAM_run
@@ -381,30 +379,35 @@ run (void *cls, char *const *args, const char *cfgfile,
381 host = GNUNET_TESTBED_host_create (NULL, NULL, 0); 379 host = GNUNET_TESTBED_host_create (NULL, NULL, 0);
382 GNUNET_assert (NULL != host); 380 GNUNET_assert (NULL != host);
383 cfg = GNUNET_CONFIGURATION_dup (config); 381 cfg = GNUNET_CONFIGURATION_dup (config);
384 cp = GNUNET_TESTBED_controller_start ("127.0.0.1", host, cfg, status_cb, NULL); 382 cp = GNUNET_TESTBED_controller_start ("127.0.0.1", host, cfg, status_cb,
385 abort_task = GNUNET_SCHEDULER_add_delayed 383 NULL);
386 (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5), &do_abort, NULL); 384 abort_task =
385 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
386 (GNUNET_TIME_UNIT_MINUTES, 5), &do_abort,
387 NULL);
387} 388}
388 389
389 390
390/** 391/**
391 * Main function 392 * Main function
392 */ 393 */
393int main (int argc, char **argv) 394int
395main (int argc, char **argv)
394{ 396{
395 int ret; 397 int ret;
398
396 char *const argv2[] = { "test_testbed_api", 399 char *const argv2[] = { "test_testbed_api",
397 "-c", "test_testbed_api.conf", 400 "-c", "test_testbed_api.conf",
398 NULL 401 NULL
399 }; 402 };
400 struct GNUNET_GETOPT_CommandLineOption options[] = { 403 struct GNUNET_GETOPT_CommandLineOption options[] = {
401 GNUNET_GETOPT_OPTION_END 404 GNUNET_GETOPT_OPTION_END
402 }; 405 };
403 406
404 result = GNUNET_SYSERR; 407 result = GNUNET_SYSERR;
405 ret = GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2, 408 ret =
406 "test_testbed_api", "nohelp", options, &run, 409 GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
407 NULL); 410 "test_testbed_api", "nohelp", options, &run, NULL);
408 if ((GNUNET_OK != ret) || (GNUNET_OK != result)) 411 if ((GNUNET_OK != ret) || (GNUNET_OK != result))
409 return 1; 412 return 1;
410 return 0; 413 return 0;