-fixing speedup test
[oweals/gnunet.git] / src / util / test_speedup.c
index 47603d35c936f0d33443e437f87631c8a04306d5..03cffbd54abd0d3b819afb6f1862f0a6bb3f212f 100644 (file)
 #include "gnunet_time_lib.h"
 #include "gnunet_strings_lib.h"
 
-
-#define VERBOSE GNUNET_NO
-
+/**
+ * Start time of the testcase
+ */
 static struct GNUNET_TIME_Absolute start;
+
+/**
+ * End-time of the testcase (affected by speed-up)
+ */
 static struct GNUNET_TIME_Absolute end;
-static int cycles;
 
+/**
+ * Number of cycles we have spent in 'run'.
+ */
+static unsigned int cycles;
+
+
+/**
+ * Main task that is scheduled with the speed-up.
+ *
+ * @param cls NULL
+ * @param tc scheduler context, unused
+ */
 static void
 run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-
-  cycles ++;
-  printf ("..%u", cycles);
-  fflush(stdout);
+  cycles++;
+  fprintf (stderr, "..%u", cycles);
   if (cycles <= 5)
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &run, NULL);
-  else
   {
-    end = GNUNET_TIME_absolute_get();
-    printf ("\n");
-    fflush(stdout);
+    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &run, NULL);
+    return;
   }
+  end = GNUNET_TIME_absolute_get();
+  fprintf (stderr, "\n");
+  fflush(stdout);  
 }
 
-void check (void *cls, char *const *args,
-                                     const char *cfgfile,
-                                     const struct GNUNET_CONFIGURATION_Handle *
-                                     cfg)
+
+/**
+ *
+ */
+static void 
+check (void *cls, char *const *args,
+       const char *cfgfile,
+       const struct GNUNET_CONFIGURATION_Handle *
+       cfg)
 {
-  printf ("0");
+  fprintf (stderr, "0");
   fflush(stdout);
   GNUNET_SCHEDULER_add_now(&run, NULL);
 }
@@ -65,42 +83,38 @@ void check (void *cls, char *const *args,
 int
 main (int argc, char *argv[])
 {
-  time_t start_real;
-  time_t end_real;
-  struct GNUNET_TIME_Relative delta;
-
   static char *const argvn[] = { "test-speedup",
-    "-c",
-    "test_speedup_data.conf",
-#if VERBOSE
-    "-L", "DEBUG",
-#endif
+    "-c",  "test_speedup_data.conf",
     NULL
   };
-  start_real = time (NULL);
-  start = GNUNET_TIME_absolute_get();
   static struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-
+  time_t start_real;
+  time_t end_real;
+  struct GNUNET_TIME_Relative delta;
+  
+  start_real = time (NULL);
+  start = GNUNET_TIME_absolute_get();
   GNUNET_PROGRAM_run ((sizeof (argvn) / sizeof (char *)) - 1, argvn, "test-speedup",
                       "nohelp", options, &check, NULL);
 
   end_real = time (NULL);
   delta = GNUNET_TIME_absolute_get_difference(start, end);
 
-  if (delta.rel_value >  ((end_real - start_real) * 1500))
+  if (delta.rel_value >  ((end_real - start_real) * 1500LL))
   {
-    GNUNET_log  (GNUNET_ERROR_TYPE_DEBUG, "Execution time in GNUnet time: %llu ms\n", delta.rel_value);
-    GNUNET_log  (GNUNET_ERROR_TYPE_DEBUG, "Execution time in system time: %llu ms\n", (end_real - start_real) * 1000);
+    GNUNET_log  (GNUNET_ERROR_TYPE_DEBUG, "Execution time in GNUnet time: %llu ms\n", 
+                (unsigned long long) delta.rel_value);
+    GNUNET_log  (GNUNET_ERROR_TYPE_DEBUG, "Execution time in system time: %llu ms\n", 
+                (unsigned long long) ((end_real - start_real) * 1000LL));
     return 0;
   }
-  else
-  {
-    GNUNET_log  (GNUNET_ERROR_TYPE_ERROR, "Execution time in GNUnet time: %llu ms\n", delta.rel_value);
-    GNUNET_log  (GNUNET_ERROR_TYPE_ERROR, "Execution time in system time: %llu ms\n", (end_real - start_real) * 1000);
-    return 1;
-  }
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Execution time in GNUnet time: %llu ms\n", 
+             (unsigned long long) delta.rel_value);
+  GNUNET_log  (GNUNET_ERROR_TYPE_ERROR, "Execution time in system time: %llu ms\n", 
+              (unsigned long long) ((end_real - start_real) * 1000LL));
+  return 1;
 }
 
 /* end of test_speedup.c */