diff options
author | Florian Dold <florian.dold@gmail.com> | 2013-08-12 14:50:20 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2013-08-12 14:50:20 +0000 |
commit | fc8f7f91c13c6d6697c729c3f2d6b72a8fec1369 (patch) | |
tree | fcd8f89fad8710adae3edf235be46edc0854d6e8 | |
parent | 860c615d8efd0ca2cf8ba24a527b94ae6fc96918 (diff) | |
download | gnunet-fc8f7f91c13c6d6697c729c3f2d6b72a8fec1369.tar.gz gnunet-fc8f7f91c13c6d6697c729c3f2d6b72a8fec1369.zip |
- test for external iterator
- const added to result parameter of 'next'
-rw-r--r-- | src/include/gnunet_container_lib.h | 2 | ||||
-rw-r--r-- | src/util/container_multihashmap.c | 2 | ||||
-rw-r--r-- | src/util/test_container_multihashmap.c | 14 |
3 files changed, 16 insertions, 2 deletions
diff --git a/src/include/gnunet_container_lib.h b/src/include/gnunet_container_lib.h index a6a0e519d..87249faca 100644 --- a/src/include/gnunet_container_lib.h +++ b/src/include/gnunet_container_lib.h | |||
@@ -728,7 +728,7 @@ GNUNET_CONTAINER_multihashmap_iterator_create (const struct GNUNET_CONTAINER_Mul | |||
728 | */ | 728 | */ |
729 | int | 729 | int |
730 | GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, | 730 | GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, |
731 | struct GNUNET_HashCode *key, void **value); | 731 | struct GNUNET_HashCode *key, const void **value); |
732 | 732 | ||
733 | 733 | ||
734 | /** | 734 | /** |
diff --git a/src/util/container_multihashmap.c b/src/util/container_multihashmap.c index bd22732be..1cd699dff 100644 --- a/src/util/container_multihashmap.c +++ b/src/util/container_multihashmap.c | |||
@@ -838,7 +838,7 @@ GNUNET_CONTAINER_multihashmap_iterator_create (const struct GNUNET_CONTAINER_Mul | |||
838 | */ | 838 | */ |
839 | int | 839 | int |
840 | GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, | 840 | GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, |
841 | struct GNUNET_HashCode *key, void **value) | 841 | struct GNUNET_HashCode *key, const void **value) |
842 | { | 842 | { |
843 | /* make sure nobody modified the map */ | 843 | /* make sure nobody modified the map */ |
844 | GNUNET_assert (iter->modification_counter == iter->map->modification_counter); | 844 | GNUNET_assert (iter->modification_counter == iter->map->modification_counter); |
diff --git a/src/util/test_container_multihashmap.c b/src/util/test_container_multihashmap.c index ff50df117..a0d29c606 100644 --- a/src/util/test_container_multihashmap.c +++ b/src/util/test_container_multihashmap.c | |||
@@ -37,6 +37,8 @@ testMap (int i) | |||
37 | struct GNUNET_CONTAINER_MultiHashMap *m; | 37 | struct GNUNET_CONTAINER_MultiHashMap *m; |
38 | struct GNUNET_HashCode k1; | 38 | struct GNUNET_HashCode k1; |
39 | struct GNUNET_HashCode k2; | 39 | struct GNUNET_HashCode k2; |
40 | struct GNUNET_CONTAINER_MultiHashMapIterator *iter; | ||
41 | struct GNUNET_HashCode key_ret; | ||
40 | const char *ret; | 42 | const char *ret; |
41 | int j; | 43 | int j; |
42 | 44 | ||
@@ -79,11 +81,23 @@ testMap (int i) | |||
79 | CHECK (2 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k1, NULL, NULL)); | 81 | CHECK (2 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k1, NULL, NULL)); |
80 | CHECK (0 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k2, NULL, NULL)); | 82 | CHECK (0 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k2, NULL, NULL)); |
81 | CHECK (2 == GNUNET_CONTAINER_multihashmap_iterate (m, NULL, NULL)); | 83 | CHECK (2 == GNUNET_CONTAINER_multihashmap_iterate (m, NULL, NULL)); |
84 | iter = GNUNET_CONTAINER_multihashmap_iterator_create (m); | ||
85 | CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, &key_ret, (const void **)&ret)); | ||
86 | CHECK (0 == memcmp (&key_ret, &k1, sizeof (key_ret))); | ||
87 | CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, &key_ret, (const void **)&ret)); | ||
88 | CHECK (0 == memcmp (&key_ret, &k1, sizeof (key_ret))); | ||
89 | CHECK (GNUNET_NO == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL)); | ||
90 | |||
82 | CHECK (2 == GNUNET_CONTAINER_multihashmap_remove_all (m, &k1)); | 91 | CHECK (2 == GNUNET_CONTAINER_multihashmap_remove_all (m, &k1)); |
83 | for (j = 0; j < 1024; j++) | 92 | for (j = 0; j < 1024; j++) |
84 | CHECK (GNUNET_OK == | 93 | CHECK (GNUNET_OK == |
85 | GNUNET_CONTAINER_multihashmap_put (m, &k1, "v2", | 94 | GNUNET_CONTAINER_multihashmap_put (m, &k1, "v2", |
86 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); | 95 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); |
96 | iter = GNUNET_CONTAINER_multihashmap_iterator_create (m); | ||
97 | for (j = 0; j < GNUNET_CONTAINER_multihashmap_size (m); j++) | ||
98 | CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL)); | ||
99 | CHECK (GNUNET_NO == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL)); | ||
100 | |||
87 | GNUNET_CONTAINER_multihashmap_destroy (m); | 101 | GNUNET_CONTAINER_multihashmap_destroy (m); |
88 | return 0; | 102 | return 0; |
89 | } | 103 | } |