fix #3284: support lib/MULTIARCH/ paths in installation, use GNUNET_PREFIX=@libdir...
[oweals/gnunet.git] / src / statistics / test_statistics_api_loop.c
index b70e92bdc98dc016f40e891fff897a4fd3446c6f..7a7b44c1fc43725cbdff09df645cb7055b44224a 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
  * @brief testcase for statistics_api.c
  */
 #include "platform.h"
  * @brief testcase for statistics_api.c
  */
 #include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_getopt_lib.h"
-#include "gnunet_os_lib.h"
-#include "gnunet_program_lib.h"
-#include "gnunet_scheduler_lib.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_statistics_service.h"
 
 #include "gnunet_statistics_service.h"
 
-#define VERBOSE GNUNET_NO
+#define ROUNDS (1024 * 1024)
 
 
-#define START_SERVICE GNUNET_YES
+static struct GNUNET_STATISTICS_Handle *h;
 
 
-#define ROUNDS (1024 * 1024)
 
 static int
 
 static int
-check_1 (void *cls,
-         const char *subsystem,
-         const char *name, uint64_t value, int is_persistent)
+check_1 (void *cls, const char *subsystem, const char *name, uint64_t value,
+         int is_persistent)
 {
   GNUNET_assert (0 == strcmp (name, "test-0"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api-loop"));
 {
   GNUNET_assert (0 == strcmp (name, "test-0"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api-loop"));
@@ -46,7 +40,6 @@ check_1 (void *cls,
   return GNUNET_OK;
 }
 
   return GNUNET_OK;
 }
 
-static struct GNUNET_STATISTICS_Handle *h;
 
 static void
 next (void *cls, int success)
 
 static void
 next (void *cls, int success)
@@ -58,35 +51,35 @@ next (void *cls, int success)
   *ok = 0;
 }
 
   *ok = 0;
 }
 
+
 static void
 static void
-run (void *cls,
-     struct GNUNET_SCHEDULER_Handle *sched,
-     char *const *args,
-     const char *cfgfile,
+run (void *cls, char *const *args, const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-  int i;
+  unsigned int i;
   char name[128];
 
   char name[128];
 
-  h = GNUNET_STATISTICS_create (sched, "test-statistics-api-loop", cfg);
-  for (i=0;i<ROUNDS;i++)
-    {
-      GNUNET_snprintf (name, sizeof (name), "test-%d", i % 256);
-      GNUNET_STATISTICS_set (h, name, i, GNUNET_NO);
-      GNUNET_snprintf (name, sizeof (name), "test-%d", i % 128);
-      GNUNET_STATISTICS_update (h, name, 1, GNUNET_NO);
-    }
+  h = GNUNET_STATISTICS_create ("test-statistics-api-loop", cfg);
+  for (i = 0; i < ROUNDS; i++)
+  {
+    GNUNET_snprintf (name, sizeof (name), "test-%d", i % 256);
+    GNUNET_STATISTICS_set (h, name, i, GNUNET_NO);
+    GNUNET_snprintf (name, sizeof (name), "test-%d", i % 128);
+    GNUNET_STATISTICS_update (h, name, 1, GNUNET_NO);
+  }
   i = 0;
   i = 0;
-  GNUNET_break (NULL != 
-               GNUNET_STATISTICS_get (h, NULL, "test-0",
-                                      GNUNET_TIME_UNIT_SECONDS, &next, &check_1, cls));
+  GNUNET_break (NULL !=
+                GNUNET_STATISTICS_get (h, NULL, "test-0",
+                                       GNUNET_TIME_UNIT_MINUTES, &next,
+                                       &check_1, cls));
 }
 
 
 }
 
 
-static int
-check ()
+int
+main (int argc, char *argv_ign[])
 {
   int ok = 1;
 {
   int ok = 1;
+
   char *const argv[] = { "test-statistics-api",
     "-c",
     "test_statistics_api_data.conf",
   char *const argv[] = { "test-statistics-api",
     "-c",
     "test_statistics_api_data.conf",
@@ -95,36 +88,29 @@ check ()
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-#if START_SERVICE
-  pid_t pid;
-  pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-statistics",
-                                 "gnunet-service-statistics",
-#if DEBUG_STATISTICS
-                                 "-L", "DEBUG",
-#endif
-                                 "-c", "test_statistics_api_data.conf", NULL);
-#endif
-  GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp",
-                      options, &run, &ok);
-#if START_SERVICE
-  if (0 != PLIBC_KILL (pid, SIGTERM))
-    {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
-      ok = 1;
-    }
-  GNUNET_OS_process_wait(pid);
-#endif
+  struct GNUNET_OS_Process *proc;
+  char *binary;
+
+  binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-statistics");
+  proc =
+    GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR,
+                            NULL, NULL,
+                            binary,
+                            "gnunet-service-statistics",
+                            "-c", "test_statistics_api_data.conf", NULL);
+  GNUNET_assert (NULL != proc);
+  GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp", options, &run,
+                      &ok);
+  if (0 != GNUNET_OS_process_kill (proc, GNUNET_TERM_SIG))
+  {
+    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
+    ok = 1;
+  }
+  GNUNET_OS_process_wait (proc);
+  GNUNET_OS_process_destroy (proc);
+  proc = NULL;
+  GNUNET_free (binary);
   return ok;
 }
 
   return ok;
 }
 
-int
-main (int argc, char *argv[])
-{
-  int ret;
-
-  ret = check ();
-
-  return ret;
-}
-
 /* end of test_statistics_api_loop.c */
 /* end of test_statistics_api_loop.c */