X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fnamestore%2Ftest_namestore_api_zone_iteration_stop.c;h=8e8f68cfbbe2be52b6b0f14b5125cf3d48f279d3;hb=392baa82fc240d76b31a353c2d729a6f83f10b2c;hp=7b6824727ed401a0dcc959b40795ae035a5dd9ef;hpb=55ac4eda902dd14ee1a4d24e23d97b09fb73c832;p=oweals%2Fgnunet.git diff --git a/src/namestore/test_namestore_api_zone_iteration_stop.c b/src/namestore/test_namestore_api_zone_iteration_stop.c index 7b6824727..8e8f68cfb 100644 --- a/src/namestore/test_namestore_api_zone_iteration_stop.c +++ b/src/namestore/test_namestore_api_zone_iteration_stop.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2009 Christian Grothoff (and other contributing authors) + Copyright (C) 2009 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** * @file namestore/test_namestore_api_zone_iteration.c @@ -32,7 +32,7 @@ static struct GNUNET_NAMESTORE_Handle * nsh; -static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; +static struct GNUNET_SCHEDULER_Task * endbadly_task; static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey; @@ -46,15 +46,17 @@ static int returned_records; static char * s_name_1; -static struct GNUNET_NAMESTORE_RecordData *s_rd_1; +static struct GNUNET_GNSRECORD_Data *s_rd_1; static char * s_name_2; -static struct GNUNET_NAMESTORE_RecordData *s_rd_2; +static struct GNUNET_GNSRECORD_Data *s_rd_2; static char * s_name_3; -static struct GNUNET_NAMESTORE_RecordData *s_rd_3; +static struct GNUNET_GNSRECORD_Data *s_rd_3; + +static char *directory; /** @@ -110,16 +112,16 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { - if (NULL != zi) - { - GNUNET_NAMESTORE_zone_iteration_stop (zi); - zi = NULL; - } + if (NULL != zi) + { + GNUNET_NAMESTORE_zone_iteration_stop (zi); + zi = NULL; + } - if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) + if (endbadly_task != NULL) { GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_NO_TASK; + endbadly_task = NULL; } if (privkey != NULL) @@ -156,10 +158,10 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static void zone_proc (void *cls, - const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, - const char *label, - unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd) + const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, + const char *label, + unsigned int rd_count, + const struct GNUNET_GNSRECORD_Data *rd) { int failed = GNUNET_NO; if ((zone == NULL) && (label == NULL)) @@ -176,105 +178,103 @@ zone_proc (void *cls, GNUNET_SCHEDULER_add_now (&end, NULL); return; } - else + GNUNET_assert (NULL != zone); + if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))) { - if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))) - { - if (0 == strcmp (label, s_name_1)) + if (0 == strcmp (label, s_name_1)) + { + if (rd_count == 1) { - if (rd_count == 1) - { - if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_1)) - { - failed = GNUNET_YES; - GNUNET_break (0); - } - } - else + if (GNUNET_YES != GNUNET_GNSRECORD_records_cmp(rd, s_rd_1)) { failed = GNUNET_YES; GNUNET_break (0); } } - else if (0 == strcmp (label, s_name_2)) + else + { + failed = GNUNET_YES; + GNUNET_break (0); + } + } + else if (0 == strcmp (label, s_name_2)) + { + if (rd_count == 1) { - if (rd_count == 1) + if (GNUNET_YES != GNUNET_GNSRECORD_records_cmp(rd, s_rd_2)) { - if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_2)) - { - failed = GNUNET_YES; - GNUNET_break (0); - } - } - else - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Received invalid record count\n"); failed = GNUNET_YES; GNUNET_break (0); } } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Comparing result failed: got name `%s' for first zone\n", label); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Received invalid record count\n"); failed = GNUNET_YES; GNUNET_break (0); } - } - else if (0 == memcmp (zone, privkey2, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))) - { - if (0 == strcmp (label, s_name_3)) + } + else + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Comparing result failed: got name `%s' for first zone\n", label); + failed = GNUNET_YES; + GNUNET_break (0); + } + } + else if (0 == memcmp (zone, privkey2, sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))) + { + if (0 == strcmp (label, s_name_3)) + { + if (rd_count == 1) { - if (rd_count == 1) - { - if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_3)) - { - failed = GNUNET_YES; - GNUNET_break (0); - } - } - else + if (GNUNET_YES != GNUNET_GNSRECORD_records_cmp(rd, s_rd_3)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Received invalid record count\n"); failed = GNUNET_YES; GNUNET_break (0); } } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Comparing result failed: got name `%s' for first zone\n", label); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Received invalid record count\n"); failed = GNUNET_YES; GNUNET_break (0); } - } - else - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received invalid zone\n"); + } + else + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Comparing result failed: got name `%s' for first zone\n", label); failed = GNUNET_YES; GNUNET_break (0); - } + } + } + else + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Received invalid zone\n"); + failed = GNUNET_YES; + GNUNET_break (0); } - if (failed == GNUNET_NO) { - if (1 == returned_records) - { + if (1 == returned_records) + { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Telling namestore to stop zone iteration\n"); GNUNET_NAMESTORE_zone_iteration_stop (zi); zi = NULL; - if (GNUNET_SCHEDULER_NO_TASK != endbadly_task) + if (NULL != endbadly_task) { GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_NO_TASK; + endbadly_task = NULL; } res = 0; GNUNET_SCHEDULER_add_delayed (WAIT, &end, NULL); - return; - } + return; + } returned_records ++; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Telling namestore to send the next result\n"); @@ -303,7 +303,7 @@ put_cont (void *cls, int32_t success, const char *emsg) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records: `%s'\n", emsg); GNUNET_break (0); - if (GNUNET_SCHEDULER_NO_TASK != endbadly_task) + if (NULL != endbadly_task) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); return; @@ -322,7 +322,7 @@ put_cont (void *cls, int32_t success, const char *emsg) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); GNUNET_break (0); - if (GNUNET_SCHEDULER_NO_TASK != endbadly_task) + if (NULL != endbadly_task) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); return; @@ -331,19 +331,20 @@ put_cont (void *cls, int32_t success, const char *emsg) } -static struct GNUNET_NAMESTORE_RecordData * +static struct GNUNET_GNSRECORD_Data * create_record (unsigned int count) { unsigned int c; - struct GNUNET_NAMESTORE_RecordData * rd; + struct GNUNET_GNSRECORD_Data * rd; - rd = GNUNET_malloc (count * sizeof (struct GNUNET_NAMESTORE_RecordData)); + rd = GNUNET_malloc (count * sizeof (struct GNUNET_GNSRECORD_Data)); for (c = 0; c < count; c++) { rd[c].expiration_time = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_HOURS).abs_value_us; rd[c].record_type = 1111; rd[c].data_size = 50; rd[c].data = GNUNET_malloc(50); + rd[c].flags = 0; memset ((char *) rd[c].data, 'a', 50); } return rd; @@ -360,7 +361,7 @@ empty_zone_proc (void *cls, const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, const char *label, unsigned int rd_count, - const struct GNUNET_NAMESTORE_RecordData *rd) + const struct GNUNET_GNSRECORD_Data *rd) { char *hostkey_file; @@ -370,7 +371,7 @@ empty_zone_proc (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Expected empty zone but received zone private key\n")); GNUNET_break (0); - if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) + if (endbadly_task != NULL) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); return; @@ -380,7 +381,7 @@ empty_zone_proc (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Expected no zone content but received data\n")); GNUNET_break (0); - if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) + if (endbadly_task != NULL) GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); return; @@ -430,7 +431,14 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, struct GNUNET_TESTING_Peer *peer) { - endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, &endbadly, NULL); + GNUNET_assert (GNUNET_OK == + GNUNET_CONFIGURATION_get_value_string (cfg, + "PATHS", + "GNUNET_TEST_HOME", + &directory)); + GNUNET_DISK_directory_remove (directory); + + endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &endbadly, NULL); nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); /* first, iterate over empty namestore */ @@ -438,7 +446,8 @@ run (void *cls, NULL, &empty_zone_proc, nsh); if (NULL == zi) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to create zone iterator\n"); GNUNET_break (0); GNUNET_SCHEDULER_cancel (endbadly_task); endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); @@ -449,15 +458,20 @@ run (void *cls, int main (int argc, char *argv[]) { - GNUNET_DISK_directory_remove ("/tmp/test-gnunet-namestore/"); res = 1; if (0 != - GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration-stop", - "namestore", - "test_namestore_api.conf", - &run, - NULL)) - return 1; + GNUNET_TESTING_peer_run ("test-namestore-api-zone-iteration-stop", + "test_namestore_api.conf", + &run, + NULL)) + { + res = 1; + } + if (NULL != directory) + { + GNUNET_DISK_directory_remove (directory); + GNUNET_free (directory); + } return res; }