gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] branch master updated: avoid failing hard if 'gnun


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: avoid failing hard if 'gnunetcheck' db does not exist (or plugins cannot be loaded for other reasons)
Date: Sun, 24 Feb 2019 10:28:21 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 0b5dc8a62 avoid failing hard if 'gnunetcheck' db does not exist  (or 
plugins cannot be loaded for other reasons)
0b5dc8a62 is described below

commit 0b5dc8a620fca8dbca9c122594b70267e404859f
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun Feb 24 10:28:16 2019 +0100

    avoid failing hard if 'gnunetcheck' db does not exist
     (or plugins cannot be loaded for other reasons)
---
 src/namestore/Makefile.am                          |  1 +
 src/namestore/perf_namestore_api_zone_iteration.c  | 17 +++--
 src/namestore/test_common.c                        | 89 ++++++++++++++++++++++
 src/namestore/test_namestore_api_lookup_nick.c     |  9 +--
 src/namestore/test_namestore_api_lookup_private.c  | 10 +--
 src/namestore/test_namestore_api_lookup_public.c   | 10 +--
 .../test_namestore_api_lookup_shadow_filter.c      | 10 +--
 src/namestore/test_namestore_api_monitoring.c      | 10 +--
 src/namestore/test_namestore_api_store.c           | 11 +--
 src/namestore/test_namestore_api_store_update.c    | 10 +--
 src/namestore/test_namestore_api_zone_iteration.c  | 16 ++--
 11 files changed, 134 insertions(+), 59 deletions(-)

diff --git a/src/namestore/Makefile.am b/src/namestore/Makefile.am
index c9ff763fd..ac4eebd06 100644
--- a/src/namestore/Makefile.am
+++ b/src/namestore/Makefile.am
@@ -662,6 +662,7 @@ check_SCRIPTS = \
   test_namestore_delete.sh
 
 EXTRA_DIST = \
+  test_common.c \
   test_namestore_api.conf \
   test_namestore_api_postgres.conf \
   test_namestore_api_sqlite.conf \
diff --git a/src/namestore/perf_namestore_api_zone_iteration.c 
b/src/namestore/perf_namestore_api_zone_iteration.c
index 505f624df..5da958aad 100644
--- a/src/namestore/perf_namestore_api_zone_iteration.c
+++ b/src/namestore/perf_namestore_api_zone_iteration.c
@@ -276,7 +276,12 @@ put_cont (void *cls,
 {
   (void) cls;
   qe = NULL;
-  GNUNET_assert (GNUNET_OK == success);
+  if (GNUNET_OK != success)
+  {
+    GNUNET_break (0);
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
   t = GNUNET_SCHEDULER_add_now (&publish_record,
                                 NULL);
 }
@@ -349,6 +354,9 @@ run (void *cls,
 }
 
 
+#include "test_common.c"
+
+
 int
 main (int argc,
       char *argv[])
@@ -356,13 +364,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,
-                   "perf_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 ("perf-namestore-api-zone-iteration",
                                cfg_name,
diff --git a/src/namestore/test_common.c b/src/namestore/test_common.c
new file mode 100644
index 000000000..0dc6f9277
--- /dev/null
+++ b/src/namestore/test_common.c
@@ -0,0 +1,89 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2019 GNUnet e.V.
+
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     Affero General Public License for more details.
+    
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
+*/
+/**
+ * @file namestore/test_common.c
+ * @brief common functions for testcase setup
+ */
+
+/**
+ * test if we can load the plugin @a name.
+ */
+static int
+TNC_test_plugin (const char *cfg_name)
+{
+  char *database;
+  char *db_lib_name;
+  struct GNUNET_NAMESTORE_PluginFunctions *db;
+  struct GNUNET_CONFIGURATION_Handle *cfg;
+  
+  cfg = GNUNET_CONFIGURATION_create ();
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_load (cfg,
+                                cfg_name))
+  {
+    GNUNET_break (0);
+    GNUNET_CONFIGURATION_destroy (cfg);
+    return GNUNET_SYSERR;
+  }
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_string (cfg,
+                                             "namestore",
+                                             "database",
+                                             &database))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "No database backend configured\n");
+    GNUNET_CONFIGURATION_destroy (cfg);
+    return GNUNET_SYSERR;
+  }
+  GNUNET_asprintf (&db_lib_name,
+                   "libgnunet_plugin_namestore_%s",
+                   database);
+  db = GNUNET_PLUGIN_load (db_lib_name,
+                          (void *) cfg);
+  if (NULL != db)
+    GNUNET_break (NULL ==
+                 GNUNET_PLUGIN_unload (db_lib_name,
+                                       db));
+  GNUNET_free (db_lib_name);
+  GNUNET_CONFIGURATION_destroy (cfg);
+  if (NULL == db)
+    return GNUNET_NO;
+  return GNUNET_YES;
+}
+
+
+/**
+ * General setup logic for starting the tests.  Obtains the @a
+ * plugin_name and initializes the @a cfg_name.
+ */
+#define SETUP_CFG(plugin_name,cfg_name) do { \
+  plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); \
+  GNUNET_asprintf (&cfg_name, \
+                   "test_namestore_api_%s.conf", \
+                   plugin_name); \
+  if (! TNC_test_plugin (cfg_name)) \
+  { \
+    GNUNET_free (cfg_name); \
+    return 77; \
+  } \
+  GNUNET_DISK_purge_cfg_dir (cfg_name, \
+                             "GNUNET_TEST_HOME"); \
+  } while (0)
diff --git a/src/namestore/test_namestore_api_lookup_nick.c 
b/src/namestore/test_namestore_api_lookup_nick.c
index 8f2896359..1257701e9 100644
--- a/src/namestore/test_namestore_api_lookup_nick.c
+++ b/src/namestore/test_namestore_api_lookup_nick.c
@@ -306,6 +306,8 @@ run (void *cls,
   }
 }
 
