getting mysql to work
[oweals/gnunet.git] / src / datastore / test_datastore_api_management.c
index 22d4aff25c40f74273e413b00225804fdf057d1e..d0278094f8a32a9fbdd81604a13df04c550178ca 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -33,7 +33,7 @@
 /**
  * How long until we give up on transmitting the message?
  */
 /**
  * How long until we give up on transmitting the message?
  */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 15)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60)
 
 /**
  * Number of iterations to run; must be large enough
 
 /**
  * Number of iterations to run; must be large enough
@@ -47,6 +47,7 @@ static struct GNUNET_TIME_Absolute now;
 
 static int ok;
 
 
 static int ok;
 
+static const char* plugin_name;
 
 static size_t
 get_size (int i)
 
 static size_t
 get_size (int i)
@@ -111,7 +112,6 @@ struct CpsRunContext
   struct GNUNET_SCHEDULER_Handle *sched;
   const struct GNUNET_CONFIGURATION_Handle *cfg;
   void *data;
   struct GNUNET_SCHEDULER_Handle *sched;
   const struct GNUNET_CONFIGURATION_Handle *cfg;
   void *data;
-  size_t size;
   enum RunPhase phase;
 };
 
   enum RunPhase phase;
 };
 
@@ -134,7 +134,6 @@ check_success (void *cls,
   GNUNET_free_non_null (crc->data);
   crc->data = NULL;
   GNUNET_SCHEDULER_add_continuation (crc->sched,
   GNUNET_free_non_null (crc->data);
   crc->data = NULL;
   GNUNET_SCHEDULER_add_continuation (crc->sched,
-                                    GNUNET_NO,
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -146,7 +145,7 @@ check_value (void *cls,
             const GNUNET_HashCode * key,
             uint32_t size,
             const void *data,
             const GNUNET_HashCode * key,
             uint32_t size,
             const void *data,
-            uint32_t type,
+            enum GNUNET_BLOCK_Type type,
             uint32_t priority,
             uint32_t anonymity,
             struct GNUNET_TIME_Absolute
             uint32_t priority,
             uint32_t anonymity,
             struct GNUNET_TIME_Absolute
@@ -172,7 +171,6 @@ check_value (void *cls,
       if (0 == crc->i)
        crc->phase = RP_DONE;
       GNUNET_SCHEDULER_add_continuation (crc->sched,
       if (0 == crc->i)
        crc->phase = RP_DONE;
       GNUNET_SCHEDULER_add_continuation (crc->sched,
-                                        GNUNET_NO,
                                         &run_continuation,
                                         crc,
                                         GNUNET_SCHEDULER_REASON_PREREQ_DONE);
                                         &run_continuation,
                                         crc,
                                         GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -192,14 +190,14 @@ check_value (void *cls,
 
 static void 
 check_nothing (void *cls,
 
 static void 
 check_nothing (void *cls,
-            const GNUNET_HashCode * key,
-            uint32_t size,
-            const void *data,
-            uint32_t type,
-            uint32_t priority,
-            uint32_t anonymity,
-            struct GNUNET_TIME_Absolute
-            expiration, uint64_t uid)
+              const GNUNET_HashCode * key,
+              uint32_t size,
+              const void *data,
+              enum GNUNET_BLOCK_Type type,
+              uint32_t priority,
+              uint32_t anonymity,
+              struct GNUNET_TIME_Absolute
+              expiration, uint64_t uid)
 {
   struct CpsRunContext *crc = cls;
 
 {
   struct CpsRunContext *crc = cls;
 
@@ -207,7 +205,6 @@ check_nothing (void *cls,
   if (0 == --crc->i)
     crc->phase = RP_DONE;
   GNUNET_SCHEDULER_add_continuation (crc->sched,
   if (0 == --crc->i)
     crc->phase = RP_DONE;
   GNUNET_SCHEDULER_add_continuation (crc->sched,
-                                    GNUNET_NO,
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -239,7 +236,7 @@ run_continuation (void *cls,
                            get_priority (crc->i),
                            get_anonymity (crc->i),
                            get_expiration (crc->i),
                            get_priority (crc->i),
                            get_anonymity (crc->i),
                            get_expiration (crc->i),
-                           TIMEOUT,
+                           1, 1, TIMEOUT,
                            &check_success,
                            crc);
       crc->i++;
                            &check_success,
                            crc);
       crc->i++;
@@ -263,9 +260,9 @@ run_continuation (void *cls,
       GNUNET_DATASTORE_get (datastore, 
                            &crc->key,
                            get_type (crc->i),
       GNUNET_DATASTORE_get (datastore, 
                            &crc->key,
                            get_type (crc->i),
+                           1, 1, TIMEOUT,
                            &check_value,
                            &check_value,
-                           crc,
-                           TIMEOUT);
+                           crc);
       break;
     case RP_GET_FAIL:
 #if VERBOSE
       break;
     case RP_GET_FAIL:
 #if VERBOSE
@@ -278,9 +275,9 @@ run_continuation (void *cls,
       GNUNET_DATASTORE_get (datastore, 
                            &crc->key,
                            get_type (crc->i),
       GNUNET_DATASTORE_get (datastore, 
                            &crc->key,
                            get_type (crc->i),
+                           1, 1, TIMEOUT,
                            &check_nothing,
                            &check_nothing,
-                           crc,
-                           TIMEOUT);
+                           crc);
       break;
     case RP_DONE:
       GNUNET_assert (0 == crc->i);
       break;
     case RP_DONE:
       GNUNET_assert (0 == crc->i);
@@ -311,7 +308,6 @@ run (void *cls,
   now = GNUNET_TIME_absolute_get ();
   datastore = GNUNET_DATASTORE_connect (cfg, sched);
   GNUNET_SCHEDULER_add_continuation (crc->sched,
   now = GNUNET_TIME_absolute_get ();
   datastore = GNUNET_DATASTORE_connect (cfg, sched);
   GNUNET_SCHEDULER_add_continuation (crc->sched,
-                                    GNUNET_NO,
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
                                     &run_continuation,
                                     crc,
                                     GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -324,9 +320,11 @@ static int
 check ()
 {
   pid_t pid;
 check ()
 {
   pid_t pid;
-  char *const argv[] = { "test-datastore-api-management",
+  char cfg_name[128];
+  char *const argv[] = { 
+    "test-datastore-api-management",
     "-c",
     "-c",
-    "test_datastore_api_data.conf",
+    cfg_name,
 #if VERBOSE
     "-L", "DEBUG",
 #endif
 #if VERBOSE
     "-L", "DEBUG",
 #endif
@@ -335,13 +333,16 @@ check ()
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-  pid = GNUNET_OS_start_process ("gnunet-service-datastore",
-                                 "gnunet-service-datastore",
+  GNUNET_snprintf (cfg_name,
+                  sizeof (cfg_name),
+                  "test_datastore_api_data_%s.conf",
+                  plugin_name);
+  pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm",
+                                 "gnunet-service-arm",
 #if VERBOSE
                                  "-L", "DEBUG",
 #endif
 #if VERBOSE
                                  "-L", "DEBUG",
 #endif
-                                 "-c", "test_datastore_api_data.conf", NULL);
-  sleep (1);
+                                 "-c", cfg_name, NULL);
   GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
                       argv, "test-datastore-api", "nohelp",
                       options, &run, NULL);
   GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
                       argv, "test-datastore-api", "nohelp",
                       options, &run, NULL);
@@ -361,8 +362,20 @@ main (int argc, char *argv[])
 {
   int ret;
   
 {
   int ret;
   
-  GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore");
-  GNUNET_log_setup ("test-datastore-api",
+  const char *pos;
+  char dir_name[128];
+
+  /* determine name of plugin to use */
+  plugin_name = argv[0];
+  while (NULL != (pos = strstr(plugin_name, "_")))
+    plugin_name = pos+1;
+
+  GNUNET_snprintf (dir_name,
+                  sizeof (dir_name),
+                  "/tmp/test-gnunet-datastore-%s",
+                  plugin_name);
+  GNUNET_DISK_directory_remove (dir_name);
+  GNUNET_log_setup ("test-datastore-api-management",
 #if VERBOSE
                     "DEBUG",
 #else
 #if VERBOSE
                     "DEBUG",
 #else
@@ -370,10 +383,8 @@ main (int argc, char *argv[])
 #endif
                     NULL);
   ret = check ();
 #endif
                     NULL);
   ret = check ();
-  GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore");
+  GNUNET_DISK_directory_remove (dir_name);
   return ret;
 }
 
   return ret;
 }
 
-
-
 /* end of test_datastore_api_management.c */
 /* end of test_datastore_api_management.c */