do not autostart nse
[oweals/gnunet.git] / src / peerinfo / perf_peerinfo_api.c
index e10b308a7f36293eb0802ca6fd3d404b3181b56f..4f490671eba00d032cb0f1627c9b59907ec68ac0 100755 (executable)
 #include "gnunet_program_lib.h"
 #include "gnunet_time_lib.h"
 #include "peerinfo.h"
+#include <gauger.h>
 
 #define START_SERVICE 1
 
 #define NUM_REQUESTS 5000
 
-static struct GNUNET_SCHEDULER_Handle *sched;
-
 static const struct GNUNET_CONFIGURATION_Handle *cfg;
 
 static struct GNUNET_PEERINFO_IteratorContext *ic[NUM_REQUESTS];
@@ -95,9 +94,7 @@ add_peer (size_t i)
   struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pkey;
   struct GNUNET_PeerIdentity pid;
   struct GNUNET_HELLO_Message *h2;
-  size_t agc;
 
-  agc = 2;
   memset (&pkey, i, sizeof (pkey));
   GNUNET_CRYPTO_hash (&pkey, sizeof (pkey), &pid.hashPubKey);
   h2 = GNUNET_HELLO_create (&pkey, &address_generator, &i);
@@ -109,7 +106,8 @@ add_peer (size_t i)
 static void
 process (void *cls,
          const struct GNUNET_PeerIdentity *peer,
-         const struct GNUNET_HELLO_Message *hello)
+         const struct GNUNET_HELLO_Message *hello,
+         const char * err_msg)
 {
   if (peer == NULL)
     {
@@ -132,15 +130,13 @@ process (void *cls,
 
 static void
 run (void *cls,
-     struct GNUNET_SCHEDULER_Handle *s,
      char *const *args,
      const char *cfgfile, 
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
   size_t i;
-  sched = s;
   cfg = c;
-  h = GNUNET_PEERINFO_connect (sched, cfg);
+  h = GNUNET_PEERINFO_connect (cfg);
   GNUNET_assert (h != NULL);
   for (i = 0; i < NUM_REQUESTS; i++)
     {
@@ -157,40 +153,49 @@ static int
 check ()
 {
   int ok = 0;
-  char *const argv[] = { "test-peerinfo-hammer",
+  char *const argv[] = { "perf-peerinfo-api",
     "-c",
     "test_peerinfo_api_data.conf",
 #if DEBUG_PEERINFO
     "-L", "DEBUG",
+#else
+    "-L", "ERROR",
 #endif
     NULL
   };
 #if START_SERVICE
-  pid_t pid;
+  struct GNUNET_OS_Process *proc;
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-  pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-peerinfo",
+  proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-peerinfo",
                                  "gnunet-service-peerinfo",
 #if DEBUG_PEERINFO
                                  "-L", "DEBUG",
+#else
+                               "-L", "ERROR",
 #endif
                                  "-c", "test_peerinfo_api_data.conf", NULL);
 #endif
+  GNUNET_assert (NULL != proc);
   GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
-                      argv, "test-peerinfo-api", "nohelp",
+                      argv, "perf-peerinfo-api", "nohelp",
                       options, &run, &ok);
   fprintf (stderr,
           "Received %u/%u calls before timeout\n",
           numpeers,
           NUM_REQUESTS * NUM_REQUESTS / 2);
+  GAUGER ("PEERINFO", "Peerinfo lookups", numpeers / 30, "peers/s");
 #if START_SERVICE
-  if (0 != PLIBC_KILL (pid, SIGTERM))
+  if (0 != GNUNET_OS_process_kill (proc, SIGTERM))
     {
       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;
 }
@@ -201,7 +206,7 @@ main (int argc, char *argv[])
 {
   int ret = 0;
 
-  GNUNET_log_setup ("test_peerinfo_api",
+  GNUNET_log_setup ("perf_peerinfo_api",
 #if DEBUG_PEERINFO
                     "DEBUG",
 #else
@@ -213,4 +218,4 @@ main (int argc, char *argv[])
   return ret;
 }
 
-/* end of test_peerinfo_hammer.c */
+/* end of perf_peerinfo_api.c */