fix enable_malicous check
[oweals/gnunet.git] / src / rps / test_service_rps_custommap.c
1 /*
2      This file is part of GNUnet.
3      Copyright (C)
4
5      GNUnet is free software: you can redistribute it and/or modify it
6      under the terms of the GNU Affero General Public License as published
7      by the Free Software Foundation, either version 3 of the License,
8      or (at your 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      Affero General Public License for more details.
14
15      You should have received a copy of the GNU Affero General Public License
16      along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18      SPDX-License-Identifier: AGPL3.0-or-later
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
31 static int
32 check ()
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
114 int
115 main (int argc, char *argv[])
116 {
117   (void) argc;
118   (void) argv;
119
120   GNUNET_log_setup ("test_service_rps_peers", 
121                     "WARNING",
122                     NULL);
123   return check ();
124 }
125
126 /* end of test_service_rps_custommap.c */