gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r37557 - gnunet/src/datastore


From: gnunet
Subject: [GNUnet-SVN] r37557 - gnunet/src/datastore
Date: Thu, 21 Jul 2016 00:37:09 +0200

Author: grothoff
Date: 2016-07-21 00:37:09 +0200 (Thu, 21 Jul 2016)
New Revision: 37557

Modified:
   gnunet/src/datastore/test_datastore_api.c
   gnunet/src/datastore/test_datastore_api_management.c
Log:
-skip mysql tests properly if mysql is not configured correctly

Modified: gnunet/src/datastore/test_datastore_api.c
===================================================================
--- gnunet/src/datastore/test_datastore_api.c   2016-07-20 17:13:26 UTC (rev 
37556)
+++ gnunet/src/datastore/test_datastore_api.c   2016-07-20 22:37:09 UTC (rev 
37557)
@@ -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 @@
 
 
 /**
+ * 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 @@
       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,

Modified: gnunet/src/datastore/test_datastore_api_management.c
===================================================================
--- gnunet/src/datastore/test_datastore_api_management.c        2016-07-20 
17:13:26 UTC (rev 37556)
+++ gnunet/src/datastore/test_datastore_api_management.c        2016-07-20 
22:37:09 UTC (rev 37557)
@@ -26,6 +26,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"
 
 
@@ -296,14 +297,63 @@
 }
 
 
+/**
+ * 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;
+  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;
+}
+
+
 int
 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);
+  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;
   if (0 !=
       GNUNET_TESTING_peer_run ("test-gnunet-datastore-management",
                               cfg_name,




reply via email to

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