diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2016-10-27 13:00:37 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2016-10-27 13:00:37 +0000 |
commit | 251c9287514c0e3a2cf6a3f6f978a27a49e65085 (patch) | |
tree | 0516668b8721fe2f320d3f2afcd014239ac6fe2b /src/testbed/test_testbed_api_barriers.c | |
parent | 7c5d2c6f7da4a48cbb997791d1dc514c842097a9 (diff) | |
download | gnunet-251c9287514c0e3a2cf6a3f6f978a27a49e65085.tar.gz gnunet-251c9287514c0e3a2cf6a3f6f978a27a49e65085.zip |
Fix #4718: Do not echo BARRIER_STATUS messages back to the main controller/test driverAlso add a few FIXMEs to be fixed and fix testcase logic to accommodate new scheduler shutdown semantics
Diffstat (limited to 'src/testbed/test_testbed_api_barriers.c')
-rw-r--r-- | src/testbed/test_testbed_api_barriers.c | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/testbed/test_testbed_api_barriers.c b/src/testbed/test_testbed_api_barriers.c index 01c745a75..e712e2d5a 100644 --- a/src/testbed/test_testbed_api_barriers.c +++ b/src/testbed/test_testbed_api_barriers.c | |||
@@ -50,7 +50,7 @@ struct GNUNET_TESTBED_Barrier *barrier; | |||
50 | /** | 50 | /** |
51 | * Identifier for the shutdown task | 51 | * Identifier for the shutdown task |
52 | */ | 52 | */ |
53 | static struct GNUNET_SCHEDULER_Task *shutdown_task; | 53 | static struct GNUNET_SCHEDULER_Task *timeout_task; |
54 | 54 | ||
55 | /** | 55 | /** |
56 | * Result of this test case | 56 | * Result of this test case |
@@ -59,20 +59,30 @@ static int result; | |||
59 | 59 | ||
60 | 60 | ||
61 | /** | 61 | /** |
62 | * Shutdown this test case when it takes too long | 62 | * Handle SIGINT and SIGTERM |
63 | * | ||
64 | * @param cls NULL | ||
65 | */ | 63 | */ |
66 | static void | 64 | static void |
67 | do_shutdown (void *cls) | 65 | shutdown_handler(void *cls) |
68 | { | 66 | { |
69 | shutdown_task = NULL; | 67 | if (NULL != timeout_task) |
70 | if (NULL != barrier) | ||
71 | { | 68 | { |
72 | GNUNET_TESTBED_barrier_cancel (barrier); | 69 | GNUNET_SCHEDULER_cancel(timeout_task); |
73 | barrier = NULL; | 70 | timeout_task = NULL; |
74 | } | 71 | } |
72 | } | ||
75 | 73 | ||
74 | |||
75 | /** | ||
76 | * Shutdown this test case when it takes too long | ||
77 | * | ||
78 | * @param cls NULL | ||
79 | */ | ||
80 | static void | ||
81 | do_timeout (void *cls) | ||
82 | { | ||
83 | timeout_task = NULL; | ||
84 | if (barrier != NULL) | ||
85 | GNUNET_TESTBED_barrier_cancel (barrier); | ||
76 | GNUNET_SCHEDULER_shutdown (); | 86 | GNUNET_SCHEDULER_shutdown (); |
77 | } | 87 | } |
78 | 88 | ||
@@ -112,20 +122,19 @@ barrier_cb (void *cls, | |||
112 | LOG (GNUNET_ERROR_TYPE_ERROR, | 122 | LOG (GNUNET_ERROR_TYPE_ERROR, |
113 | "Barrier initialisation failed: %s", | 123 | "Barrier initialisation failed: %s", |
114 | (NULL == emsg) ? "unknown reason" : emsg); | 124 | (NULL == emsg) ? "unknown reason" : emsg); |
115 | barrier = NULL; | 125 | break; |
116 | GNUNET_SCHEDULER_shutdown (); | ||
117 | return; | ||
118 | case GNUNET_TESTBED_BARRIERSTATUS_CROSSED: | 126 | case GNUNET_TESTBED_BARRIERSTATUS_CROSSED: |
119 | LOG (GNUNET_ERROR_TYPE_INFO, | 127 | LOG (GNUNET_ERROR_TYPE_INFO, |
120 | "Barrier crossed\n"); | 128 | "Barrier crossed\n"); |
121 | if (old_status == GNUNET_TESTBED_BARRIERSTATUS_INITIALISED) | 129 | if (old_status == GNUNET_TESTBED_BARRIERSTATUS_INITIALISED) |
122 | result = GNUNET_OK; | 130 | result = GNUNET_OK; |
123 | barrier = NULL; | 131 | break; |
124 | GNUNET_SCHEDULER_shutdown (); | ||
125 | return; | ||
126 | default: | 132 | default: |
127 | GNUNET_assert (0); | 133 | GNUNET_assert (0); |
134 | return; | ||
128 | } | 135 | } |
136 | barrier = NULL; | ||
137 | GNUNET_SCHEDULER_shutdown (); | ||
129 | } | 138 | } |
130 | 139 | ||
131 | 140 | ||
@@ -165,11 +174,12 @@ test_master (void *cls, | |||
165 | 100, | 174 | 100, |
166 | &barrier_cb, | 175 | &barrier_cb, |
167 | NULL); | 176 | NULL); |
168 | shutdown_task = | 177 | timeout_task = |
169 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 178 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
170 | (GNUNET_TIME_UNIT_SECONDS, | 179 | (GNUNET_TIME_UNIT_SECONDS, |
171 | 10 * (NUM_PEERS + 1)), | 180 | 10 * (NUM_PEERS + 1)), |
172 | &do_shutdown, NULL); | 181 | &do_timeout, NULL); |
182 | GNUNET_SCHEDULER_add_shutdown(&shutdown_handler, NULL); | ||
173 | } | 183 | } |
174 | 184 | ||
175 | 185 | ||