aboutsummaryrefslogtreecommitdiff
path: root/src/datastore/test_datastore_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-07-20 22:37:09 +0000
committerChristian Grothoff <christian@grothoff.org>2016-07-20 22:37:09 +0000
commitae9918852bed2d822c12e110d6b754520e601388 (patch)
treed7226f4d590fb9d456231469c075c11b41ce0cb3 /src/datastore/test_datastore_api.c
parent90c70e8315c4a366996da379f839dc84d21d5f38 (diff)
-skip mysql tests properly if mysql is not configured correctly
Diffstat (limited to 'src/datastore/test_datastore_api.c')
-rw-r--r--src/datastore/test_datastore_api.c68
1 files changed, 67 insertions, 1 deletions
diff --git a/src/datastore/test_datastore_api.c b/src/datastore/test_datastore_api.c
index 43f6e9fa6a..9f89d4087c 100644
--- a/src/datastore/test_datastore_api.c
+++ b/src/datastore/test_datastore_api.c
@@ -30,6 +30,7 @@
#include "gnunet_util_lib.h"
#include "gnunet_protocols.h"
#include "gnunet_datastore_service.h"
+#include "gnunet_datastore_plugin.h"
#include "gnunet_testing_lib.h"
@@ -651,6 +652,66 @@ run (void *cls,
/**
+ * Function invoked to notify service of disk utilization
+ * changes.
+ *
+ * @param cls closure
+ * @param delta change in disk utilization,
+ * 0 for "reset to empty"
+ */
+static void
+duc_dummy (void *cls,
+ int delta)
+{
+ /* intentionally empty */
+}
+
+
+/**
+ * check if plugin is actually working
+ */
+static int
+test_plugin (const char *cfg_name)
+{
+ char libname[128];
+ struct GNUNET_CONFIGURATION_Handle *cfg;
+ struct GNUNET_DATASTORE_PluginFunctions *api;
+ struct GNUNET_DATASTORE_PluginEnvironment env;
+
+ cfg = GNUNET_CONFIGURATION_create ();
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_load (cfg,
+ cfg_name))
+ {
+ GNUNET_CONFIGURATION_destroy (cfg);
+ fprintf (stderr,
+ "Failed to load configuration %s\n",
+ cfg_name);
+ return 1;
+ }
+ memset (&env, 0, sizeof (env));
+ env.cfg = cfg;
+ env.duc = &duc_dummy;
+ GNUNET_snprintf (libname,
+ sizeof (libname),
+ "libgnunet_plugin_datastore_%s",
+ plugin_name);
+ api = GNUNET_PLUGIN_load (libname, &env);
+ if (NULL == api)
+ {
+ GNUNET_CONFIGURATION_destroy (cfg);
+ fprintf (stderr,
+ "Failed to load plugin `%s'\n",
+ libname);
+ return 77;
+ }
+ GNUNET_PLUGIN_unload (libname, api);
+ GNUNET_CONFIGURATION_destroy (cfg);
+ return 0;
+}
+
+
+/**
* Entry point into the test. Determines which configuration / plugin
* we are running with based on the name of the binary and starts
* the peer.
@@ -664,12 +725,17 @@ main (int argc,
char *argv[])
{
char cfg_name[128];
-
+ int ret;
+
plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]);
GNUNET_snprintf (cfg_name,
sizeof (cfg_name),
"test_datastore_api_data_%s.conf",
plugin_name);
+ ret = test_plugin (cfg_name);
+ if (0 != ret)
+ return ret;
+ /* run actual test */
if (0 !=
GNUNET_TESTING_peer_run ("test-gnunet-datastore",
cfg_name,