From 566dfe32be22ed1f071b974be3c4dd8bc5721151 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 12 Aug 2013 18:00:43 +0000 Subject: - correct iteraion in multihashmap - iterate over elements with client ack in set --- src/set/test_set_api.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'src/set/test_set_api.c') 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; static struct GNUNET_SET_ListenHandle *listen_handle; const static struct GNUNET_CONFIGURATION_Handle *config; -int num_done; +static int iter_count; static void @@ -144,6 +144,9 @@ init_set2 (void *cls) GNUNET_SET_add_element (set2, &element, NULL, NULL); element.data = "quux"; element.size = strlen(element.data); + GNUNET_SET_add_element (set2, &element, NULL, NULL); + element.data = "baz"; + element.size = strlen(element.data); GNUNET_SET_add_element (set2, &element, start, NULL); } @@ -167,6 +170,44 @@ init_set1 (void) } +static int +iter_cb (void *cls, + const struct GNUNET_SET_Element *element) +{ + if (NULL == element) + { + GNUNET_assert (iter_count == 3); + GNUNET_SET_destroy (cls); + return GNUNET_YES; + } + printf ("iter: got element\n"); + iter_count++; + return GNUNET_YES; +} + + +static void +test_iter () +{ + struct GNUNET_SET_Element element; + struct GNUNET_SET_Handle *iter_set; + + iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_UNION); + + element.data = "hello"; + element.size = strlen(element.data); + GNUNET_SET_add_element (iter_set, &element, NULL, NULL); + element.data = "bar"; + element.size = strlen(element.data); + GNUNET_SET_add_element (iter_set, &element, NULL, NULL); + element.data = "quux"; + element.size = strlen(element.data); + GNUNET_SET_add_element (iter_set, &element, NULL, NULL); + + GNUNET_SET_iterate (iter_set, iter_cb, iter_set); +} + + /** * Signature of the 'main' function for a (single-peer) testcase that * is run using 'GNUNET_TESTING_peer_run'. @@ -188,6 +229,10 @@ run (void *cls, printf ("my id (from CRYPTO): %s\n", GNUNET_h2s (&local_id.hashPubKey)); GNUNET_TESTING_peer_get_identity (peer, &local_id); printf ("my id (from TESTING): %s\n", GNUNET_h2s (&local_id.hashPubKey)); + + test_iter (); + + return; set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK, &app_id); -- cgit v1.2.3