aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-02-15 10:36:49 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-02-15 10:36:49 +0000
commit483b0fe362a11e531f36600101b29e7983960c3b (patch)
treea537cd91640506cd8349f5c3facb3ff94dcec82a
parent5129b1844b72310d697e363bef7aa3cc67de0489 (diff)
downloadgnunet-483b0fe362a11e531f36600101b29e7983960c3b.tar.gz
gnunet-483b0fe362a11e531f36600101b29e7983960c3b.zip
- fix crashing testcases
-rw-r--r--src/testbed/test_testbed_api.c122
-rw-r--r--src/testbed/test_testbed_api_2peers_1controller.c2
-rw-r--r--src/testbed/testbed_api_hosts.c2
3 files changed, 76 insertions, 50 deletions
diff --git a/src/testbed/test_testbed_api.c b/src/testbed/test_testbed_api.c
index c5c448669..fabe956ca 100644
--- a/src/testbed/test_testbed_api.c
+++ b/src/testbed/test_testbed_api.c
@@ -143,16 +143,35 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
143 GNUNET_SCHEDULER_cancel (abort_task); 143 GNUNET_SCHEDULER_cancel (abort_task);
144 if (NULL != reg_handle) 144 if (NULL != reg_handle)
145 GNUNET_TESTBED_cancel_registration (reg_handle); 145 GNUNET_TESTBED_cancel_registration (reg_handle);
146 GNUNET_TESTBED_controller_disconnect (controller); 146 if (NULL != controller)
147 GNUNET_CONFIGURATION_destroy (cfg); 147 GNUNET_TESTBED_controller_disconnect (controller);
148 if (NULL != cfg)
149 GNUNET_CONFIGURATION_destroy (cfg);
148 if (NULL != cp) 150 if (NULL != cp)
149 GNUNET_TESTBED_controller_stop (cp); 151 GNUNET_TESTBED_controller_stop (cp);
150 GNUNET_TESTBED_host_destroy (neighbour); 152 if (NULL != neighbour)
153 GNUNET_TESTBED_host_destroy (neighbour);
154 if (NULL != host)
151 GNUNET_TESTBED_host_destroy (host); 155 GNUNET_TESTBED_host_destroy (host);
152} 156}
153 157
154 158
155/** 159/**
160 * shortcut to exit during failure
161 */
162#define FAIL_TEST(cond, ret) do { \
163 if (!(cond)) { \
164 GNUNET_break(0); \
165 if (GNUNET_SCHEDULER_NO_TASK != abort_task) \
166 GNUNET_SCHEDULER_cancel (abort_task); \
167 abort_task = GNUNET_SCHEDULER_NO_TASK; \
168 GNUNET_SCHEDULER_add_now (do_shutdown, NULL); \
169 ret; \
170 } \
171 } while (0)
172
173
174/**
156 * abort task to run on test timed out 175 * abort task to run on test timed out
157 * 176 *
158 * @param cls NULL 177 * @param cls NULL
@@ -180,8 +199,8 @@ do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
180static void * 199static void *
181dht_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg) 200dht_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
182{ 201{
183 GNUNET_assert (NULL == cls); 202 FAIL_TEST (NULL == cls, return NULL);
184 GNUNET_assert (OTHER == sub_test); 203 FAIL_TEST (OTHER == sub_test, return NULL);
185 sub_test = PEER_SERVICE_CONNECT; 204 sub_test = PEER_SERVICE_CONNECT;
186 dht_handle = GNUNET_DHT_connect (cfg, 10); 205 dht_handle = GNUNET_DHT_connect (cfg, 10);
187 return dht_handle; 206 return dht_handle;
@@ -198,14 +217,14 @@ dht_connect_adapter (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
198static void 217static void
199dht_disconnect_adapter (void *cls, void *op_result) 218dht_disconnect_adapter (void *cls, void *op_result)
200{ 219{
201 GNUNET_assert (NULL != op_result); 220 FAIL_TEST (NULL != op_result, return);
202 GNUNET_assert (op_result == dht_handle); 221 FAIL_TEST (op_result == dht_handle, return);
203 GNUNET_DHT_disconnect (dht_handle); 222 GNUNET_DHT_disconnect (dht_handle);
204 dht_handle = NULL; 223 dht_handle = NULL;
205 GNUNET_assert (PEER_SERVICE_CONNECT == sub_test); 224 FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return);
206 GNUNET_assert (NULL != operation); 225 FAIL_TEST (NULL != operation, return);
207 operation = GNUNET_TESTBED_peer_stop (peer, NULL, NULL); 226 operation = GNUNET_TESTBED_peer_stop (peer, NULL, NULL);
208 GNUNET_assert (NULL != operation); 227 FAIL_TEST (NULL != operation, return);
209} 228}
210 229
211 230
@@ -225,15 +244,15 @@ service_connect_comp_cb (void *cls, struct GNUNET_TESTBED_Operation *op,
225 switch (sub_test) 244 switch (sub_test)
226 { 245 {
227 case PEER_SERVICE_CONNECT: 246 case PEER_SERVICE_CONNECT:
228 GNUNET_assert (operation == op); 247 FAIL_TEST (operation == op, return);
229 GNUNET_assert (NULL == emsg); 248 FAIL_TEST (NULL == emsg, return);
230 GNUNET_assert (NULL == cls); 249 FAIL_TEST (NULL == cls, return);
231 GNUNET_assert (ca_result == dht_handle); 250 FAIL_TEST (ca_result == dht_handle, return);
232 GNUNET_TESTBED_operation_done (operation); /* This results in call to 251 GNUNET_TESTBED_operation_done (operation); /* This results in call to
233 * disconnect adapter */ 252 * disconnect adapter */
234 break; 253 break;
235 default: 254 default:
236 GNUNET_assert (0); 255 FAIL_TEST (0, return);
237 } 256 }
238} 257}
239 258
@@ -256,18 +275,18 @@ peerinfo_cb (void *cb_cls, struct GNUNET_TESTBED_Operation *op,
256 switch (sub_test) 275 switch (sub_test)
257 { 276 {
258 case PEER_GETCONFIG: 277 case PEER_GETCONFIG:
259 GNUNET_assert (NULL != pinfo); 278 FAIL_TEST (NULL != pinfo, return);
260 GNUNET_assert (NULL == emsg); 279 FAIL_TEST (NULL == emsg, return);
261 GNUNET_assert (NULL == cb_cls); 280 FAIL_TEST (NULL == cb_cls, return);
262 GNUNET_assert (operation == op); 281 FAIL_TEST (operation == op, return);
263 GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit); 282 FAIL_TEST (GNUNET_TESTBED_PIT_CONFIGURATION == pinfo->pit, return);
264 GNUNET_assert (NULL != pinfo->result.cfg); 283 FAIL_TEST (NULL != pinfo->result.cfg, return);
265 sub_test = PEER_DESTROY; 284 sub_test = PEER_DESTROY;
266 GNUNET_TESTBED_operation_done (operation); 285 GNUNET_TESTBED_operation_done (operation);
267 operation = GNUNET_TESTBED_peer_destroy (peer); 286 operation = GNUNET_TESTBED_peer_destroy (peer);
268 break; 287 break;
269 default: 288 default:
270 GNUNET_assert (0); 289 FAIL_TEST (0, return);
271 } 290 }
272} 291}
273 292
@@ -288,40 +307,40 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
288 switch (sub_test) 307 switch (sub_test)
289 { 308 {
290 case PEER_DESTROY: 309 case PEER_DESTROY:
291 GNUNET_assert (event->details.operation_finished.operation == operation); 310 FAIL_TEST (event->details.operation_finished.operation == operation, return);
292 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 311 FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
293 GNUNET_assert (NULL == event->details.operation_finished.emsg); 312 FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
294 GNUNET_assert (NULL == event->details.operation_finished.generic); 313 FAIL_TEST (NULL == event->details.operation_finished.generic, return);
295 GNUNET_TESTBED_operation_done (operation); 314 GNUNET_TESTBED_operation_done (operation);
296 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 315 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
297 break; 316 break;
298 case PEER_SERVICE_CONNECT: 317 case PEER_SERVICE_CONNECT:
299 GNUNET_assert (event->details.operation_finished.operation == operation); 318 FAIL_TEST (event->details.operation_finished.operation == operation, return);
300 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 319 FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
301 GNUNET_assert (NULL == event->details.operation_finished.emsg); 320 FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
302 GNUNET_assert (NULL != dht_handle); 321 FAIL_TEST (NULL != dht_handle, return);
303 GNUNET_assert (event->details.operation_finished.generic == dht_handle); 322 FAIL_TEST (event->details.operation_finished.generic == dht_handle, return);
304 break; 323 break;
305 default: 324 default:
306 GNUNET_assert (0); 325 FAIL_TEST (0, return);
307 break; 326 break;
308 } 327 }
309 break; 328 break;
310 case GNUNET_TESTBED_ET_PEER_START: 329 case GNUNET_TESTBED_ET_PEER_START:
311 GNUNET_assert (event->details.peer_start.host == host); 330 FAIL_TEST (event->details.peer_start.host == host, return);
312 GNUNET_assert (event->details.peer_start.peer == peer); 331 FAIL_TEST (event->details.peer_start.peer == peer, return);
313 GNUNET_assert (OTHER == sub_test); 332 FAIL_TEST (OTHER == sub_test, return);
314 GNUNET_TESTBED_operation_done (operation); 333 GNUNET_TESTBED_operation_done (operation);
315 operation = 334 operation =
316 GNUNET_TESTBED_service_connect (NULL, peer, "dht", 335 GNUNET_TESTBED_service_connect (NULL, peer, "dht",
317 &service_connect_comp_cb, NULL, 336 &service_connect_comp_cb, NULL,
318 &dht_connect_adapter, 337 &dht_connect_adapter,
319 &dht_disconnect_adapter, NULL); 338 &dht_disconnect_adapter, NULL);
320 GNUNET_assert (NULL != operation); 339 FAIL_TEST (NULL != operation, return);
321 break; 340 break;
322 case GNUNET_TESTBED_ET_PEER_STOP: 341 case GNUNET_TESTBED_ET_PEER_STOP:
323 GNUNET_assert (event->details.peer_stop.peer == peer); 342 FAIL_TEST (event->details.peer_stop.peer == peer, return);
324 GNUNET_assert (PEER_SERVICE_CONNECT == sub_test); 343 FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return);
325 result = GNUNET_YES; 344 result = GNUNET_YES;
326 sub_test = PEER_GETCONFIG; 345 sub_test = PEER_GETCONFIG;
327 GNUNET_TESTBED_operation_done (operation); 346 GNUNET_TESTBED_operation_done (operation);
@@ -331,7 +350,7 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
331 &peerinfo_cb, NULL); 350 &peerinfo_cb, NULL);
332 break; 351 break;
333 default: 352 default:
334 GNUNET_assert (0); /* We should never reach this state */ 353 FAIL_TEST (0, return); /* We should never reach this state */
335 } 354 }
336} 355}
337 356
@@ -351,12 +370,12 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
351 struct GNUNET_TESTBED_Peer **peer_ptr; 370 struct GNUNET_TESTBED_Peer **peer_ptr;
352 371
353 peer_ptr = cls; 372 peer_ptr = cls;
354 GNUNET_assert (NULL != peer); 373 FAIL_TEST (NULL != peer, return);
355 GNUNET_assert (NULL != peer_ptr); 374 FAIL_TEST (NULL != peer_ptr, return);
356 *peer_ptr = peer; 375 *peer_ptr = peer;
357 GNUNET_TESTBED_operation_done (operation); 376 GNUNET_TESTBED_operation_done (operation);
358 operation = GNUNET_TESTBED_peer_start (NULL, peer, NULL, NULL); 377 operation = GNUNET_TESTBED_peer_start (NULL, peer, NULL, NULL);
359 GNUNET_assert (NULL != operation); 378 FAIL_TEST (NULL != operation, return);
360} 379}
361 380
362 381
@@ -369,12 +388,12 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
369static void 388static void
370registration_comp (void *cls, const char *emsg) 389registration_comp (void *cls, const char *emsg)
371{ 390{
372 GNUNET_assert (cls == neighbour); 391 FAIL_TEST (cls == neighbour, return);
373 reg_handle = NULL; 392 reg_handle = NULL;
374 operation = 393 operation =
375 GNUNET_TESTBED_peer_create (controller, host, cfg, &peer_create_cb, 394 GNUNET_TESTBED_peer_create (controller, host, cfg, &peer_create_cb,
376 &peer); 395 &peer);
377 GNUNET_assert (NULL != operation); 396 FAIL_TEST (NULL != operation, return);
378} 397}
379 398
380 399
@@ -392,7 +411,12 @@ status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, int status)
392{ 411{
393 uint64_t event_mask; 412 uint64_t event_mask;
394 413
395 GNUNET_assert (GNUNET_OK == status); 414 if (GNUNET_OK != status)
415 {
416 cp = NULL;
417 FAIL_TEST (0, return);
418 return;
419 }
396 event_mask = 0; 420 event_mask = 0;
397 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_START); 421 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_START);
398 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP); 422 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP);
@@ -401,13 +425,13 @@ status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, int status)
401 controller = 425 controller =
402 GNUNET_TESTBED_controller_connect (cfg, host, event_mask, &controller_cb, 426 GNUNET_TESTBED_controller_connect (cfg, host, event_mask, &controller_cb,
403 NULL); 427 NULL);
404 GNUNET_assert (NULL != controller); 428 FAIL_TEST (NULL != controller, return);
405 neighbour = GNUNET_TESTBED_host_create ("localhost", NULL, 0); 429 neighbour = GNUNET_TESTBED_host_create ("localhost", NULL, 0);
406 GNUNET_assert (NULL != neighbour); 430 FAIL_TEST (NULL != neighbour, return);
407 reg_handle = 431 reg_handle =
408 GNUNET_TESTBED_register_host (controller, neighbour, &registration_comp, 432 GNUNET_TESTBED_register_host (controller, neighbour, &registration_comp,
409 neighbour); 433 neighbour);
410 GNUNET_assert (NULL != reg_handle); 434 FAIL_TEST (NULL != reg_handle, return);
411} 435}
412 436
413 437
@@ -425,7 +449,7 @@ run (void *cls, char *const *args, const char *cfgfile,
425 const struct GNUNET_CONFIGURATION_Handle *config) 449 const struct GNUNET_CONFIGURATION_Handle *config)
426{ 450{
427 host = GNUNET_TESTBED_host_create (NULL, NULL, 0); 451 host = GNUNET_TESTBED_host_create (NULL, NULL, 0);
428 GNUNET_assert (NULL != host); 452 FAIL_TEST (NULL != host, return);
429 cfg = GNUNET_CONFIGURATION_dup (config); 453 cfg = GNUNET_CONFIGURATION_dup (config);
430 cp = GNUNET_TESTBED_controller_start ("127.0.0.1", host, cfg, status_cb, 454 cp = GNUNET_TESTBED_controller_start ("127.0.0.1", host, cfg, status_cb,
431 NULL); 455 NULL);
diff --git a/src/testbed/test_testbed_api_2peers_1controller.c b/src/testbed/test_testbed_api_2peers_1controller.c
index d5616c233..3b033cfac 100644
--- a/src/testbed/test_testbed_api_2peers_1controller.c
+++ b/src/testbed/test_testbed_api_2peers_1controller.c
@@ -166,6 +166,7 @@ enum Stage
166 */ 166 */
167static enum Stage result; 167static enum Stage result;
168 168
169
169/** 170/**
170 * shortcut to exit during failure 171 * shortcut to exit during failure
171 */ 172 */
@@ -180,6 +181,7 @@ static enum Stage result;
180 } \ 181 } \
181 } while (0) 182 } while (0)
182 183
184
183/** 185/**
184 * Shutdown nicely 186 * Shutdown nicely
185 * 187 *
diff --git a/src/testbed/testbed_api_hosts.c b/src/testbed/testbed_api_hosts.c
index 3f305d2a0..9eef0f0cc 100644
--- a/src/testbed/testbed_api_hosts.c
+++ b/src/testbed/testbed_api_hosts.c
@@ -733,7 +733,7 @@ GNUNET_TESTBED_set_num_parallel_overlay_connects_ (struct
733 GNUNET_TESTBED_Host *h, 733 GNUNET_TESTBED_Host *h,
734 unsigned int npoc) 734 unsigned int npoc)
735{ 735{
736 fprintf (stderr, "%d", npoc); 736 //fprintf (stderr, "%d", npoc);
737 GNUNET_free_non_null (h->tslots); 737 GNUNET_free_non_null (h->tslots);
738 h->tslots_filled = 0; 738 h->tslots_filled = 0;
739 h->num_parallel_connects = npoc; 739 h->num_parallel_connects = npoc;