diff options
Diffstat (limited to 'src/rps/test_service_rps_view.c')
-rw-r--r-- | src/rps/test_service_rps_view.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/src/rps/test_service_rps_view.c b/src/rps/test_service_rps_view.c deleted file mode 100644 index 5a8c00849..000000000 --- a/src/rps/test_service_rps_view.c +++ /dev/null | |||
@@ -1,145 +0,0 @@ | |||
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_view.c | ||
22 | * @brief testcase for gnunet-service-rps_view.c | ||
23 | */ | ||
24 | #include <platform.h> | ||
25 | #include "gnunet-service-rps_view.h" | ||
26 | |||
27 | #define ABORT() { fprintf (stderr, "Error at %s:%d\n", __FILE__, __LINE__); \ | ||
28 | View_destroy (view); return 1; } | ||
29 | #define CHECK(c) { if (! (c)) ABORT (); } | ||
30 | |||
31 | |||
32 | static int | ||
33 | check () | ||
34 | { | ||
35 | struct View *view; | ||
36 | struct GNUNET_PeerIdentity k1; | ||
37 | struct GNUNET_PeerIdentity k2; | ||
38 | const struct GNUNET_PeerIdentity *array; | ||
39 | unsigned int j; | ||
40 | |||
41 | view = View_create (3); | ||
42 | memset (&k1, 0, sizeof(k1)); | ||
43 | memset (&k2, 1, sizeof(k2)); | ||
44 | CHECK (GNUNET_NO == View_contains_peer (view, &k1)); | ||
45 | CHECK (GNUNET_NO == View_contains_peer (view, &k2)); | ||
46 | CHECK (GNUNET_NO == View_remove_peer (view, &k1)); | ||
47 | CHECK (GNUNET_NO == View_remove_peer (view, &k2)); | ||
48 | CHECK (NULL == View_get_peer_by_index (view, 0)); | ||
49 | CHECK (NULL == View_get_peer_by_index (view, 1)); | ||
50 | View_clear (view); /* See if assertions trigger */ | ||
51 | CHECK (0 == View_size (view)); | ||
52 | |||
53 | CHECK (GNUNET_OK == View_put (view, &k1)); | ||
54 | CHECK (1 == View_size (view)); | ||
55 | CHECK (GNUNET_NO == View_put (view, &k1)); | ||
56 | CHECK (1 == View_size (view)); | ||
57 | CHECK (GNUNET_YES == View_contains_peer (view, &k1)); | ||
58 | CHECK (GNUNET_OK == View_remove_peer (view, &k1)); | ||
59 | CHECK (0 == View_size (view)); | ||
60 | CHECK (GNUNET_NO == View_contains_peer (view, &k1)); | ||
61 | CHECK (GNUNET_NO == View_contains_peer (view, &k2)); | ||
62 | |||
63 | CHECK (GNUNET_OK == View_put (view, &k1)); | ||
64 | CHECK (1 == View_size (view)); | ||
65 | for (j = 0; j < 16; j++) | ||
66 | { | ||
67 | CHECK (GNUNET_NO == View_put (view, &k1)); | ||
68 | } | ||
69 | CHECK (1 == View_size (view)); | ||
70 | CHECK (GNUNET_OK == View_put (view, &k2)); | ||
71 | CHECK (2 == View_size (view)); | ||
72 | for (j = 0; j < 16; j++) | ||
73 | { | ||
74 | CHECK (GNUNET_NO == View_put (view, &k2)); | ||
75 | } | ||
76 | CHECK (2 == View_size (view)); | ||
77 | |||
78 | /* iterate */ | ||
79 | for (j = 0; j < View_size (view); j++) | ||
80 | { | ||
81 | CHECK (NULL != View_get_peer_by_index (view, j)); | ||
82 | } | ||
83 | CHECK ((0 == memcmp (View_get_peer_by_index (view, 0), | ||
84 | &k1, sizeof(k1)))); | ||
85 | CHECK ((0 == memcmp (View_get_peer_by_index (view, 1), | ||
86 | &k2, sizeof(k2)))); | ||
87 | CHECK (GNUNET_OK == View_remove_peer (view, &k1)); | ||
88 | CHECK (1 == View_size (view)); | ||
89 | CHECK (GNUNET_NO == View_contains_peer (view, &k1)); | ||
90 | CHECK (GNUNET_YES == View_contains_peer (view, &k2)); | ||
91 | CHECK (NULL != View_get_peer_by_index (view, 0)); | ||
92 | CHECK (NULL == View_get_peer_by_index (view, 1)); | ||
93 | |||
94 | View_clear (view); | ||
95 | CHECK (0 == View_size (view)); | ||
96 | |||
97 | CHECK (GNUNET_OK == View_put (view, &k1)); | ||
98 | CHECK (1 == View_size (view)); | ||
99 | CHECK (GNUNET_YES == View_contains_peer (view, &k1)); | ||
100 | CHECK (GNUNET_OK == View_put (view, &k2)); | ||
101 | CHECK (2 == View_size (view)); | ||
102 | CHECK (GNUNET_YES == View_contains_peer (view, &k2)); | ||
103 | array = View_get_as_array (view); | ||
104 | CHECK (0 == memcmp (&array[0], &k1, sizeof(k1))); | ||
105 | CHECK (0 == memcmp (&array[1], &k2, sizeof(k2))); | ||
106 | View_clear (view); | ||
107 | CHECK (0 == View_size (view)); | ||
108 | |||
109 | /*View_change_len () */ | ||
110 | CHECK (GNUNET_OK == View_put (view, &k1)); | ||
111 | CHECK (GNUNET_OK == View_put (view, &k2)); | ||
112 | CHECK (2 == View_size (view)); | ||
113 | View_change_len (view, 4); | ||
114 | CHECK (2 == View_size (view)); | ||
115 | CHECK (GNUNET_YES == View_contains_peer (view, &k1)); | ||
116 | CHECK (GNUNET_YES == View_contains_peer (view, &k2)); | ||
117 | array = View_get_as_array (view); | ||
118 | CHECK (0 == memcmp (&array[0], &k1, sizeof(k1))); | ||
119 | CHECK (0 == memcmp (&array[1], &k2, sizeof(k2))); | ||
120 | View_change_len (view, 1); | ||
121 | CHECK (1 == View_size (view)); | ||
122 | CHECK (GNUNET_YES == View_contains_peer (view, &k1)); | ||
123 | CHECK (GNUNET_NO == View_contains_peer (view, &k2)); | ||
124 | array = View_get_as_array (view); | ||
125 | CHECK (0 == memcmp (&array[0], &k1, sizeof(k1))); | ||
126 | View_clear (view); | ||
127 | CHECK (0 == View_size (view)); | ||
128 | |||
129 | View_destroy (view); | ||
130 | |||
131 | return 0; | ||
132 | } | ||
133 | |||
134 | |||
135 | int | ||
136 | main () | ||
137 | { | ||
138 | GNUNET_log_setup ("test_service_rps_peers", | ||
139 | "WARNING", | ||
140 | NULL); | ||
141 | return check (); | ||
142 | } | ||
143 | |||
144 | |||
145 | /* end of test_service_rps_view.c */ | ||