not needed
[oweals/gnunet.git] / src / statistics / test_statistics_api.c
index 97e2f59c74dab76b05b42d646a9432ffc87d87b0..fff2b78b74a4193627083e4538ea6aebc3ed8ab5 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
 #include "gnunet_scheduler_lib.h"
 #include "gnunet_statistics_service.h"
 
 #include "gnunet_scheduler_lib.h"
 #include "gnunet_statistics_service.h"
 
-#define VERBOSE GNUNET_NO
+#define DEBUG_STATISTICS GNUNET_NO
+
+#define START_SERVICE GNUNET_YES
 
 static int
 check_1 (void *cls,
          const char *subsystem,
 
 static int
 check_1 (void *cls,
          const char *subsystem,
-         const char *name, unsigned long long value, int is_persistent)
+         const char *name, uint64_t value, int is_persistent)
 {
 {
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Received value %llu for `%s:%s\n",
+             (unsigned long long) value,
+             subsystem,
+             name);
   GNUNET_assert (0 == strcmp (name, "test-1"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 1);
   GNUNET_assert (0 == strcmp (name, "test-1"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 1);
@@ -46,8 +53,13 @@ check_1 (void *cls,
 static int
 check_2 (void *cls,
          const char *subsystem,
 static int
 check_2 (void *cls,
          const char *subsystem,
-         const char *name, unsigned long long value, int is_persistent)
+         const char *name, uint64_t value, int is_persistent)
 {
 {
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Received value %llu for `%s:%s\n",
+             (unsigned long long) value,
+             subsystem,
+             name);
   GNUNET_assert (0 == strcmp (name, "test-2"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 2);
   GNUNET_assert (0 == strcmp (name, "test-2"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 2);
@@ -58,8 +70,13 @@ check_2 (void *cls,
 static int
 check_3 (void *cls,
          const char *subsystem,
 static int
 check_3 (void *cls,
          const char *subsystem,
-         const char *name, unsigned long long value, int is_persistent)
+         const char *name, uint64_t value, int is_persistent)
 {
 {
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Received value %llu for `%s:%s\n",
+             (unsigned long long) value,
+             subsystem,
+             name);
   GNUNET_assert (0 == strcmp (name, "test-3"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 3);
   GNUNET_assert (0 == strcmp (name, "test-3"));
   GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api"));
   GNUNET_assert (value == 3);
@@ -74,7 +91,7 @@ next_fin (void *cls, int success)
 {
   int *ok = cls;
 
 {
   int *ok = cls;
 
-  GNUNET_STATISTICS_destroy (h);
+  GNUNET_STATISTICS_destroy (h, GNUNET_NO);
   GNUNET_assert (success == GNUNET_OK);
   *ok = 0;
 }
   GNUNET_assert (success == GNUNET_OK);
   *ok = 0;
 }
@@ -83,86 +100,106 @@ static void
 next (void *cls, int success)
 {
   GNUNET_assert (success == GNUNET_OK);
 next (void *cls, int success)
 {
   GNUNET_assert (success == GNUNET_OK);
-  GNUNET_STATISTICS_get (h, NULL, "test-2",
-                         GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_2, cls);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Issuing GET request\n");       
+  GNUNET_break (NULL !=
+               GNUNET_STATISTICS_get (h, NULL, "test-2",
+                                      GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_2, cls));
 }
 
 static void
 run (void *cls,
 }
 
 static void
 run (void *cls,
-     struct GNUNET_SCHEDULER_Handle *sched,
      char *const *args,
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
      char *const *args,
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-
-  h = GNUNET_STATISTICS_create (sched, "test-statistics-api", cfg);
+  h = GNUNET_STATISTICS_create ("test-statistics-api", cfg);
   GNUNET_STATISTICS_set (h, "test-1", 1, GNUNET_NO);
   GNUNET_STATISTICS_set (h, "test-2", 2, GNUNET_NO);
   GNUNET_STATISTICS_set (h, "test-3", 2, GNUNET_NO);
   GNUNET_STATISTICS_update (h, "test-3", 1, GNUNET_YES);
   GNUNET_STATISTICS_set (h, "test-1", 1, GNUNET_NO);
   GNUNET_STATISTICS_set (h, "test-2", 2, GNUNET_NO);
   GNUNET_STATISTICS_set (h, "test-3", 2, GNUNET_NO);
   GNUNET_STATISTICS_update (h, "test-3", 1, GNUNET_YES);
-  GNUNET_STATISTICS_get (h, NULL, "test-1",
-                         GNUNET_TIME_UNIT_SECONDS, &next, &check_1, cls);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Issuing GET request\n");       
+  GNUNET_break (NULL != 
+               GNUNET_STATISTICS_get (h, NULL, "test-1",
+                                      GNUNET_TIME_UNIT_SECONDS, &next, &check_1, cls));
 }
 
 static void
 run_more (void *cls,
 }
 
 static void
 run_more (void *cls,
-          struct GNUNET_SCHEDULER_Handle *sched,
           char *const *args,
           const char *cfgfile,
          const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
           char *const *args,
           const char *cfgfile,
          const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-  h = GNUNET_STATISTICS_create (sched, "test-statistics-api", cfg);
-  GNUNET_STATISTICS_get (h, NULL, "test-3",
-                         GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_3, cls);
+  h = GNUNET_STATISTICS_create ("test-statistics-api", cfg);
+  GNUNET_break (NULL !=
+               GNUNET_STATISTICS_get (h, NULL, "test-3",
+                                      GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_3, cls));
 }
 
 static int
 check ()
 {
   int ok = 1;
 }
 
 static int
 check ()
 {
   int ok = 1;
-  pid_t pid;
   char *const argv[] = { "test-statistics-api",
     "-c",
     "test_statistics_api_data.conf",
   char *const argv[] = { "test-statistics-api",
     "-c",
     "test_statistics_api_data.conf",
+#if DEBUG_STATISTICS
+                        "-L", "DEBUG",
+#else
+                        "-L", "WARNING",
+#endif
     NULL
   };
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
     NULL
   };
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-  pid = GNUNET_OS_start_process ("gnunet-service-statistics",
+#if START_SERVICE
+  struct GNUNET_OS_Process *proc;
+  proc = 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);
                                  "gnunet-service-statistics",
 #if DEBUG_STATISTICS
                                  "-L", "DEBUG",
 #endif
                                  "-c", "test_statistics_api_data.conf", NULL);
-  sleep (1);
-  GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp",
+#endif
+  GNUNET_assert (NULL != proc);
+  GNUNET_PROGRAM_run (5, argv, "test-statistics-api", "nohelp",
                       options, &run, &ok);
                       options, &run, &ok);
-  if (0 != PLIBC_KILL (pid, SIGTERM))
+#if START_SERVICE
+  if (0 != GNUNET_OS_process_kill (proc, SIGTERM))
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
       ok = 1;
     }
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
       ok = 1;
     }
-  GNUNET_OS_process_wait(pid);
+  GNUNET_OS_process_wait (proc);
+  GNUNET_OS_process_close (proc);
+  proc = NULL;
+#endif
   if (ok != 0)
     return ok;
   ok = 1;
   if (ok != 0)
     return ok;
   ok = 1;
+#if START_SERVICE
   /* restart to check persistence! */
   /* restart to check persistence! */
-  pid = GNUNET_OS_start_process ("gnunet-service-statistics",
+  proc = 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);
                                  "gnunet-service-statistics",
 #if DEBUG_STATISTICS
                                  "-L", "DEBUG",
 #endif
                                  "-c", "test_statistics_api_data.conf", NULL);
-  sleep (1);
-  GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp",
+#endif
+  GNUNET_PROGRAM_run (5, argv, "test-statistics-api", "nohelp",
                       options, &run_more, &ok);
                       options, &run_more, &ok);
-  if (0 != PLIBC_KILL (pid, SIGTERM))
+#if START_SERVICE
+  if (0 != GNUNET_OS_process_kill (proc, SIGTERM))
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
       ok = 1;
     }
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
       ok = 1;
     }
-  GNUNET_OS_process_wait(pid);
+  GNUNET_OS_process_wait (proc);
+  GNUNET_OS_process_close (proc);
+  proc = NULL;
+#endif
   return ok;
 }
 
   return ok;
 }
 
@@ -171,6 +208,13 @@ main (int argc, char *argv[])
 {
   int ret;
 
 {
   int ret;
 
+  GNUNET_log_setup ("test_statistics_api", 
+#if DEBUG_STATISTICS
+                   "DEBUG",
+#else
+                   "WARNING",
+#endif
+                   NULL);
   ret = check ();
 
   return ret;
   ret = check ();
 
   return ret;