aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_testbed_run.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-04-26 08:47:58 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-04-26 08:47:58 +0000
commita5e2b65182c5e73f723f2b49d07aabfbe54ad112 (patch)
treec04c725718c5940908990b275f0d6c2d54de75b3 /src/testbed/test_testbed_api_testbed_run.c
parent45b8f1cfb99e0f75139fb935763556c8dc39807b (diff)
downloadgnunet-a5e2b65182c5e73f723f2b49d07aabfbe54ad112.tar.gz
gnunet-a5e2b65182c5e73f723f2b49d07aabfbe54ad112.zip
- signal termination to peers when controller crashes
Diffstat (limited to 'src/testbed/test_testbed_api_testbed_run.c')
-rw-r--r--src/testbed/test_testbed_api_testbed_run.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/testbed/test_testbed_api_testbed_run.c b/src/testbed/test_testbed_api_testbed_run.c
index 293e77baf..5c69732a3 100644
--- a/src/testbed/test_testbed_api_testbed_run.c
+++ b/src/testbed/test_testbed_api_testbed_run.c
@@ -51,13 +51,18 @@ static GNUNET_SCHEDULER_TaskIdentifier abort_task;
51/** 51/**
52 * Current peer id 52 * Current peer id
53 */ 53 */
54unsigned int peer_id; 54static unsigned int peer_id;
55 55
56/** 56/**
57 * Testing result 57 * Testing result
58 */ 58 */
59static int result; 59static int result;
60 60
61/**
62 * Should we wait forever after testbed is initialized?
63 */
64static int wait_forever;
65
61 66
62/** 67/**
63 * Shutdown nicely 68 * Shutdown nicely
@@ -85,7 +90,7 @@ do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
85{ 90{
86 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n"); 91 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
87 abort_task = GNUNET_SCHEDULER_NO_TASK; 92 abort_task = GNUNET_SCHEDULER_NO_TASK;
88 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 93 (void) GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
89} 94}
90 95
91 96
@@ -107,6 +112,14 @@ test_master (void *cls, unsigned int num_peers,
107 unsigned int links_failed) 112 unsigned int links_failed)
108{ 113{
109 result = GNUNET_OK; 114 result = GNUNET_OK;
115 if (GNUNET_YES == wait_forever)
116 {
117 GNUNET_SCHEDULER_cancel (abort_task);
118 abort_task = GNUNET_SCHEDULER_NO_TASK;
119 (void) GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
120 &do_shutdown, NULL);
121 return;
122 }
110 GNUNET_assert (NULL != peers[0]); 123 GNUNET_assert (NULL != peers[0]);
111 op = GNUNET_TESTBED_peer_stop (NULL, peers[0], NULL, NULL); 124 op = GNUNET_TESTBED_peer_stop (NULL, peers[0], NULL, NULL);
112 GNUNET_assert (NULL != op); 125 GNUNET_assert (NULL != op);
@@ -206,7 +219,9 @@ main (int argc, char **argv)
206 GNUNET_break (0); /* Windows with no .exe? */ 219 GNUNET_break (0); /* Windows with no .exe? */
207 } 220 }
208#endif 221#endif
209 if (0 != strcmp ("run", testname)) 222 if (0 == strcmp ("waitforever", testname))
223 wait_forever = GNUNET_YES;
224 if ( (GNUNET_YES != wait_forever) && (0 != strcmp ("run", testname)) )
210 { 225 {
211 GNUNET_asprintf (&config_filename, "test_testbed_api_testbed_run_%s.conf", 226 GNUNET_asprintf (&config_filename, "test_testbed_api_testbed_run_%s.conf",
212 testname); 227 testname);