-doxygen, indentation
[oweals/gnunet.git] / src / statistics / test_statistics_api.c
index f231bec6fc5c1654a12635f8cd4463063851cb24..aa9088f3595daba78daf5c04a97a93eaf8e737df 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
 /*
      This file is part of GNUnet.
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     (C) 2009, 2012 Christian Grothoff (and other contributing authors)
 
      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
 /**
  * @file statistics/test_statistics_api.c
  * @brief testcase for statistics_api.c
 /**
  * @file statistics/test_statistics_api.c
  * @brief testcase for statistics_api.c
+ * @author Christian Grothoff
  */
 #include "platform.h"
  */
 #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
+
+static struct GNUNET_STATISTICS_Handle *h;
+
 
 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_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);
@@ -43,11 +43,13 @@ check_1 (void *cls,
   return GNUNET_OK;
 }
 
   return GNUNET_OK;
 }
 
+
 static int
 static int
-check_2 (void *cls,
-         const char *subsystem,
-         const char *name, uint64_t value, int is_persistent)
+check_2 (void *cls, const char *subsystem, 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);
@@ -55,11 +57,13 @@ check_2 (void *cls,
   return GNUNET_OK;
 }
 
   return GNUNET_OK;
 }
 
+
 static int
 static int
-check_3 (void *cls,
-         const char *subsystem,
-         const char *name, uint64_t value, int is_persistent)
+check_3 (void *cls, const char *subsystem, 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);
@@ -67,7 +71,6 @@ check_3 (void *cls,
   return GNUNET_OK;
 }
 
   return GNUNET_OK;
 }
 
-static struct GNUNET_STATISTICS_Handle *h;
 
 static void
 next_fin (void *cls, int success)
 
 static void
 next_fin (void *cls, int success)
@@ -79,101 +82,109 @@ next_fin (void *cls, int success)
   *ok = 0;
 }
 
   *ok = 0;
 }
 
+
 static void
 next (void *cls, int success)
 {
   GNUNET_assert (success == GNUNET_OK);
 static void
 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
 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)
 {
-
-  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
 static void
-run_more (void *cls,
-          struct GNUNET_SCHEDULER_Handle *sched,
-          char *const *args,
-          const char *cfgfile,
-         const struct GNUNET_CONFIGURATION_Handle *cfg)
+run_more (void *cls, 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
+main (int argc, char *argv_ign[])
 {
   int ok = 1;
 {
   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",
+    "-L", "WARNING",
     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",
-                                 "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",
-                      options, &run, &ok);
-  if (0 != PLIBC_KILL (pid, SIGTERM))
-    {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
-      ok = 1;
-    }
-  GNUNET_OS_process_wait(pid);
+  struct GNUNET_OS_Process *proc;
+  char *binary;
+
+  GNUNET_log_setup ("test_statistics_api",
+                    "WARNING",
+                    NULL);
+  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 (5, 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;
   if (ok != 0)
   if (ok != 0)
+  {
+    GNUNET_free (binary);
     return ok;
     return ok;
+  }
   ok = 1;
   /* restart to check persistence! */
   ok = 1;
   /* restart to check persistence! */
-  pid = GNUNET_OS_start_process ("gnunet-service-statistics",
-                                 "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",
-                      options, &run_more, &ok);
-  if (0 != PLIBC_KILL (pid, SIGTERM))
-    {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
-      ok = 1;
-    }
-  GNUNET_OS_process_wait(pid);
+  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_PROGRAM_run (5, argv, "test-statistics-api", "nohelp", options,
+                      &run_more, &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.c */
 /* end of test_statistics_api.c */