gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21995 - in gnunet: doc po src/testing


From: gnunet
Subject: [GNUnet-SVN] r21995 - in gnunet: doc po src/testing
Date: Thu, 14 Jun 2012 13:28:23 +0200

Author: grothoff
Date: 2012-06-14 13:28:23 +0200 (Thu, 14 Jun 2012)
New Revision: 21995

Modified:
   gnunet/doc/structure.dot
   gnunet/po/POTFILES.in
   gnunet/src/testing/gnunet-testing-run-service.c
Log:
-pogen

Modified: gnunet/doc/structure.dot
===================================================================
--- gnunet/doc/structure.dot    2012-06-14 09:52:06 UTC (rev 21994)
+++ gnunet/doc/structure.dot    2012-06-14 11:28:23 UTC (rev 21995)
@@ -36,7 +36,7 @@
 //  psycd -> mesh [style=dashed];
   stream [shape=diamond];
   stream -> mesh;
-  stream -> lockmanager;
+  stream -> lockmanager [style=dashed];
   dht -> core;
   dht -> nse;
   dht -> block;

Modified: gnunet/po/POTFILES.in
===================================================================
--- gnunet/po/POTFILES.in       2012-06-14 09:52:06 UTC (rev 21994)
+++ gnunet/po/POTFILES.in       2012-06-14 11:28:23 UTC (rev 21995)
@@ -105,7 +105,6 @@
 src/gns/gns_api.c
 src/gns/gnunet-gns.c
 src/gns/gnunet-gns-fcfsd.c
-src/gns/gnunet-gns-lookup.c
 src/gns/gnunet-gns-proxy.c
 src/gns/gnunet-service-gns.c
 src/gns/gnunet-service-gns_interceptor.c
@@ -131,6 +130,7 @@
 src/namestore/gnunet-service-namestore.c
 src/namestore/namestore_api.c
 src/namestore/namestore_common.c
+src/namestore/plugin_namestore_postgres.c
 src/namestore/plugin_namestore_sqlite.c
 src/nat/gnunet-helper-nat-client.c
 src/nat/gnunet-helper-nat-client-windows.c
@@ -157,6 +157,7 @@
 src/stream/stream_api.c
 src/template/gnunet-service-template.c
 src/template/gnunet-template.c
+src/testbed/gnunet-service-testbed.c
 src/testbed/testbed_api.c
 src/testbed/testbed_api_hosts.c
 src/testbed/testbed_api_operations.c
@@ -165,6 +166,7 @@
 src/testbed/testbed_api_testbed.c
 src/testbed/testbed_api_test.c
 src/testbed/testbed_api_topology.c
+src/testing/gnunet-testing-run-service.c
 src/testing_old/gnunet-testing.c
 src/testing_old/helper.c
 src/testing_old/testing.c

Modified: gnunet/src/testing/gnunet-testing-run-service.c
===================================================================
--- gnunet/src/testing/gnunet-testing-run-service.c     2012-06-14 09:52:06 UTC 
(rev 21994)
+++ gnunet/src/testing/gnunet-testing-run-service.c     2012-06-14 11:28:23 UTC 
(rev 21995)
@@ -44,109 +44,134 @@
 #include "gnunet_os_lib.h"
 
 
-static struct GNUNET_DISK_FileHandle fh;
-static char *tmpfilename = NULL;
-static GNUNET_SCHEDULER_TaskIdentifier tid = GNUNET_SCHEDULER_NO_TASK;
-static struct GNUNET_TESTING_Peer *my_peer = NULL;
+#define LOG(kind,...)                                           \
+  GNUNET_log_from (kind, "gnunet-testing", __VA_ARGS__)
 
 
-#define LOG(kind,...)                                           \
-  GNUNET_log_from (kind, "gnunettestingnew", __VA_ARGS__)
+/**
+ * FIXME
+ */
+static struct GNUNET_DISK_FileHandle *fh;
 
+/**
+ * FIXME
+ */
+static char *tmpfilename;
 
 /**
+ * FIXME
+ */
+static GNUNET_SCHEDULER_TaskIdentifier tid;
+
+/**
+ * FIXME
+ */
+static struct GNUNET_TESTING_Peer *my_peer;
+
+
+
+
+/**
  * Cleanup called by signal handlers and when stdin is closed.
- * Removes the temporary file with the configuration and shuts down the 
scheduler.
+ * Removes the temporary file.
+ *
+ * @param cls unused
+ * @param tc scheduler context 
  */
-void
-cleanup (void)
+static void
+cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   if (NULL != tmpfilename)
   {
-    remove (tmpfilename);
+    if (0 != UNLINK (tmpfilename))
+      GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "unlink", 
tmpfilename);
   }
-  GNUNET_SCHEDULER_shutdown ();
+  if (GNUNET_SCHEDULER_NO_TASK != tid)
+  {
+    GNUNET_SCHEDULER_cancel (tid);
+    tid = GNUNET_SCHEDULER_NO_TASK;
+  }
+  if (NULL != fh)
+  {
+    GNUNET_DISK_file_close (fh);
+    fh = NULL;
+  }
 }
 
