diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-04-26 08:47:58 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-04-26 08:47:58 +0000 |
commit | a5e2b65182c5e73f723f2b49d07aabfbe54ad112 (patch) | |
tree | c04c725718c5940908990b275f0d6c2d54de75b3 /src/testbed/test_testbed_api_testbed_run.c | |
parent | 45b8f1cfb99e0f75139fb935763556c8dc39807b (diff) | |
download | gnunet-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.c | 21 |
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 | */ |
54 | unsigned int peer_id; | 54 | static unsigned int peer_id; |
55 | 55 | ||
56 | /** | 56 | /** |
57 | * Testing result | 57 | * Testing result |
58 | */ | 58 | */ |
59 | static int result; | 59 | static int result; |
60 | 60 | ||
61 | /** | ||
62 | * Should we wait forever after testbed is initialized? | ||
63 | */ | ||
64 | static 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); |