[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
- [GNUnet-SVN] [gnunet] branch master updated: avoid failing hard if 'gnunetcheck' db does not exist (or plugins cannot be loaded for other reasons),
gnunet <=