+
 /**
  * Called whenever we can read stdin non-blocking 
+ *
+ * @param cls unused
+ * @param tc scheduler context 
  */
-void
+static void
 stdin_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   int c;
 
-  if (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)
+  tid = GNUNET_SCHEDULER_NO_TASK;
+  if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
+    return;
+  GNUNET_assert (0 != (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason));
+  c = getchar ();
+  switch (c)
   {
-      return;
-  }
-  if (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason)
-  {
-    c = getchar ();
-    if (EOF == c || 'q' == c)
-    {
-      tid = GNUNET_SCHEDULER_NO_TASK;
-      cleanup ();
-    }
-    else
-    {
-      if ('r' == c)
-      {
-        GNUNET_TESTING_peer_stop(my_peer); 
-        GNUNET_TESTING_peer_start(my_peer); 
-        printf("restarted\n");
-        fflush(stdout);
-      }
-      tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, &fh, 
&stdin_cb, NULL);
-    }
+  case EOF:
+  case 'q':
+    GNUNET_SCHEDULER_shutdown ();
     return;
+  case 'r':
+    GNUNET_TESTING_peer_stop (my_peer); 
+    GNUNET_TESTING_peer_start (my_peer); 
+    printf ("restarted\n");
+    fflush (stdout);
+    break;
+  case '\n':
+  case '\r':
+    /* ignore whitespace */
+    break;
+  default:
+    fprintf (stderr, _("Unknown command, use 'q' to quit or 'r' to restart 
peer\n"));
+    break;
   }
-  GNUNET_break (0);
+  tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, &fh, 
&stdin_cb, NULL);    
 }
 
+
 /**
  * Main function called by the testing library.
  * Executed inside a running scheduler.
+ *
+ * @param cls unused
+ * @param cfg configuration of the peer that was started
+ * @param peer handle to the peer
  */
-void
+static void
 testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
               const struct GNUNET_TESTING_Peer *peer)
 {
   my_peer = (struct GNUNET_TESTING_Peer *) peer;
-  tmpfilename = tmpnam (NULL);
-  if (NULL == tmpfilename)
+  if (NULL == (tmpfilename = GNUNET_DISK_mktemp ("gnunet-testing")))
   {
     GNUNET_break (0);
     cleanup ();
     return;
   }
-
   if (GNUNET_SYSERR == 
-          GNUNET_CONFIGURATION_write((struct GNUNET_CONFIGURATION_Handle *) 
cfg, tmpfilename))
+      GNUNET_CONFIGURATION_write ((struct GNUNET_CONFIGURATION_Handle *) cfg, 
tmpfilename))
   {
     GNUNET_break (0);
     return;
   }
-
-  printf("started\n%s\n", tmpfilename);
+  printf("%s\n", tmpfilename);
   fflush(stdout);
-
-  GNUNET_break(NULL != GNUNET_SIGNAL_handler_install(SIGTERM, &cleanup));
-  GNUNET_break(NULL != GNUNET_SIGNAL_handler_install(SIGINT, &cleanup));
-
-#if !WINDOWS
-  fh.fd = 0; /* 0=stdin */
-#else
-  /* FIXME: box GetStdHandle(STD_INPUT_HANDLE) somehow.
-   * Note that it will only work if parent process spawns
-   * gnunet-testing-run-service with custom-created asynchronous standard input
-   */
-#endif
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREFER_REL, &cleanup);
+  fh = GNUNET_DISK_get_handle_from_native (stdin);
   tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, &fh, 
&stdin_cb, NULL);
 }
 
 
-
 /**
  * The main function.
  *
@@ -157,30 +182,27 @@
 int
 main (int argc, char *const *argv)
 {
+  static char *cfg_name;
+  static char *srv_name;
   static const struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_HELP("tool to start a service for testing"),
+    {'c', "config", "FILENAME",
+     gettext_noop ("name of the configuration file to use"), 1,
+     &GNUNET_GETOPT_set_string, &cfg_name},
+    {'s', "service", "SERVICE",
+     gettext_noop ("name of the service to run"), 1,
+     &GNUNET_GETOPT_set_string, &srv_name},
+    GNUNET_GETOPT_OPTION_HELP ("tool to start a service for testing"),
     GNUNET_GETOPT_OPTION_END
   };
-  int arg_start;
   int ret;
 
-  arg_start = GNUNET_GETOPT_run("gnunet-testing-run-service", options, argc, 
argv);
-
-  if (arg_start == GNUNET_SYSERR)
-  {
+  if (GNUNET_SYSERR ==
+      GNUNET_GETOPT_run("gnunet-testing-run-service", options, argc, argv))
     return 1;
-  }
-
-  if (arg_start != 1 || argc != 2)
+  ret = GNUNET_TESTING_service_run_restartable ("gnunet_service_test", 
srv_name,
+                                               cfg_name, &testing_main, NULL);
+  if (0 != ret)
   {
-    fprintf (stderr, "Invalid number of arguments\n");
-    return 1;
-  }
-
-  ret =  GNUNET_TESTING_service_run_restartable ("gnunet_service_test", 
argv[1],
-                                                 NULL, &testing_main, NULL);
-  if (ret)
-  {
     printf ("error\n");
   }
   else 




reply via email to

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