diff options
Diffstat (limited to 'src/namestore/test_namestore_api_lookup_nick.c')
-rw-r--r-- | src/namestore/test_namestore_api_lookup_nick.c | 367 |
1 files changed, 183 insertions, 184 deletions
diff --git a/src/namestore/test_namestore_api_lookup_nick.c b/src/namestore/test_namestore_api_lookup_nick.c index 392a2521d..130f9bc1e 100644 --- a/src/namestore/test_namestore_api_lookup_nick.c +++ b/src/namestore/test_namestore_api_lookup_nick.c | |||
@@ -11,12 +11,12 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 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/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
18 | SPDX-License-Identifier: AGPL3.0-or-later | 18 | SPDX-License-Identifier: AGPL3.0-or-later |
19 | */ | 19 | */ |
20 | /** | 20 | /** |
21 | * @file namestore/test_namestore_api_lookup_nick.c | 21 | * @file namestore/test_namestore_api_lookup_nick.c |
22 | * @brief testcase for namestore_api.c: NICK records | 22 | * @brief testcase for namestore_api.c: NICK records |
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | #define TEST_RECORD_DATA 'a' | 35 | #define TEST_RECORD_DATA 'a' |
36 | 36 | ||
37 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) | 37 | #define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 10) |
38 | 38 | ||
39 | static struct GNUNET_NAMESTORE_Handle *nsh; | 39 | static struct GNUNET_NAMESTORE_Handle *nsh; |
40 | 40 | ||
@@ -55,20 +55,20 @@ static const char * name = "d"; | |||
55 | 55 | ||
56 | 56 | ||
57 | static void | 57 | static void |
58 | cleanup () | 58 | cleanup() |
59 | { | 59 | { |
60 | GNUNET_free_non_null ((void *)rd_orig.data); | 60 | GNUNET_free_non_null((void *)rd_orig.data); |
61 | if (NULL != nsh) | 61 | if (NULL != nsh) |
62 | { | 62 | { |
63 | GNUNET_NAMESTORE_disconnect (nsh); | 63 | GNUNET_NAMESTORE_disconnect(nsh); |
64 | nsh = NULL; | 64 | nsh = NULL; |
65 | } | 65 | } |
66 | if (NULL != privkey) | 66 | if (NULL != privkey) |
67 | { | 67 | { |
68 | GNUNET_free (privkey); | 68 | GNUNET_free(privkey); |
69 | privkey = NULL; | 69 | privkey = NULL; |
70 | } | 70 | } |
71 | GNUNET_SCHEDULER_shutdown (); | 71 | GNUNET_SCHEDULER_shutdown(); |
72 | } | 72 | } |
73 | 73 | ||
74 | 74 | ||
@@ -79,32 +79,32 @@ cleanup () | |||
79 | * @param tc scheduler context | 79 | * @param tc scheduler context |
80 | */ | 80 | */ |
81 | static void | 81 | static void |
82 | endbadly (void *cls) | 82 | endbadly(void *cls) |
83 | { | 83 | { |
84 | if (NULL != nsqe) | 84 | if (NULL != nsqe) |
85 | { | 85 | { |
86 | GNUNET_NAMESTORE_cancel (nsqe); | 86 | GNUNET_NAMESTORE_cancel(nsqe); |
87 | nsqe = NULL; | 87 | nsqe = NULL; |
88 | } | 88 | } |
89 | cleanup (); | 89 | cleanup(); |
90 | res = 1; | 90 | res = 1; |
91 | } | 91 | } |
92 | 92 | ||
93 | 93 | ||
94 | static void | 94 | static void |
95 | end (void *cls) | 95 | end(void *cls) |
96 | { | 96 | { |
97 | cleanup (); | 97 | cleanup(); |
98 | res = 0; | 98 | res = 0; |
99 | } | 99 | } |
100 | 100 | ||
101 | 101 | ||
102 | static void | 102 | static void |
103 | lookup_it (void *cls, | 103 | lookup_it(void *cls, |
104 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, | 104 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, |
105 | const char *label, | 105 | const char *label, |
106 | unsigned int rd_count, | 106 | unsigned int rd_count, |
107 | const struct GNUNET_GNSRECORD_Data *rd) | 107 | const struct GNUNET_GNSRECORD_Data *rd) |
108 | { | 108 | { |
109 | nsqe = NULL; | 109 | nsqe = NULL; |
110 | int c; | 110 | int c; |
@@ -112,222 +112,221 @@ lookup_it (void *cls, | |||
112 | int found_nick = GNUNET_NO; | 112 | int found_nick = GNUNET_NO; |
113 | 113 | ||
114 | if (0 != GNUNET_memcmp(privkey, zone)) | 114 | if (0 != GNUNET_memcmp(privkey, zone)) |
115 | { | 115 | { |
116 | GNUNET_break(0); | 116 | GNUNET_break(0); |
117 | GNUNET_SCHEDULER_cancel (endbadly_task); | 117 | GNUNET_SCHEDULER_cancel(endbadly_task); |
118 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | 118 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
119 | return; | 119 | return; |
120 | } | 120 | } |
121 | 121 | ||
122 | if (NULL == label) | 122 | if (NULL == label) |
123 | { | 123 | { |
124 | GNUNET_break(0); | 124 | GNUNET_break(0); |
125 | GNUNET_SCHEDULER_cancel (endbadly_task); | 125 | GNUNET_SCHEDULER_cancel(endbadly_task); |
126 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | 126 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
127 | return; | 127 | return; |
128 | } | 128 | } |
129 | |||
130 | if (0 != strcmp (label, name)) | ||
131 | { | ||
132 | GNUNET_break(0); | ||
133 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
134 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
135 | return; | ||
136 | } | ||
137 | |||
138 | if (2 != rd_count) | ||
139 | { | ||
140 | GNUNET_break(0); | ||
141 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
142 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
143 | return; | ||
144 | } | ||
145 | 129 | ||
146 | for (c = 0; c < rd_count; c++) | 130 | if (0 != strcmp(label, name)) |
147 | { | ||
148 | if (GNUNET_GNSRECORD_TYPE_NICK == rd[c].record_type) | ||
149 | { | 131 | { |
150 | if (rd[c].data_size != strlen(TEST_NICK)+1) | 132 | GNUNET_break(0); |
151 | { | 133 | GNUNET_SCHEDULER_cancel(endbadly_task); |
152 | GNUNET_break(0); | 134 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
153 | GNUNET_SCHEDULER_cancel (endbadly_task); | 135 | return; |
154 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
155 | return; | ||
156 | } | ||
157 | if (0 != (rd[c].flags & GNUNET_GNSRECORD_RF_PRIVATE)) | ||
158 | { | ||
159 | GNUNET_break(0); | ||
160 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
161 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
162 | return; | ||
163 | } | ||
164 | if (0 != strcmp(rd[c].data, TEST_NICK)) | ||
165 | { | ||
166 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
167 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
168 | return; | ||
169 | } | ||
170 | found_nick = GNUNET_YES; | ||
171 | } | 136 | } |
172 | else | 137 | |
138 | if (2 != rd_count) | ||
173 | { | 139 | { |
174 | if (rd[c].record_type != TEST_RECORD_TYPE) | 140 | GNUNET_break(0); |
175 | { | 141 | GNUNET_SCHEDULER_cancel(endbadly_task); |
176 | GNUNET_break(0); | 142 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
177 | GNUNET_SCHEDULER_cancel (endbadly_task); | 143 | return; |
178 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
179 | return; | ||
180 | } | ||
181 | if (rd[c].data_size != TEST_RECORD_DATALEN) | ||
182 | { | ||
183 | GNUNET_break(0); | ||
184 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
185 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
186 | return; | ||
187 | } | ||
188 | if (0 != memcmp (rd[c].data, rd_orig.data, TEST_RECORD_DATALEN)) | ||
189 | { | ||
190 | GNUNET_break(0); | ||
191 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
192 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
193 | return; | ||
194 | } | ||
195 | if (rd[c].flags != rd->flags) | ||
196 | { | ||
197 | GNUNET_break(0); | ||
198 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
199 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | ||
200 | return; | ||
201 | } | ||
202 | found_record = GNUNET_YES; | ||
203 | } | 144 | } |
204 | 145 | ||
205 | } | 146 | for (c = 0; c < rd_count; c++) |
147 | { | ||
148 | if (GNUNET_GNSRECORD_TYPE_NICK == rd[c].record_type) | ||
149 | { | ||
150 | if (rd[c].data_size != strlen(TEST_NICK) + 1) | ||
151 | { | ||
152 | GNUNET_break(0); | ||
153 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
154 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
155 | return; | ||
156 | } | ||
157 | if (0 != (rd[c].flags & GNUNET_GNSRECORD_RF_PRIVATE)) | ||
158 | { | ||
159 | GNUNET_break(0); | ||
160 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
161 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
162 | return; | ||
163 | } | ||
164 | if (0 != strcmp(rd[c].data, TEST_NICK)) | ||
165 | { | ||
166 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
167 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
168 | return; | ||
169 | } | ||
170 | found_nick = GNUNET_YES; | ||
171 | } | ||
172 | else | ||
173 | { | ||
174 | if (rd[c].record_type != TEST_RECORD_TYPE) | ||
175 | { | ||
176 | GNUNET_break(0); | ||
177 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
178 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
179 | return; | ||
180 | } | ||
181 | if (rd[c].data_size != TEST_RECORD_DATALEN) | ||
182 | { | ||
183 | GNUNET_break(0); | ||
184 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
185 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
186 | return; | ||
187 | } | ||
188 | if (0 != memcmp(rd[c].data, rd_orig.data, TEST_RECORD_DATALEN)) | ||
189 | { | ||
190 | GNUNET_break(0); | ||
191 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
192 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
193 | return; | ||
194 | } | ||
195 | if (rd[c].flags != rd->flags) | ||
196 | { | ||
197 | GNUNET_break(0); | ||
198 | GNUNET_SCHEDULER_cancel(endbadly_task); | ||
199 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); | ||
200 | return; | ||
201 | } | ||
202 | found_record = GNUNET_YES; | ||
203 | } | ||
204 | } | ||
206 | 205 | ||
207 | /* Done */ | 206 | /* Done */ |
208 | if ((GNUNET_YES == found_nick) && (GNUNET_YES == found_record)) | 207 | if ((GNUNET_YES == found_nick) && (GNUNET_YES == found_record)) |
209 | { | 208 | { |
210 | GNUNET_SCHEDULER_cancel (endbadly_task); | 209 | GNUNET_SCHEDULER_cancel(endbadly_task); |
211 | endbadly_task = NULL; | 210 | endbadly_task = NULL; |
212 | GNUNET_SCHEDULER_add_now (&end, NULL ); | 211 | GNUNET_SCHEDULER_add_now(&end, NULL); |
213 | } | 212 | } |
214 | else | 213 | else |
215 | { | 214 | { |
216 | GNUNET_break (0); | 215 | GNUNET_break(0); |
217 | GNUNET_SCHEDULER_cancel (endbadly_task); | 216 | GNUNET_SCHEDULER_cancel(endbadly_task); |
218 | endbadly_task = NULL; | 217 | endbadly_task = NULL; |
219 | GNUNET_SCHEDULER_add_now (&endbadly, NULL ); | 218 | GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
220 | } | 219 | } |
221 | } | 220 | } |
222 | 221 | ||
223 | 222 | ||
224 | static void | 223 | static void |
225 | fail_cb (void *cls) | 224 | fail_cb(void *cls) |
226 | { | 225 | { |
227 | GNUNET_assert (0); | 226 | GNUNET_assert(0); |
228 | } | 227 | } |
229 | 228 | ||
230 | 229 | ||
231 | static void | 230 | static void |
232 | put_cont (void *cls, int32_t success, const char *emsg) | 231 | put_cont(void *cls, int32_t success, const char *emsg) |
233 | { | 232 | { |
234 | const char *name = cls; | 233 | const char *name = cls; |
235 | 234 | ||
236 | nsqe = NULL; | 235 | nsqe = NULL; |
237 | GNUNET_assert (NULL != cls); | 236 | GNUNET_assert(NULL != cls); |
238 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 237 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, |
239 | "Name store added record for `%s': %s\n", | 238 | "Name store added record for `%s': %s\n", |
240 | name, | 239 | name, |
241 | (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); | 240 | (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); |
242 | 241 | ||
243 | if (GNUNET_OK != success) | 242 | if (GNUNET_OK != success) |
244 | { | 243 | { |
245 | GNUNET_SCHEDULER_cancel (endbadly_task); | 244 | GNUNET_SCHEDULER_cancel(endbadly_task); |
246 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | 245 | endbadly_task = GNUNET_SCHEDULER_add_now(&endbadly, NULL); |
247 | return; | 246 | return; |
248 | } | 247 | } |
249 | /* Lookup */ | 248 | /* Lookup */ |
250 | nsqe = GNUNET_NAMESTORE_records_lookup (nsh, | 249 | nsqe = GNUNET_NAMESTORE_records_lookup(nsh, |
251 | privkey, | 250 | privkey, |
252 | name, | 251 | name, |
253 | &fail_cb, | 252 | &fail_cb, |
254 | NULL, | 253 | NULL, |
255 | &lookup_it, | 254 | &lookup_it, |
256 | NULL); | 255 | NULL); |
257 | } | 256 | } |
258 | 257 | ||
259 | 258 | ||
260 | static void | 259 | static void |
261 | nick_cont (void *cls, int32_t success, const char *emsg) | 260 | nick_cont(void *cls, int32_t success, const char *emsg) |
262 | { | 261 | { |
263 | const char *name = cls; | 262 | const char *name = cls; |
264 | 263 | ||
265 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 264 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, |
266 | "Nick added : %s\n", | 265 | "Nick added : %s\n", |
267 | (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); | 266 | (success == GNUNET_OK) ? "SUCCESS" : "FAIL"); |
268 | 267 | ||
269 | rd_orig.expiration_time = GNUNET_TIME_absolute_get().abs_value_us; | 268 | rd_orig.expiration_time = GNUNET_TIME_absolute_get().abs_value_us; |
270 | rd_orig.record_type = TEST_RECORD_TYPE; | 269 | rd_orig.record_type = TEST_RECORD_TYPE; |
271 | rd_orig.data_size = TEST_RECORD_DATALEN; | 270 | rd_orig.data_size = TEST_RECORD_DATALEN; |
272 | rd_orig.data = GNUNET_malloc (TEST_RECORD_DATALEN); | 271 | rd_orig.data = GNUNET_malloc(TEST_RECORD_DATALEN); |
273 | rd_orig.flags = 0; | 272 | rd_orig.flags = 0; |
274 | memset ((char *) rd_orig.data, 'a', TEST_RECORD_DATALEN); | 273 | memset((char *)rd_orig.data, 'a', TEST_RECORD_DATALEN); |
275 | 274 | ||
276 | nsqe = GNUNET_NAMESTORE_records_store (nsh, privkey, name, | 275 | nsqe = GNUNET_NAMESTORE_records_store(nsh, privkey, name, |
277 | 1, &rd_orig, &put_cont, (void *) name); | 276 | 1, &rd_orig, &put_cont, (void *)name); |
278 | } | 277 | } |
279 | 278 | ||
280 | 279 | ||
281 | static void | 280 | static void |
282 | run (void *cls, | 281 | run(void *cls, |
283 | const struct GNUNET_CONFIGURATION_Handle *cfg, | 282 | const struct GNUNET_CONFIGURATION_Handle *cfg, |
284 | struct GNUNET_TESTING_Peer *peer) | 283 | struct GNUNET_TESTING_Peer *peer) |
285 | { | 284 | { |
286 | endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, | 285 | endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, |
287 | &endbadly, | 286 | &endbadly, |
288 | NULL); | 287 | NULL); |
289 | privkey = GNUNET_CRYPTO_ecdsa_key_create (); | 288 | privkey = GNUNET_CRYPTO_ecdsa_key_create(); |
290 | GNUNET_assert (privkey != NULL); | 289 | GNUNET_assert(privkey != NULL); |
291 | GNUNET_CRYPTO_ecdsa_key_get_public (privkey, | 290 | GNUNET_CRYPTO_ecdsa_key_get_public(privkey, |
292 | &pubkey); | 291 | &pubkey); |
293 | 292 | ||
294 | nsh = GNUNET_NAMESTORE_connect (cfg); | 293 | nsh = GNUNET_NAMESTORE_connect(cfg); |
295 | GNUNET_break (NULL != nsh); | 294 | GNUNET_break(NULL != nsh); |
296 | 295 | ||
297 | nsqe = GNUNET_NAMESTORE_set_nick (nsh, | 296 | nsqe = GNUNET_NAMESTORE_set_nick(nsh, |
298 | privkey, | 297 | privkey, |
299 | TEST_NICK, | 298 | TEST_NICK, |
300 | &nick_cont, | 299 | &nick_cont, |
301 | (void *) name); | 300 | (void *)name); |
302 | if (NULL == nsqe) | 301 | if (NULL == nsqe) |
303 | { | 302 | { |
304 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 303 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, |
305 | _("Namestore cannot store no block\n")); | 304 | _("Namestore cannot store no block\n")); |
306 | } | 305 | } |
307 | } | 306 | } |
308 | 307 | ||
309 | #include "test_common.c" | 308 | #include "test_common.c" |
310 | 309 | ||
311 | 310 | ||
312 | int | 311 | int |
313 | main (int argc, char *argv[]) | 312 | main(int argc, char *argv[]) |
314 | { | 313 | { |
315 | const char *plugin_name; | 314 | const char *plugin_name; |
316 | char *cfg_name; | 315 | char *cfg_name; |
317 | 316 | ||
318 | SETUP_CFG (plugin_name, cfg_name); | 317 | SETUP_CFG(plugin_name, cfg_name); |
319 | res = 1; | 318 | res = 1; |
320 | if (0 != | 319 | if (0 != |
321 | GNUNET_TESTING_peer_run ("test-namestore-api-lookup-nick", | 320 | GNUNET_TESTING_peer_run("test-namestore-api-lookup-nick", |
322 | cfg_name, | 321 | cfg_name, |
323 | &run, | 322 | &run, |
324 | NULL)) | 323 | NULL)) |
325 | { | 324 | { |
326 | res = 1; | 325 | res = 1; |
327 | } | 326 | } |
328 | GNUNET_DISK_purge_cfg_dir (cfg_name, | 327 | GNUNET_DISK_purge_cfg_dir(cfg_name, |
329 | "GNUNET_TEST_HOME"); | 328 | "GNUNET_TEST_HOME"); |
330 | GNUNET_free (cfg_name); | 329 | GNUNET_free(cfg_name); |
331 | return res; | 330 | return res; |
332 | } | 331 | } |
333 | 332 | ||