aboutsummaryrefslogtreecommitdiff
path: root/src/set
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-02-18 17:52:48 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-18 17:52:48 +0100
commit8e1e2bc0da1dad5d0953d51ebe3b74ca208e0099 (patch)
tree02c6e4e5b4e172d6dc411832a73fbe93c3571633 /src/set
parent0b75f7855d5de3f5dd98c31f527611fd3963a16f (diff)
downloadgnunet-8e1e2bc0da1dad5d0953d51ebe3b74ca208e0099.tar.gz
gnunet-8e1e2bc0da1dad5d0953d51ebe3b74ca208e0099.zip
fix testcase
Diffstat (limited to 'src/set')
-rw-r--r--src/set/test_set_intersection_result_full.c93
1 files changed, 70 insertions, 23 deletions
diff --git a/src/set/test_set_intersection_result_full.c b/src/set/test_set_intersection_result_full.c
index f78a03eaf..b2d6ce8a9 100644
--- a/src/set/test_set_intersection_result_full.c
+++ b/src/set/test_set_intersection_result_full.c
@@ -60,6 +60,9 @@ result_cb_set1 (void *cls,
60{ 60{
61 static int count; 61 static int count;
62 62
63 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
64 "Processing result set 1 (%d)\n",
65 status);
63 switch (status) 66 switch (status)
64 { 67 {
65 case GNUNET_SET_STATUS_OK: 68 case GNUNET_SET_STATUS_OK:
@@ -74,6 +77,8 @@ result_cb_set1 (void *cls,
74 GNUNET_assert (1 == count); 77 GNUNET_assert (1 == count);
75 GNUNET_SET_destroy (set1); 78 GNUNET_SET_destroy (set1);
76 set1 = NULL; 79 set1 = NULL;
80 if (NULL == set2)
81 GNUNET_SCHEDULER_shutdown ();
77 break; 82 break;
78 default: 83 default:
79 GNUNET_assert (0); 84 GNUNET_assert (0);
@@ -88,6 +93,9 @@ result_cb_set2 (void *cls,
88{ 93{
89 static int count; 94 static int count;
90 95
96 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
97 "Processing result set 2 (%d)\n",
98 status);
91 switch (status) 99 switch (status)
92 { 100 {
93 case GNUNET_SET_STATUS_OK: 101 case GNUNET_SET_STATUS_OK:
@@ -102,6 +110,8 @@ result_cb_set2 (void *cls,
102 GNUNET_assert (1 == count); 110 GNUNET_assert (1 == count);
103 GNUNET_SET_destroy (set2); 111 GNUNET_SET_destroy (set2);
104 set2 = NULL; 112 set2 = NULL;
113 if (NULL == set1)
114 GNUNET_SCHEDULER_shutdown ();
105 break; 115 break;
106 default: 116 default:
107 GNUNET_assert (0); 117 GNUNET_assert (0);
@@ -115,14 +125,16 @@ listen_cb (void *cls,
115 const struct GNUNET_MessageHeader *context_msg, 125 const struct GNUNET_MessageHeader *context_msg,
116 struct GNUNET_SET_Request *request) 126 struct GNUNET_SET_Request *request)
117{ 127{
128 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
129 "starting intersection by accepting and committing\n");
118 GNUNET_assert (NULL != context_msg); 130 GNUNET_assert (NULL != context_msg);
119 GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); 131 GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY);
120 GNUNET_SET_listen_cancel (listen_handle); 132 GNUNET_SET_listen_cancel (listen_handle);
121 listen_handle = NULL; 133 listen_handle = NULL;
122 oh2 = GNUNET_SET_accept (request, 134 oh2 = GNUNET_SET_accept (request,
123 GNUNET_SET_RESULT_FULL, 135 GNUNET_SET_RESULT_FULL,
124 &result_cb_set2, 136 &result_cb_set2,
125 NULL); 137 NULL);
126 GNUNET_SET_commit (oh2, 138 GNUNET_SET_commit (oh2,
127 set2); 139 set2);
128} 140}
@@ -138,17 +150,20 @@ start (void *cls)
138{ 150{
139 struct GNUNET_MessageHeader context_msg; 151 struct GNUNET_MessageHeader context_msg;
140 152
153 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
154 "starting listener\n");
141 context_msg.size = htons (sizeof context_msg); 155 context_msg.size = htons (sizeof context_msg);
142 context_msg.type = htons (GNUNET_MESSAGE_TYPE_DUMMY); 156 context_msg.type = htons (GNUNET_MESSAGE_TYPE_DUMMY);
143 listen_handle = GNUNET_SET_listen (config, 157 listen_handle = GNUNET_SET_listen (config,
144 GNUNET_SET_OPERATION_INTERSECTION, 158 GNUNET_SET_OPERATION_INTERSECTION,
145 &app_id, 159 &app_id,
146 &listen_cb, NULL); 160 &listen_cb,
161 NULL);
147 oh1 = GNUNET_SET_prepare (&local_id, 162 oh1 = GNUNET_SET_prepare (&local_id,
148 &app_id, 163 &app_id,
149 &context_msg, 164 &context_msg,
150 GNUNET_SET_RESULT_FULL, 165 GNUNET_SET_RESULT_FULL,
151 &result_cb_set1, 166 &result_cb_set1,
152 NULL); 167 NULL);
153 GNUNET_SET_commit (oh1, 168 GNUNET_SET_commit (oh1,
154 set1); 169 set1);
@@ -170,13 +185,22 @@ init_set2 (void *cls)
170 element.element_type = 0; 185 element.element_type = 0;
171 element.data = "hello"; 186 element.data = "hello";
172 element.size = strlen(element.data); 187 element.size = strlen(element.data);
173 GNUNET_SET_add_element (set2, &element, NULL, NULL); 188 GNUNET_SET_add_element (set2,
189 &element,
190 NULL,
191 NULL);
174 element.data = "quux"; 192 element.data = "quux";
175 element.size = strlen(element.data); 193 element.size = strlen(element.data);
176 GNUNET_SET_add_element (set2, &element, NULL, NULL); 194 GNUNET_SET_add_element (set2,
195 &element,
196 NULL,
197 NULL);
177 element.data = "baz"; 198 element.data = "baz";
178 element.size = strlen(element.data); 199 element.size = strlen(element.data);
179 GNUNET_SET_add_element (set2, &element, &start, NULL); 200 GNUNET_SET_add_element (set2,
201 &element,
202 &start,
203 NULL);
180} 204}
181 205
182 206
@@ -188,13 +212,21 @@ init_set1 (void)
188{ 212{
189 struct GNUNET_SET_Element element; 213 struct GNUNET_SET_Element element;
190 214
215 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
216 "initializing set 1\n");
191 element.element_type = 0; 217 element.element_type = 0;
192 element.data = "hello"; 218 element.data = "hello";
193 element.size = strlen(element.data); 219 element.size = strlen(element.data);
194 GNUNET_SET_add_element (set1, &element, NULL, NULL); 220 GNUNET_SET_add_element (set1,
221 &element,
222 NULL,
223 NULL);
195 element.data = "bar"; 224 element.data = "bar";
196 element.size = strlen(element.data); 225 element.size = strlen(element.data);
197 GNUNET_SET_add_element (set1, &element, &init_set2, NULL); 226 GNUNET_SET_add_element (set1,
227 &element,
228 &init_set2,
229 NULL);
198} 230}
199 231
200 232
@@ -219,17 +251,27 @@ test_iter ()
219 struct GNUNET_SET_Element element; 251 struct GNUNET_SET_Element element;
220 struct GNUNET_SET_Handle *iter_set; 252 struct GNUNET_SET_Handle *iter_set;
221 253
222 iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_INTERSECTION); 254 iter_set = GNUNET_SET_create (config,
255 GNUNET_SET_OPERATION_INTERSECTION);
223 element.element_type = 0; 256 element.element_type = 0;
224 element.data = "hello"; 257 element.data = "hello";
225 element.size = strlen(element.data); 258 element.size = strlen(element.data);
226 GNUNET_SET_add_element (iter_set, &element, NULL, NULL); 259 GNUNET_SET_add_element (iter_set,
260 &element,
261 NULL,
262 NULL);
227 element.data = "bar"; 263 element.data = "bar";
228 element.size = strlen(element.data); 264 element.size = strlen(element.data);
229 GNUNET_SET_add_element (iter_set, &element, NULL, NULL); 265 GNUNET_SET_add_element (iter_set,
266 &element,
267 NULL,
268 NULL);
230 element.data = "quux"; 269 element.data = "quux";
231 element.size = strlen(element.data); 270 element.size = strlen(element.data);
232 GNUNET_SET_add_element (iter_set, &element, NULL, NULL); 271 GNUNET_SET_add_element (iter_set,
272 &element,
273 NULL,
274 NULL);
233 GNUNET_SET_iterate (iter_set, 275 GNUNET_SET_iterate (iter_set,
234 &iter_cb, 276 &iter_cb,
235 iter_set); 277 iter_set);
@@ -307,8 +349,10 @@ run (void *cls,
307 struct GNUNET_TESTING_Peer *peer) 349 struct GNUNET_TESTING_Peer *peer)
308{ 350{
309 config = cfg; 351 config = cfg;
310 GNUNET_TESTING_peer_get_identity (peer, &local_id); 352 GNUNET_TESTING_peer_get_identity (peer,
311 if (0) test_iter (); 353 &local_id);
354 if (0)
355 test_iter ();
312 356
313 tt = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5), 357 tt = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5),
314 &timeout_fail, 358 &timeout_fail,
@@ -316,8 +360,10 @@ run (void *cls,
316 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, 360 GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
317 NULL); 361 NULL);
318 362
319 set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_INTERSECTION); 363 set1 = GNUNET_SET_create (cfg,
320 set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_INTERSECTION); 364 GNUNET_SET_OPERATION_INTERSECTION);
365 set2 = GNUNET_SET_create (cfg,
366 GNUNET_SET_OPERATION_INTERSECTION);
321 GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, 367 GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
322 &app_id); 368 &app_id);
323 369
@@ -327,9 +373,10 @@ run (void *cls,
327 373
328 374
329int 375int
330main (int argc, char **argv) 376main (int argc,
377 char **argv)
331{ 378{
332 if (0 != GNUNET_TESTING_peer_run ("test_set_api", 379 if (0 != GNUNET_TESTING_peer_run ("test_set_intersection_result_full",
333 "test_set.conf", 380 "test_set.conf",
334 &run, NULL)) 381 &run, NULL))
335 return 1; 382 return 1;