aboutsummaryrefslogtreecommitdiff
path: root/src/set/test_set_api.c
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2013-08-12 18:00:43 +0000
committerFlorian Dold <florian.dold@gmail.com>2013-08-12 18:00:43 +0000
commit566dfe32be22ed1f071b974be3c4dd8bc5721151 (patch)
treedc4e89e80aab53e1cb69604c2960eaaf5043bb17 /src/set/test_set_api.c
parentd734cfd6677de174aa51a07437b0e0cae4c870be (diff)
downloadgnunet-566dfe32be22ed1f071b974be3c4dd8bc5721151.tar.gz
gnunet-566dfe32be22ed1f071b974be3c4dd8bc5721151.zip
- correct iteraion in multihashmap
- iterate over elements with client ack in set
Diffstat (limited to 'src/set/test_set_api.c')
-rw-r--r--src/set/test_set_api.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/set/test_set_api.c b/src/set/test_set_api.c
index 59c79ee38..6085c59f3 100644
--- a/src/set/test_set_api.c
+++ b/src/set/test_set_api.c
@@ -36,7 +36,7 @@ static struct GNUNET_SET_Handle *set2;
36static struct GNUNET_SET_ListenHandle *listen_handle; 36static struct GNUNET_SET_ListenHandle *listen_handle;
37const static struct GNUNET_CONFIGURATION_Handle *config; 37const static struct GNUNET_CONFIGURATION_Handle *config;
38 38
39int num_done; 39static int iter_count;
40 40
41 41
42static void 42static void
@@ -144,6 +144,9 @@ init_set2 (void *cls)
144 GNUNET_SET_add_element (set2, &element, NULL, NULL); 144 GNUNET_SET_add_element (set2, &element, NULL, NULL);
145 element.data = "quux"; 145 element.data = "quux";
146 element.size = strlen(element.data); 146 element.size = strlen(element.data);
147 GNUNET_SET_add_element (set2, &element, NULL, NULL);
148 element.data = "baz";
149 element.size = strlen(element.data);
147 GNUNET_SET_add_element (set2, &element, start, NULL); 150 GNUNET_SET_add_element (set2, &element, start, NULL);
148} 151}
149 152
@@ -167,6 +170,44 @@ init_set1 (void)
167} 170}
168 171
169 172
173static int
174iter_cb (void *cls,
175 const struct GNUNET_SET_Element *element)
176{
177 if (NULL == element)
178 {
179 GNUNET_assert (iter_count == 3);
180 GNUNET_SET_destroy (cls);
181 return GNUNET_YES;
182 }
183 printf ("iter: got element\n");
184 iter_count++;
185 return GNUNET_YES;
186}
187
188
189static void
190test_iter ()
191{
192 struct GNUNET_SET_Element element;
193 struct GNUNET_SET_Handle *iter_set;
194
195 iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_UNION);
196
197 element.data = "hello";
198 element.size = strlen(element.data);
199 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
200 element.data = "bar";
201 element.size = strlen(element.data);
202 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
203 element.data = "quux";
204 element.size = strlen(element.data);
205 GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
206
207 GNUNET_SET_iterate (iter_set, iter_cb, iter_set);
208}
209
210
170/** 211/**
171 * Signature of the 'main' function for a (single-peer) testcase that 212 * Signature of the 'main' function for a (single-peer) testcase that
172 * is run using 'GNUNET_TESTING_peer_run'. 213 * is run using 'GNUNET_TESTING_peer_run'.
@@ -188,6 +229,10 @@ run (void *cls,
188 printf ("my id (from CRYPTO): %s\n", GNUNET_h2s (&local_id.hashPubKey)); 229 printf ("my id (from CRYPTO): %s\n", GNUNET_h2s (&local_id.hashPubKey));
189 GNUNET_TESTING_peer_get_identity (peer, &local_id); 230 GNUNET_TESTING_peer_get_identity (peer, &local_id);
190 printf ("my id (from TESTING): %s\n", GNUNET_h2s (&local_id.hashPubKey)); 231 printf ("my id (from TESTING): %s\n", GNUNET_h2s (&local_id.hashPubKey));
232
233 test_iter ();
234
235 return;
191 set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); 236 set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION);
192 set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); 237 set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION);
193 GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &app_id); 238 GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &app_id);