aboutsummaryrefslogtreecommitdiff
path: root/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-09-11 08:18:18 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-09-11 08:18:18 +0000
commit15e39da4147d4fe8b94c23fee39ef4198c908a54 (patch)
treee25571fd928efee26aaf150353ecb6cd70bc42f9 /src/namestore/test_namestore_api_zone_iteration_specific_zone.c
parentf3c214f61e5654b742b3ea1ea3f49f67d4289301 (diff)
downloadgnunet-15e39da4147d4fe8b94c23fee39ef4198c908a54.tar.gz
gnunet-15e39da4147d4fe8b94c23fee39ef4198c908a54.zip
updated test to iterate specific zone
Diffstat (limited to 'src/namestore/test_namestore_api_zone_iteration_specific_zone.c')
-rw-r--r--src/namestore/test_namestore_api_zone_iteration_specific_zone.c269
1 files changed, 156 insertions, 113 deletions
diff --git a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
index 453f09bb1..299a8bbd8 100644
--- a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
+++ b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c
@@ -19,12 +19,12 @@
19*/ 19*/
20/** 20/**
21 * @file namestore/test_namestore_api_zone_iteration_specific_zone.c 21 * @file namestore/test_namestore_api_zone_iteration_specific_zone.c
22 * @brief testcase for zone iteration functionality: iterate of a specific zone 22 * @brief testcase for zone iteration functionality: iterate over a specific zone
23 */ 23 */
24#include "platform.h" 24#include "platform.h"
25#include "gnunet_common.h" 25#include "gnunet_common.h"
26#include "gnunet_testing_lib.h"
27#include "gnunet_namestore_service.h" 26#include "gnunet_namestore_service.h"
27#include "gnunet_testing_lib.h"
28#include "namestore.h" 28#include "namestore.h"
29 29
30 30
@@ -35,40 +35,24 @@ static struct GNUNET_NAMESTORE_Handle * nsh;
35 35
36static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; 36static GNUNET_SCHEDULER_TaskIdentifier endbadly_task;
37 37
38static GNUNET_SCHEDULER_TaskIdentifier stopiteration_task;
39
40static struct GNUNET_CRYPTO_EccPrivateKey * privkey; 38static struct GNUNET_CRYPTO_EccPrivateKey * privkey;
41 39
42static struct GNUNET_CRYPTO_EccPublicKey pubkey;
43
44static struct GNUNET_CRYPTO_ShortHashCode zone;
45
46static struct GNUNET_CRYPTO_EccPrivateKey * privkey2; 40static struct GNUNET_CRYPTO_EccPrivateKey * privkey2;
47 41
48static struct GNUNET_CRYPTO_EccPublicKey pubkey2;
49
50static struct GNUNET_CRYPTO_ShortHashCode zone2;
51
52static struct GNUNET_NAMESTORE_ZoneIterator *zi; 42static struct GNUNET_NAMESTORE_ZoneIterator *zi;
53 43
54static int res; 44static int res;
55 45
56static int returned_records; 46static int returned_records;
57 47
58static struct GNUNET_CRYPTO_EccSignature *sig_1;
59
60static char * s_name_1; 48static char * s_name_1;
61 49
62static struct GNUNET_NAMESTORE_RecordData *s_rd_1; 50static struct GNUNET_NAMESTORE_RecordData *s_rd_1;
63 51
64static struct GNUNET_CRYPTO_EccSignature *sig_2;
65
66static char * s_name_2; 52static char * s_name_2;
67 53
68static struct GNUNET_NAMESTORE_RecordData *s_rd_2; 54static struct GNUNET_NAMESTORE_RecordData *s_rd_2;
69 55
70static struct GNUNET_CRYPTO_EccSignature *sig_3;
71
72static char * s_name_3; 56static char * s_name_3;
73 57
74static struct GNUNET_NAMESTORE_RecordData *s_rd_3; 58static struct GNUNET_NAMESTORE_RecordData *s_rd_3;
@@ -83,21 +67,20 @@ static struct GNUNET_NAMESTORE_RecordData *s_rd_3;
83static void 67static void
84endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 68endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
85{ 69{
86 if (stopiteration_task != GNUNET_SCHEDULER_NO_TASK) 70 if (NULL != zi)
87 { 71 {
88 GNUNET_SCHEDULER_cancel (stopiteration_task); 72 GNUNET_NAMESTORE_zone_iteration_stop (zi);
89 stopiteration_task = GNUNET_SCHEDULER_NO_TASK; 73 zi = NULL;
90 } 74 }
91 75
92 if (nsh != NULL) 76 if (nsh != NULL)
93 GNUNET_NAMESTORE_disconnect (nsh); 77 GNUNET_NAMESTORE_disconnect (nsh);
94 nsh = NULL; 78 nsh = NULL;
95 GNUNET_free_non_null(sig_1); 79
96 GNUNET_free_non_null(sig_2);
97 GNUNET_free_non_null(sig_3);
98 GNUNET_free_non_null(s_name_1); 80 GNUNET_free_non_null(s_name_1);
99 GNUNET_free_non_null(s_name_2); 81 GNUNET_free_non_null(s_name_2);
100 GNUNET_free_non_null(s_name_3); 82 GNUNET_free_non_null(s_name_3);
83
101 if (s_rd_1 != NULL) 84 if (s_rd_1 != NULL)
102 { 85 {
103 GNUNET_free ((void *)s_rd_1->data); 86 GNUNET_free ((void *)s_rd_1->data);
@@ -128,26 +111,26 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
128static void 111static void
129end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 112end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
130{ 113{
131 if (stopiteration_task != GNUNET_SCHEDULER_NO_TASK) 114 if (NULL != zi)
132 { 115 {
133 GNUNET_SCHEDULER_cancel (stopiteration_task); 116 GNUNET_NAMESTORE_zone_iteration_stop (zi);
134 stopiteration_task = GNUNET_SCHEDULER_NO_TASK; 117 zi = NULL;
135 } 118 }
119
136 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) 120 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
137 { 121 {
138 GNUNET_SCHEDULER_cancel (endbadly_task); 122 GNUNET_SCHEDULER_cancel (endbadly_task);
139 endbadly_task = GNUNET_SCHEDULER_NO_TASK; 123 endbadly_task = GNUNET_SCHEDULER_NO_TASK;
140 } 124 }
125
141 if (privkey != NULL) 126 if (privkey != NULL)
142 GNUNET_free (privkey); 127 GNUNET_free (privkey);
143 privkey = NULL; 128 privkey = NULL;
129
144 if (privkey2 != NULL) 130 if (privkey2 != NULL)
145 GNUNET_free (privkey2); 131 GNUNET_free (privkey2);
146 privkey2 = NULL; 132 privkey2 = NULL;
147 133
148 GNUNET_free (sig_1);
149 GNUNET_free (sig_2);
150 GNUNET_free (sig_3);
151 GNUNET_free (s_name_1); 134 GNUNET_free (s_name_1);
152 GNUNET_free (s_name_2); 135 GNUNET_free (s_name_2);
153 GNUNET_free (s_name_3); 136 GNUNET_free (s_name_3);
@@ -174,80 +157,100 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
174 157
175static void 158static void
176zone_proc (void *cls, 159zone_proc (void *cls,
177 const struct GNUNET_CRYPTO_EccPublicKey *zone_key, 160 const struct GNUNET_CRYPTO_EccPrivateKey *zone,
178 struct GNUNET_TIME_Absolute expire, 161 const char *label,
179 const char *name, 162 unsigned int rd_count,
180 unsigned int rd_count, 163 const struct GNUNET_NAMESTORE_RecordData *rd)
181 const struct GNUNET_NAMESTORE_RecordData *rd,
182 const struct GNUNET_CRYPTO_EccSignature *signature)
183{ 164{
184 int failed = GNUNET_NO; 165 int failed = GNUNET_NO;
185 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for zone `%s'\n", GNUNET_NAMESTORE_short_h2s (&zone)); 166 if ((zone == NULL) && (label == NULL))
186 if ((zone_key == NULL) && (name == NULL))
187 { 167 {
188 GNUNET_break (2 == returned_records); 168 GNUNET_break (2 == returned_records);
189 if (2 == returned_records) 169 if (2 == returned_records)
190 res = 0; 170 {
171 res = 0; /* Last iteraterator callback, we are done */
172 zi = NULL;
173 }
191 else 174 else
192 res = 1; 175 res = 1;
193 176
194 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received last result, iteration done after %u records\n", returned_records); 177 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
178 "Received last result, iteration done after receing %u results\n",
179 returned_records );
195 GNUNET_SCHEDULER_add_now (&end, NULL); 180 GNUNET_SCHEDULER_add_now (&end, NULL);
181 return;
196 } 182 }
197 else 183 else
198 { 184 {
199 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Comparing results name %s \n", name); 185 if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EccPrivateKey)))
200 if (0 == strcmp (name, s_name_1)) 186 {
201 { 187 if (0 == strcmp (label, s_name_1))
202 if (rd_count == 1)
203 { 188 {
204 if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_1)) 189 if (rd_count == 1)
190 {
191 if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_1))
192 {
193 failed = GNUNET_YES;
194 GNUNET_break (0);
195 }
196 }
197 else
205 { 198 {
206 failed = GNUNET_YES; 199 failed = GNUNET_YES;
207 GNUNET_break (0); 200 GNUNET_break (0);
208 } 201 }
209 } 202 }
210 else 203 else if (0 == strcmp (label, s_name_2))
211 {
212 failed = GNUNET_YES;
213 GNUNET_break (0);
214 }
215 }
216 else if (0 == strcmp (name, s_name_2))
217 {
218 if (rd_count == 1)
219 { 204 {
220 if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_2)) 205 if (rd_count == 1)
221 { 206 {
207 if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_2))
208 {
209 failed = GNUNET_YES;
210 GNUNET_break (0);
211 }
212 }
213 else
214 {
215 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
216 "Received invalid record count\n");
222 failed = GNUNET_YES; 217 failed = GNUNET_YES;
223 GNUNET_break (0); 218 GNUNET_break (0);
224 } 219 }
225 } 220 }
226 else 221 else
227 { 222 {
223 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
224 "Comparing result failed: got name `%s' for first zone\n", label);
228 failed = GNUNET_YES; 225 failed = GNUNET_YES;
229 GNUNET_break (0); 226 GNUNET_break (0);
230 } 227 }
231 } 228 }
232 else 229 else if (0 == memcmp (zone, privkey2, sizeof (struct GNUNET_CRYPTO_EccPrivateKey)))
233 { 230 {
234 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Comparing result failed: got name `%s'\n", name); 231 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received data for not requested zone\n");
235 res = 1; 232 failed = GNUNET_YES;
236 GNUNET_break (0); 233 GNUNET_break (0);
237 GNUNET_SCHEDULER_add_now (&end, NULL); 234 }
238 } 235 else
239 236 {
240 if (failed == GNUNET_NO) 237 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received invalid zone\n");
241 { 238 failed = GNUNET_YES;
242 returned_records ++;
243 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Telling namestore to send the next result\n");
244 GNUNET_NAMESTORE_zone_iterator_next (zi);
245 }
246 else
247 {
248 GNUNET_break (0); 239 GNUNET_break (0);
249 GNUNET_SCHEDULER_add_now (&end, NULL); 240 }
250 } 241 }
242
243 if (failed == GNUNET_NO)
244 {
245 returned_records ++;
246 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
247 "Telling namestore to send the next result\n");
248 GNUNET_NAMESTORE_zone_iterator_next (zi);
249 }
250 else
251 {
252 GNUNET_break (0);
253 GNUNET_SCHEDULER_add_now (&end, NULL);
251 } 254 }
252} 255}
253 256
@@ -264,30 +267,32 @@ put_cont (void *cls, int32_t success, const char *emsg)
264 } 267 }
265 else 268 else
266 { 269 {
267 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records\n"); 270 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records: `%s'\n",
271 emsg);
268 GNUNET_break (0); 272 GNUNET_break (0);
269 GNUNET_SCHEDULER_cancel (endbadly_task); 273 if (GNUNET_SCHEDULER_NO_TASK != endbadly_task)
274 GNUNET_SCHEDULER_cancel (endbadly_task);
270 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); 275 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
276 return;
271 } 277 }
272 278
273 if (c == 3) 279 if (c == 3)
274 { 280 {
275 res = 1; 281 res = 1;
276 returned_records = 0; 282 returned_records = 0;
277 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over zone `%s'\n", 283 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over all zones \n");
278 GNUNET_NAMESTORE_short_h2s(&zone));
279 zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, 284 zi = GNUNET_NAMESTORE_zone_iteration_start(nsh,
280 &zone, 285 privkey,
281 GNUNET_NAMESTORE_RF_NONE, 286 &zone_proc,
282 GNUNET_NAMESTORE_RF_NONE, 287 NULL);
283 zone_proc,
284 &zone);
285 if (zi == NULL) 288 if (zi == NULL)
286 { 289 {
287 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); 290 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n");
288 GNUNET_break (0); 291 GNUNET_break (0);
289 GNUNET_SCHEDULER_cancel (endbadly_task); 292 if (GNUNET_SCHEDULER_NO_TASK != endbadly_task)
293 GNUNET_SCHEDULER_cancel (endbadly_task);
290 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); 294 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
295 return;
291 } 296 }
292 } 297 }
293} 298}
@@ -312,23 +317,50 @@ create_record (unsigned int count)
312} 317}
313 318
314 319
320/**
321 * Callback called from the zone iterator when we iterate over
322 * the empty zone. Check that we got no records and then
323 * start the actual tests by filling the zone.
324 */
315static void 325static void
316run (void *cls, 326empty_zone_proc (void *cls,
317 const struct GNUNET_CONFIGURATION_Handle *cfg, 327 const struct GNUNET_CRYPTO_EccPrivateKey *zone,
318 struct GNUNET_TESTING_Peer *peer) 328 const char *label,
329 unsigned int rd_count,
330 const struct GNUNET_NAMESTORE_RecordData *rd)
319{ 331{
320 char *hostkey_file; 332 char *hostkey_file;
321 struct GNUNET_TIME_Absolute et;
322 333
323 endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); 334 GNUNET_assert (nsh == cls);
335 if (NULL != zone)
336 {
337 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
338 _("Expected empty zone but received zone private key\n"));
339 GNUNET_break (0);
340 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
341 GNUNET_SCHEDULER_cancel (endbadly_task);
342 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
343 return;
344 }
345 if ((NULL != label) || (NULL != rd) || (0 != rd))
346 {
347 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
348 _("Expected no zone content but received data\n"));
349 GNUNET_break (0);
350 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
351 GNUNET_SCHEDULER_cancel (endbadly_task);
352 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
353 return;
354 }
355
356
357 zi = NULL;
324 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, 358 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR,
325 "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); 359 "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey");
326 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); 360 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file);
327 privkey = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); 361 privkey = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file);
328 GNUNET_free (hostkey_file); 362 GNUNET_free (hostkey_file);
329 GNUNET_assert (privkey != NULL); 363 GNUNET_assert (privkey != NULL);
330 GNUNET_CRYPTO_ecc_key_get_public(privkey, &pubkey);
331 GNUNET_CRYPTO_short_hash (&pubkey, sizeof (pubkey), &zone);
332 364
333 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, 365 GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR,
334 "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); 366 "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey");
@@ -336,37 +368,48 @@ run (void *cls,
336 privkey2 = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); 368 privkey2 = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file);
337 GNUNET_free (hostkey_file); 369 GNUNET_free (hostkey_file);
338 GNUNET_assert (privkey2 != NULL); 370 GNUNET_assert (privkey2 != NULL);
339 GNUNET_CRYPTO_ecc_key_get_public(privkey2, &pubkey2);
340 GNUNET_CRYPTO_short_hash (&pubkey2, sizeof (pubkey), &zone2);
341 nsh = GNUNET_NAMESTORE_connect (cfg);
342 GNUNET_break (NULL != nsh);
343 371
344 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 1\n"); 372 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 1\n");
373
345 GNUNET_asprintf(&s_name_1, "dummy1"); 374 GNUNET_asprintf(&s_name_1, "dummy1");
346 s_rd_1 = create_record(1); 375 s_rd_1 = create_record(1);
347 et.abs_value_us = s_rd_1[0].expiration_time; 376 GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_1,
348 sig_1 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_1, s_rd_1, 1); 377 1, s_rd_1, &put_cont, NULL);
349 GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name_1,
350 1, s_rd_1,
351 &put_cont, NULL);
352 378
353 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 2 \n"); 379 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 2 \n");
354 GNUNET_asprintf(&s_name_2, "dummy2"); 380 GNUNET_asprintf(&s_name_2, "dummy2");
355 s_rd_2 = create_record(1); 381 s_rd_2 = create_record(1);
356 et.abs_value_us = s_rd_2[0].expiration_time; 382 GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_2,
357 sig_2 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_2, s_rd_2, 1); 383 1, s_rd_2, &put_cont, NULL);
358 GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name_2,
359 1, s_rd_2,
360 &put_cont, NULL);
361 384
362 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 3\n"); 385 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 3\n");
386
363 /* name in different zone */ 387 /* name in different zone */
364 GNUNET_asprintf(&s_name_3, "dummy3"); 388 GNUNET_asprintf(&s_name_3, "dummy3");
365 s_rd_3 = create_record(1); 389 s_rd_3 = create_record(1);
366 et.abs_value_us = s_rd_3[0].expiration_time; 390 GNUNET_NAMESTORE_records_store(nsh, privkey2, s_name_3,
367 sig_3 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_3, s_rd_3, 1); 391 1, s_rd_3, &put_cont, NULL);
368 GNUNET_NAMESTORE_record_put (nsh, &pubkey2, s_name_3, 392}
369 GNUNET_TIME_UNIT_FOREVER_ABS, 1, s_rd_3, sig_3, &put_cont, NULL); 393
394
395static void
396run (void *cls,
397 const struct GNUNET_CONFIGURATION_Handle *cfg,
398 struct GNUNET_TESTING_Peer *peer)
399{
400 endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, &endbadly, NULL);
401 nsh = GNUNET_NAMESTORE_connect (cfg);
402 GNUNET_break (NULL != nsh);
403 /* first, iterate over empty namestore */
404 zi = GNUNET_NAMESTORE_zone_iteration_start(nsh,
405 NULL, &empty_zone_proc, nsh);
406 if (NULL == zi)
407 {
408 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n");
409 GNUNET_break (0);
410 GNUNET_SCHEDULER_cancel (endbadly_task);
411 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
412 }
370} 413}
371 414
372 415
@@ -375,7 +418,7 @@ main (int argc, char *argv[])
375{ 418{
376 res = 1; 419 res = 1;
377 if (0 != 420 if (0 !=
378 GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration-specific-zone", 421 GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration",
379 "namestore", 422 "namestore",
380 "test_namestore_api.conf", 423 "test_namestore_api.conf",
381 &run, 424 &run,