aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_controllerlink.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-08-24 15:46:24 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-08-24 15:46:24 +0000
commit6fda2ae5cf92ad26850c94bde6c7d5b7e2e96ce6 (patch)
tree0662adf4989f41b677201ddd4fe0fb94b12a29b9 /src/testbed/test_testbed_api_controllerlink.c
parent48a3c875e2f046e305494b9e78c3e395077469aa (diff)
downloadgnunet-6fda2ae5cf92ad26850c94bde6c7d5b7e2e96ce6.tar.gz
gnunet-6fda2ae5cf92ad26850c94bde6c7d5b7e2e96ce6.zip
peer destroy forwarding with tests
Diffstat (limited to 'src/testbed/test_testbed_api_controllerlink.c')
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c67
1 files changed, 49 insertions, 18 deletions
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c
index 5236ada4a..48ce2546e 100644
--- a/src/testbed/test_testbed_api_controllerlink.c
+++ b/src/testbed/test_testbed_api_controllerlink.c
@@ -83,7 +83,17 @@ enum Stage
83 SLAVE1_PEER_CREATE_SUCCESS, 83 SLAVE1_PEER_CREATE_SUCCESS,
84 84
85 /** 85 /**
86 * Test is successful 86 * Peer create on slave 2 successful
87 */
88 SLAVE2_PEER_CREATE_SUCCESS,
89
90 /**
91 * Peer destroy on slave 1 successful
92 */
93 SLAVE1_PEER_DESTROY_SUCCESS,
94
95 /**
96 * Peer destory on slave 2 successful; Marks test as successful
87 */ 97 */
88 SUCCESS 98 SUCCESS
89 }; 99 };
@@ -224,10 +234,11 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
224 case SLAVE1_PEER_CREATE_SUCCESS: 234 case SLAVE1_PEER_CREATE_SUCCESS:
225 GNUNET_assert (NULL != peer); 235 GNUNET_assert (NULL != peer);
226 GNUNET_assert (NULL == emsg); 236 GNUNET_assert (NULL == emsg);
227 result = SUCCESS; 237 result = SLAVE2_PEER_CREATE_SUCCESS;
228 slave2_peer = peer; 238 slave2_peer = peer;
229 GNUNET_TESTBED_operation_done (op); 239 GNUNET_TESTBED_operation_done (op);
230 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 240 op = GNUNET_TESTBED_peer_destroy (slave1_peer);
241 GNUNET_assert (NULL != op);
231 break; 242 break;
232 default: 243 default:
233 GNUNET_assert (0); 244 GNUNET_assert (0);
@@ -236,6 +247,26 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
236 247
237 248
238/** 249/**
250 * Checks the event if it is an operation finished event and if indicates a
251 * successfull completion of operation
252 *
253 * @param event the event information to check
254 */
255static void
256check_operation_success (const struct GNUNET_TESTBED_EventInformation *event)
257{
258 GNUNET_assert (NULL != event);
259 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
260 GNUNET_assert (event->details.operation_finished.operation == op);
261 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
262 GNUNET_assert (NULL == event->details.operation_finished.emsg);
263 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
264 event->details.operation_finished.pit);
265 GNUNET_assert (NULL == event->details.operation_finished.op_result.generic);
266}
267
268
269/**
239 * Signature of the event handler function called by the 270 * Signature of the event handler function called by the
240 * respective event controller. 271 * respective event controller.
241 * 272 *
@@ -248,14 +279,7 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
248 switch (result) 279 switch (result)
249 { 280 {
250 case SLAVE2_REGISTERED: 281 case SLAVE2_REGISTERED:
251 GNUNET_assert (NULL != event); 282 check_operation_success (event);
252 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
253 GNUNET_assert (event->details.operation_finished.operation == op);
254 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
255 GNUNET_assert (NULL == event->details.operation_finished.emsg);
256 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
257 event->details.operation_finished.pit);
258 GNUNET_assert (NULL == event->details.operation_finished.op_result.generic);
259 GNUNET_TESTBED_operation_done (op); 283 GNUNET_TESTBED_operation_done (op);
260 op = NULL; 284 op = NULL;
261 result = SLAVE1_LINK_SUCCESS; 285 result = SLAVE1_LINK_SUCCESS;
@@ -265,18 +289,25 @@ controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
265 GNUNET_assert (NULL != op); 289 GNUNET_assert (NULL != op);
266 break; 290 break;
267 case SLAVE1_LINK_SUCCESS: 291 case SLAVE1_LINK_SUCCESS:
268 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 292 check_operation_success (event);
269 GNUNET_assert (event->details.operation_finished.operation == op);
270 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
271 GNUNET_assert (NULL == event->details.operation_finished.emsg);
272 GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
273 event->details.operation_finished.pit);
274 GNUNET_assert (NULL == event->details.operation_finished.op_result.generic);
275 GNUNET_TESTBED_operation_done (op); 293 GNUNET_TESTBED_operation_done (op);
276 op = NULL; 294 op = NULL;
277 result = SLAVE2_LINK_SUCCESS; 295 result = SLAVE2_LINK_SUCCESS;
278 op = GNUNET_TESTBED_peer_create (mc, slave, cfg, peer_create_cb, NULL); 296 op = GNUNET_TESTBED_peer_create (mc, slave, cfg, peer_create_cb, NULL);
279 GNUNET_assert (NULL != op); 297 GNUNET_assert (NULL != op);
298 break;
299 case SLAVE2_PEER_CREATE_SUCCESS:
300 check_operation_success (event);
301 GNUNET_TESTBED_operation_done (op);
302 result = SLAVE1_PEER_DESTROY_SUCCESS;
303 op = GNUNET_TESTBED_peer_destroy (slave2_peer);
304 GNUNET_assert (NULL != slave2_peer);
305 break;
306 case SLAVE1_PEER_DESTROY_SUCCESS:
307 check_operation_success (event);
308 GNUNET_TESTBED_operation_done (op);
309 result = SUCCESS;
310 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
280 break; 311 break;
281 default: 312 default:
282 GNUNET_assert (0); 313 GNUNET_assert (0);