gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r31047 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r31047 - gnunet/src/ats
Date: Wed, 4 Dec 2013 18:35:11 +0100

Author: oehlmann
Date: 2013-12-04 18:35:11 +0100 (Wed, 04 Dec 2013)
New Revision: 31047

Modified:
   gnunet/src/ats/test_ats_solver_convergence.c
Log:
added file-output for plots

Modified: gnunet/src/ats/test_ats_solver_convergence.c
===================================================================
--- gnunet/src/ats/test_ats_solver_convergence.c        2013-12-04 17:09:22 UTC 
(rev 31046)
+++ gnunet/src/ats/test_ats_solver_convergence.c        2013-12-04 17:35:11 UTC 
(rev 31047)
@@ -19,7 +19,7 @@
  */
 /**
  * @file ats/test_ats_solver_add_address.c
- * @brief solver test:  add address, request address and wait for suggest
+ * @brief solver test:  add address, request address and wait for suggests, 
write data to file
  * @author Christian Grothoff
  * @author Matthias Wachs
  * @author Fabian Oehlmann
@@ -83,27 +83,27 @@
 /**
  * Seconds to run the test
  */
-unsigned int seconds;
+static unsigned int seconds;
 
 /**
  * When the test starts
  */
-struct GNUNET_TIME_Absolute time_start;
+static struct GNUNET_TIME_Absolute time_start;
 
 /**
  * Whether to write a data file
  */
-int write_data_file;
+static int write_data_file;
 
 /**
- * File handle
+ * File name
  */
-struct GNUNET_DISK_FileHandle *data_file_handle;
+static char *data_file_name;
 
 /**
- * File name
+ * Run name
  */
-char *data_file_name;
+static char *run_name;
 
 static int
 stat_cb(void *cls, const char *subsystem, const char *name, uint64_t value,
@@ -135,9 +135,6 @@
   /* Close data file */
   if (write_data_file)
   {
-    if (GNUNET_SYSERR == GNUNET_DISK_file_close (data_file_handle))
-      GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Cannot close log file '%s'\n",
-              data_file_name);
     GNUNET_free_non_null(data_file_name);
   }
 
@@ -164,6 +161,7 @@
 {
   struct GNUNET_TIME_Relative time_delta;
   char *data;
+  struct GNUNET_DISK_FileHandle *data_file_handle;
 
   GNUNET_assert (NULL != address);
   GNUNET_assert (NULL == session);
@@ -181,8 +179,22 @@
         (double) time_delta.rel_value_us / 1000000.,
               ntohl(bandwidth_in.value__)/1024,
               ntohl(bandwidth_out.value__)/1024);
-    if (GNUNET_SYSERR == GNUNET_DISK_file_write(data_file_handle, data, 
strlen(data)))
-              GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to file 
`%s'\n", data_file_name);
+    data_file_handle = GNUNET_DISK_file_open (data_file_name,
+        GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_APPEND,
+        GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 
GNUNET_DISK_PERM_USER_WRITE);
+    if (NULL == data_file_handle)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to file `%s'\n", 
data_file_name);
+    }
+    else
+    {
+      if (GNUNET_SYSERR == GNUNET_DISK_file_write(data_file_handle, data, 
strlen(data)))
+        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to file 
`%s'\n", data_file_name);
+      if (GNUNET_SYSERR == GNUNET_DISK_file_close (data_file_handle))
+        GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Cannot close log file '%s'\n",
+                data_file_name);
+    }
+
     GNUNET_free(data);
   }
 
@@ -206,10 +218,11 @@
 run (void *cls, const struct GNUNET_CONFIGURATION_Handle *mycfg,
     struct GNUNET_TESTING_Peer *peer)
 {
+  struct GNUNET_DISK_FileHandle *data_file_handle;
+
   stats = GNUNET_STATISTICS_create ("ats", mycfg);
   GNUNET_STATISTICS_watch (stats, "ats", "# addresses", &stat_cb, NULL);
 
-
   /* Connect to ATS scheduling */
   sched_ats = GNUNET_ATS_scheduling_init (mycfg, &address_suggest_cb, NULL);
   if (sched_ats == NULL)
@@ -219,17 +232,26 @@
     return;
   }
 
-  /* Set up file handle */
-  GNUNET_asprintf (&data_file_name, "test_convergence_s%d.data", seconds);
-  data_file_handle = GNUNET_DISK_file_open (data_file_name,
-         GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE | 
GNUNET_DISK_OPEN_TRUNCATE,
-         GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 
GNUNET_DISK_PERM_USER_WRITE);
-  if (NULL == data_file_handle) {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not open data file\n");
-    GNUNET_free(data_file_handle);
-    GNUNET_free(data_file_name);
-    GNUNET_SCHEDULER_add_now (&end_badly, NULL);
-    return;
+  /* Create or truncate file */
+  if (write_data_file)
+  {
+    GNUNET_asprintf (&data_file_name, "test_convergence_%s_s%d.data", 
run_name, seconds);
+    data_file_handle = GNUNET_DISK_file_open (data_file_name,
+        GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE | 
GNUNET_DISK_OPEN_TRUNCATE,
+        GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | 
GNUNET_DISK_PERM_USER_WRITE);
+    if (NULL == data_file_handle)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not open data file\n");
+      GNUNET_SCHEDULER_add_now (&end_badly, NULL);
+      return;
+    }
+    if (GNUNET_SYSERR == GNUNET_DISK_file_close (data_file_handle))
+    {
+      GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Cannot close log file '%s'\n",
+              data_file_name);
+      GNUNET_SCHEDULER_add_now (&end_badly, NULL);
+      return;
+    }
   }
 
   /* Set up peer */
@@ -322,6 +344,7 @@
 main (int argc, char *argv[])
 {
   seconds = 5;
+  run_name = NULL;
 
   static struct GNUNET_GETOPT_CommandLineOption options[] = {
       { 's', "seconds", NULL,
@@ -330,6 +353,9 @@
       { 'd', "data-file", NULL,
           gettext_noop ("generate data file"),
           0, &GNUNET_GETOPT_set_one, &write_data_file},
+      { 'r', "run-name", "NAME",
+          gettext_noop ("will be part of the data file name"),
+          1, &GNUNET_GETOPT_set_string, &run_name},
       GNUNET_GETOPT_OPTION_END
   };
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]