+#include "test_common.c"
+
 
 int
 main (int argc, char *argv[])
@@ -313,12 +315,7 @@ 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-lookup-nick",
diff --git a/src/namestore/test_namestore_api_lookup_private.c 
b/src/namestore/test_namestore_api_lookup_private.c
index 0730db04c..2615f52c8 100644
--- a/src/namestore/test_namestore_api_lookup_private.c
+++ b/src/namestore/test_namestore_api_lookup_private.c
@@ -223,18 +223,16 @@ 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);
-  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-lookup-private",
diff --git a/src/namestore/test_namestore_api_lookup_public.c 
b/src/namestore/test_namestore_api_lookup_public.c
index 2a75d42f3..460be0a18 100644
--- a/src/namestore/test_namestore_api_lookup_public.c
+++ b/src/namestore/test_namestore_api_lookup_public.c
@@ -223,18 +223,16 @@ 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);
-  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",
diff --git a/src/namestore/test_namestore_api_lookup_shadow_filter.c 
b/src/namestore/test_namestore_api_lookup_shadow_filter.c
index 0347eafcc..3d1dbfacf 100644
--- a/src/namestore/test_namestore_api_lookup_shadow_filter.c
+++ b/src/namestore/test_namestore_api_lookup_shadow_filter.c
@@ -333,18 +333,16 @@ 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);
-  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-lookup-shadow-filter",
diff --git a/src/namestore/test_namestore_api_monitoring.c 
b/src/namestore/test_namestore_api_monitoring.c
index 4aed21d86..c85ec8457 100644
--- a/src/namestore/test_namestore_api_monitoring.c
+++ b/src/namestore/test_namestore_api_monitoring.c
@@ -363,6 +363,9 @@ run (void *cls,
 }
 
 
+#include "test_common.c"
+
+
 int
 main (int argc,
       char *argv[])
@@ -370,12 +373,7 @@ 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);
-  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-monitoring",
diff --git a/src/namestore/test_namestore_api_store.c 
b/src/namestore/test_namestore_api_store.c
index 4fe77a2c6..0dbad8ce3 100644
--- a/src/namestore/test_namestore_api_store.c
+++ b/src/namestore/test_namestore_api_store.c
@@ -144,24 +144,21 @@ run (void *cls,
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
              _("Namestore cannot store no block\n"));
   }
-
   GNUNET_free ((void *)rd.data);
 }
 
 
+#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",
                                cfg_name,
diff --git a/src/namestore/test_namestore_api_store_update.c 
b/src/namestore/test_namestore_api_store_update.c
index aad5852e9..b1c0770ae 100644
--- a/src/namestore/test_namestore_api_store_update.c
+++ b/src/namestore/test_namestore_api_store_update.c
@@ -283,6 +283,9 @@ run (void *cls,
 }
 
 
+#include "test_common.c"
+
+
 int
 main (int argc,
       char *argv[])
@@ -290,13 +293,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-store-update",
                                cfg_name,
diff --git a/src/namestore/test_namestore_api_zone_iteration.c 
b/src/namestore/test_namestore_api_zone_iteration.c
index d09505db1..fa641954b 100644
--- a/src/namestore/test_namestore_api_zone_iteration.c
+++ b/src/namestore/test_namestore_api_zone_iteration.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 (NULL != s_rd_1)
   {
     GNUNET_free ((void *)s_rd_1->data);
@@ -466,18 +466,16 @@ 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);
-  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",

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]