From 3a3088b2704eec5858c1b36ac990ca6c6a15d646 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 24 Feb 2019 13:04:36 +0100 Subject: more code cleanup, better error handing in tests --- src/namestore/test_hostkey | Bin 827 -> 0 bytes .../test_namestore_api_monitoring_existing.c | 10 +- .../test_namestore_api_zone_iteration_nick.c | 136 ++++++-------------- ...st_namestore_api_zone_iteration_specific_zone.c | 16 +-- .../test_namestore_api_zone_iteration_stop.c | 142 ++++++--------------- 5 files changed, 90 insertions(+), 214 deletions(-) (limited to 'src/namestore') diff --git a/src/namestore/test_hostkey b/src/namestore/test_hostkey index 81f461e7d..e69de29bb 100644 Binary files a/src/namestore/test_hostkey and b/src/namestore/test_hostkey differ diff --git a/src/namestore/test_namestore_api_monitoring_existing.c b/src/namestore/test_namestore_api_monitoring_existing.c index f6ec01ffc..64bfb6949 100644 --- a/src/namestore/test_namestore_api_monitoring_existing.c +++ b/src/namestore/test_namestore_api_monitoring_existing.c @@ -376,6 +376,9 @@ run (void *cls, } +#include "test_common.c" + + int main (int argc, char *argv[]) @@ -383,13 +386,8 @@ main (int argc, const char *plugin_name; char *cfg_name; - plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); - GNUNET_asprintf (&cfg_name, - "test_namestore_api_%s.conf", - plugin_name); + SETUP_CFG (plugin_name, cfg_name); res = 1; - GNUNET_DISK_purge_cfg_dir (cfg_name, - "GNUNET_TEST_HOME"); if (0 != GNUNET_TESTING_peer_run ("test-namestore-api-monitoring-existing", cfg_name, diff --git a/src/namestore/test_namestore_api_zone_iteration_nick.c b/src/namestore/test_namestore_api_zone_iteration_nick.c index 088422ca3..9df6c98cc 100644 --- a/src/namestore/test_namestore_api_zone_iteration_nick.c +++ b/src/namestore/test_namestore_api_zone_iteration_nick.c @@ -37,8 +37,6 @@ static struct GNUNET_NAMESTORE_Handle * nsh; -static struct GNUNET_SCHEDULER_Task * endbadly_task; - static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey; static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey2; @@ -71,7 +69,7 @@ static struct GNUNET_NAMESTORE_QueueEntry *nsqe; * @param tc scheduler context */ static void -endbadly (void *cls) +end (void *cls) { if (NULL != zi) { @@ -83,9 +81,9 @@ endbadly (void *cls) GNUNET_NAMESTORE_disconnect (nsh); nsh = NULL; } - GNUNET_free_non_null(s_name_1); - GNUNET_free_non_null(s_name_2); - GNUNET_free_non_null(s_name_3); + GNUNET_free_non_null (s_name_1); + GNUNET_free_non_null (s_name_2); + GNUNET_free_non_null (s_name_3); if (s_rd_1 != NULL) { @@ -104,99 +102,50 @@ endbadly (void *cls) } if (privkey != NULL) - GNUNET_free (privkey); - privkey = NULL; - - if (privkey2 != NULL) - GNUNET_free (privkey2); - privkey2 = NULL; - res = 1; -} - - -static void -end (void *cls) -{ - if (NULL != zi) { - GNUNET_NAMESTORE_zone_iteration_stop (zi); - zi = NULL; - } - if (endbadly_task != NULL) - { - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = NULL; - } - - if (privkey != NULL) GNUNET_free (privkey); - privkey = NULL; - - if (privkey2 != NULL) - GNUNET_free (privkey2); - privkey2 = NULL; - - GNUNET_free (s_name_1); - GNUNET_free (s_name_2); - GNUNET_free (s_name_3); - if (s_rd_1 != NULL) - { - GNUNET_free ((void *)s_rd_1->data); - GNUNET_free (s_rd_1); + privkey = NULL; } - if (s_rd_2 != NULL) - { - GNUNET_free ((void *)s_rd_2->data); - GNUNET_free (s_rd_2); - } - if (s_rd_3 != NULL) + if (privkey2 != NULL) { - GNUNET_free ((void *)s_rd_3->data); - GNUNET_free (s_rd_3); + GNUNET_free (privkey2); + privkey2 = NULL; } - if (nsh != NULL) - GNUNET_NAMESTORE_disconnect (nsh); - nsh = NULL; } static int check_zone_1 (const char *label, unsigned int rd_count, - const struct GNUNET_GNSRECORD_Data *rd) + const struct GNUNET_GNSRECORD_Data *rd) { - int failed = GNUNET_NO; - int c; - for (c = 0; c< rd_count ; c++) + for (unsigned int c = 0; c< rd_count ; c++) { - if (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) - if (0 != strcmp (rd[c].data, ZONE_NICK_1)) - { - GNUNET_break (0); - return GNUNET_YES; - } + if ( (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) && + (0 != strcmp (rd[c].data, ZONE_NICK_1)) ) + { + GNUNET_break (0); + return GNUNET_YES; + } } - return failed; + return GNUNET_NO; } + static int check_zone_2 (const char *label, - unsigned int rd_count, - const struct GNUNET_GNSRECORD_Data *rd) + unsigned int rd_count, + const struct GNUNET_GNSRECORD_Data *rd) { - int failed = GNUNET_NO; - int c; - - for (c = 0; c< rd_count ; c++) + for (unsigned int c = 0; c< rd_count ; c++) { - if (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) - if (0 != strcmp (rd[c].data, ZONE_NICK_2)) - { - GNUNET_break (0); - return GNUNET_YES; - } + if ( (rd[c].record_type == GNUNET_GNSRECORD_TYPE_NICK) && + (0 != strcmp (rd[c].data, ZONE_NICK_2)) ) + { + GNUNET_break (0); + return GNUNET_YES; + } } - - return failed; + return GNUNET_NO; } @@ -208,7 +157,7 @@ zone_proc_end (void *cls) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received last result, iteration done after receing %u results\n", returned_records); - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_shutdown (); } @@ -254,7 +203,7 @@ zone_proc (void *cls, { GNUNET_break (0); res = 1; - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_shutdown (); } } @@ -283,9 +232,7 @@ put_cont (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records: `%s'\n", emsg); GNUNET_break (0); - if (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } @@ -306,9 +253,7 @@ put_cont (void *cls, { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); GNUNET_break (0); - if (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } } @@ -406,9 +351,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 != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } if ((NULL != label) || (NULL != rd) || (0 != rd_count)) @@ -416,9 +359,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 != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } GNUNET_assert (0); @@ -454,12 +395,10 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, struct GNUNET_TESTING_Peer *peer) { - endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, - &endbadly, - NULL); nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); - + GNUNET_SCHEDULER_add_shutdown (&end, + NULL); /* first, iterate over empty namestore */ zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, NULL, @@ -474,8 +413,7 @@ run (void *cls, 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); + GNUNET_SCHEDULER_shutdown (); } } 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 0be9bab98..cbcd94cd5 100644 --- a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c +++ b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c @@ -98,9 +98,9 @@ end (void *cls) GNUNET_free (privkey2); privkey2 = NULL; } - GNUNET_free (s_name_1); - GNUNET_free (s_name_2); - GNUNET_free (s_name_3); + GNUNET_free_non_null (s_name_1); + GNUNET_free_non_null (s_name_2); + GNUNET_free_non_null (s_name_3); if (s_rd_1 != NULL) { GNUNET_free ((void *)s_rd_1->data); @@ -429,19 +429,17 @@ run (void *cls, } +#include "test_common.c" + + int main (int argc, char *argv[]) { const char *plugin_name; char *cfg_name; - plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); - GNUNET_asprintf (&cfg_name, - "test_namestore_api_%s.conf", - plugin_name); + SETUP_CFG (plugin_name, cfg_name); res = 1; - GNUNET_DISK_purge_cfg_dir (cfg_name, - "GNUNET_TEST_HOME"); if (0 != GNUNET_TESTING_peer_run ("test-namestore-api-zone-iteration-specific-zone", cfg_name, diff --git a/src/namestore/test_namestore_api_zone_iteration_stop.c b/src/namestore/test_namestore_api_zone_iteration_stop.c index 5b54e100e..38da3136c 100644 --- a/src/namestore/test_namestore_api_zone_iteration_stop.c +++ b/src/namestore/test_namestore_api_zone_iteration_stop.c @@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL3.0-or-later */ /** - * @file namestore/test_namestore_api_zone_iteration.c + * @file namestore/test_namestore_api_zone_iteration_stop.c * @brief testcase for zone iteration functionality: stop iterating of zones */ #include "platform.h" @@ -34,8 +34,6 @@ static struct GNUNET_NAMESTORE_Handle * nsh; -static struct GNUNET_SCHEDULER_Task * endbadly_task; - static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey; static struct GNUNET_CRYPTO_EcdsaPrivateKey * privkey2; @@ -59,29 +57,27 @@ static char * s_name_3; static struct GNUNET_GNSRECORD_Data *s_rd_3; - /** * Re-establish the connection to the service. * * @param cls handle to use to re-connect. */ static void -endbadly (void *cls) +end (void *cls) { if (NULL != zi) { GNUNET_NAMESTORE_zone_iteration_stop (zi); zi = NULL; } - if (nsh != NULL) + { GNUNET_NAMESTORE_disconnect (nsh); - nsh = NULL; - - GNUNET_free_non_null(s_name_1); - GNUNET_free_non_null(s_name_2); - GNUNET_free_non_null(s_name_3); - + nsh = NULL; + } + GNUNET_free_non_null (s_name_1); + GNUNET_free_non_null (s_name_2); + GNUNET_free_non_null (s_name_3); if (s_rd_1 != NULL) { GNUNET_free ((void *)s_rd_1->data); @@ -97,62 +93,23 @@ endbadly (void *cls) GNUNET_free ((void *)s_rd_3->data); GNUNET_free (s_rd_3); } - if (privkey != NULL) + { GNUNET_free (privkey); - privkey = NULL; - + privkey = NULL; + } if (privkey2 != NULL) + { GNUNET_free (privkey2); - privkey2 = NULL; - res = 1; + privkey2 = NULL; + } } static void -end (void *cls) +delayed_end (void *cls) { - if (NULL != zi) - { - GNUNET_NAMESTORE_zone_iteration_stop (zi); - zi = NULL; - } - - if (endbadly_task != NULL) - { - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = NULL; - } - - if (privkey != NULL) - GNUNET_free (privkey); - privkey = NULL; - - if (privkey2 != NULL) - GNUNET_free (privkey2); - privkey2 = NULL; - - GNUNET_free (s_name_1); - GNUNET_free (s_name_2); - GNUNET_free (s_name_3); - if (s_rd_1 != NULL) - { - GNUNET_free ((void *)s_rd_1->data); - GNUNET_free (s_rd_1); - } - if (s_rd_2 != NULL) - { - GNUNET_free ((void *)s_rd_2->data); - GNUNET_free (s_rd_2); - } - if (s_rd_3 != NULL) - { - GNUNET_free ((void *)s_rd_3->data); - GNUNET_free (s_rd_3); - } - if (nsh != NULL) - GNUNET_NAMESTORE_disconnect (nsh); - nsh = NULL; + GNUNET_SCHEDULER_shutdown (); } @@ -257,16 +214,13 @@ zone_proc (void *cls, 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 (NULL != endbadly_task) - { - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = NULL; - } + "Telling namestore to stop zone iteration\n"); + GNUNET_NAMESTORE_zone_iteration_stop (zi); + zi = NULL; res = 0; - GNUNET_SCHEDULER_add_delayed (WAIT, &end, NULL); + GNUNET_SCHEDULER_add_delayed (WAIT, + &delayed_end, + NULL); return; } returned_records ++; @@ -278,7 +232,7 @@ zone_proc (void *cls, else { GNUNET_break (0); - GNUNET_SCHEDULER_add_now (&end, NULL); + GNUNET_SCHEDULER_shutdown (); } } @@ -314,9 +268,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 (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } @@ -339,9 +291,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 (NULL != endbadly_task) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } } @@ -387,9 +337,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 != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } if ((NULL != label) || (NULL != rd) || (0 != rd_count)) @@ -397,9 +345,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 != NULL) - GNUNET_SCHEDULER_cancel (endbadly_task); - endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); + GNUNET_SCHEDULER_shutdown (); return; } GNUNET_assert (0); @@ -476,43 +422,39 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg, struct GNUNET_TESTING_Peer *peer) { - endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, - &endbadly, - NULL); nsh = GNUNET_NAMESTORE_connect (cfg); GNUNET_break (NULL != nsh); + GNUNET_SCHEDULER_add_shutdown (&end, + NULL); /* first, iterate over empty namestore */ - zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, - NULL, - &fail_cb, - NULL, - &empty_zone_proc, - nsh, - &empty_zone_proc_end, - nsh); + zi = GNUNET_NAMESTORE_zone_iteration_start (nsh, + NULL, + &fail_cb, + NULL, + &empty_zone_proc, + nsh, + &empty_zone_proc_end, + nsh); if (NULL == zi) { 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); + GNUNET_SCHEDULER_shutdown (); } } +#include "test_common.c" + + int main (int argc, char *argv[]) { const char *plugin_name; char *cfg_name; - plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); - GNUNET_asprintf (&cfg_name, - "test_namestore_api_%s.conf", - plugin_name); - GNUNET_DISK_purge_cfg_dir (cfg_name, - "GNUNET_TEST_HOME"); + SETUP_CFG (plugin_name, cfg_name); res = 1; if (0 != GNUNET_TESTING_peer_run ("test-namestore-api-zone-iteration-stop", -- cgit v1.2.3