aboutsummaryrefslogtreecommitdiff
path: root/src/rps/test_service_rps_custommap.c
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2015-12-01 18:25:32 +0000
committerJulius Bünger <buenger@mytum.de>2015-12-01 18:25:32 +0000
commit5c72cf0b8a2ab24254ec9e14d7149a05332eb475 (patch)
treeb9bced612c8085cb87bdbafe1da791b7d8a9b37c /src/rps/test_service_rps_custommap.c
parent27a0b4b9a7e0f80620ba8844a462da49a2928703 (diff)
downloadgnunet-5c72cf0b8a2ab24254ec9e14d7149a05332eb475.tar.gz
gnunet-5c72cf0b8a2ab24254ec9e14d7149a05332eb475.zip
-rename _peers.* -> _custommap.*
Signed-off-by: Julius Bünger <buenger@mytum.de>
Diffstat (limited to 'src/rps/test_service_rps_custommap.c')
-rw-r--r--src/rps/test_service_rps_custommap.c123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/rps/test_service_rps_custommap.c b/src/rps/test_service_rps_custommap.c
new file mode 100644
index 000000000..f88842b79
--- /dev/null
+++ b/src/rps/test_service_rps_custommap.c
@@ -0,0 +1,123 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/
20/**
21 * @file rps/test_service_rps_custommap.c
22 * @brief testcase for gnunet-service-rps_peers.c
23 */
24#include <platform.h>
25#include "gnunet-service-rps_custommap.h"
26
27#define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); if (NULL != c_m) CustomPeerMap_destroy(c_m); return 1; }
28#define CHECK(c) { if (! (c)) ABORT(); }
29
30
31static int
32check ()
33{
34
35 struct CustomPeerMap *c_m;
36 struct GNUNET_PeerIdentity k1;
37 struct GNUNET_PeerIdentity k2;
38 int j;
39
40 CHECK (NULL != (c_m = CustomPeerMap_create (4)));
41 memset (&k1, 0, sizeof (k1));
42 memset (&k2, 1, sizeof (k2));
43 CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
44 CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k2));
45 CHECK (GNUNET_NO == CustomPeerMap_remove_peer (c_m, &k1));
46 CHECK (GNUNET_NO == CustomPeerMap_remove_peer (c_m, &k2));
47 CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 0));
48 CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 0));
49 CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 1));
50 CHECK (GNUNET_NO == CustomPeerMap_remove_peer_by_index (c_m, 1));
51 CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 0));
52 CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 0));
53 CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 1));
54 CHECK (NULL == CustomPeerMap_get_peer_by_index (c_m, 1));
55 CustomPeerMap_clear (c_m); /* See if assertions trigger */
56 CHECK (0 == CustomPeerMap_size (c_m));
57
58 CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
59 CHECK (1 == CustomPeerMap_size (c_m));
60 CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k1));
61 CHECK (1 == CustomPeerMap_size (c_m));
62 CHECK (GNUNET_YES == CustomPeerMap_contains_peer (c_m, &k1));
63 CHECK (GNUNET_OK == CustomPeerMap_remove_peer (c_m, &k1));
64 CHECK (0 == CustomPeerMap_size (c_m));
65 CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
66 CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k2));
67
68 CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
69 CHECK (1 == CustomPeerMap_size (c_m));
70 for (j = 0; j < 16; j++)
71 {
72 CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k1));
73 }
74 CHECK (1 == CustomPeerMap_size (c_m));
75 CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k2));
76 CHECK (2 == CustomPeerMap_size (c_m));
77 for (j = 0; j < 16; j++)
78 {
79 CHECK (GNUNET_NO == CustomPeerMap_put (c_m, &k2));
80 }
81 CHECK (2 == CustomPeerMap_size (c_m));
82
83 /* iterate */
84 for (j = 0; j < CustomPeerMap_size (c_m); j++)
85 {
86 CHECK (NULL != CustomPeerMap_get_peer_by_index (c_m, j));
87 }
88 CHECK ((0 == memcmp (CustomPeerMap_get_peer_by_index (c_m, 0),
89 &k1, sizeof (k1))));
90 CHECK ((0 == memcmp (CustomPeerMap_get_peer_by_index (c_m, 1),
91 &k2, sizeof (k2))));
92 CHECK (GNUNET_OK == CustomPeerMap_remove_peer (c_m, &k1));
93 CHECK (1 == CustomPeerMap_size (c_m));
94 CHECK (GNUNET_NO == CustomPeerMap_contains_peer (c_m, &k1));
95 CHECK (GNUNET_YES == CustomPeerMap_contains_peer (c_m, &k2));
96 CHECK (NULL != CustomPeerMap_get_peer_by_index (c_m, 0));
97
98 CustomPeerMap_clear (c_m);
99 CHECK (0 == CustomPeerMap_size (c_m));
100
101 CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k1));
102 CHECK (1 == CustomPeerMap_size (c_m));
103 CHECK (GNUNET_OK == CustomPeerMap_put (c_m, &k2));
104 CHECK (2 == CustomPeerMap_size (c_m));
105 CustomPeerMap_clear (c_m);
106 CHECK (0 == CustomPeerMap_size (c_m));
107
108 CustomPeerMap_destroy (c_m);
109
110 return 0;
111}
112
113
114int
115main (int argc, char *argv[])
116{
117 GNUNET_log_setup ("test_service_rps_peers",
118 "WARNING",
119 NULL);
120 return check ();
121}
122
123/* end of test_service_rps_custommap.c */