gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-merchant] branch master updated: extend test_merchan


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant] branch master updated: extend test_merchant_api interpreter with command to run wirewatch (not yet in use)
Date: Sun, 10 Dec 2017 18:58:40 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository merchant.

The following commit(s) were added to refs/heads/master by this push:
     new 5be5ce5  extend test_merchant_api interpreter with command to run 
wirewatch (not yet in use)
5be5ce5 is described below

commit 5be5ce5b1041c414e156276f39921de156f00479
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun Dec 10 18:58:15 2017 +0100

    extend test_merchant_api interpreter with command to run wirewatch (not yet 
in use)
---
 src/lib/test_merchant_api.c | 99 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 89 insertions(+), 10 deletions(-)

diff --git a/src/lib/test_merchant_api.c b/src/lib/test_merchant_api.c
index d68ed20..70c49a3 100644
--- a/src/lib/test_merchant_api.c
+++ b/src/lib/test_merchant_api.c
@@ -176,6 +176,11 @@ enum OpCode
   OC_RUN_AGGREGATOR,
 
   /**
+   * Run the wirewatcher to check for incoming transactions.
+   */
+  OC_RUN_WIREWATCH,
+
+  /**
    * Check that the fakebank has received a certain transaction.
    */
   OC_CHECK_BANK_TRANSFER,
@@ -542,6 +547,20 @@ struct Command
     struct {
 
       /**
+       * Process for the wirewatcher.
+       */
+      struct GNUNET_OS_Process *wirewatch_proc;
+
+      /**
+       * ID of task called whenever we get a SIGCHILD.
+       */
+      struct GNUNET_SCHEDULER_Task *child_death_task;
+
+    } run_wirewatch;
+
+    struct {
+
+      /**
        * Which amount do we expect to see transferred?
        */
       const char *amount;
@@ -1619,15 +1638,31 @@ maint_child_death (void *cls)
   const struct GNUNET_DISK_FileHandle *pr;
   char c[16];
 
-  cmd->details.run_aggregator.child_death_task = NULL;
-  pr = GNUNET_DISK_pipe_handle (sigpipe,
-                               GNUNET_DISK_PIPE_END_READ);
-  GNUNET_break (0 < GNUNET_DISK_file_read (pr,
-                                          &c,
-                                          sizeof (c)));
-  GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
-  GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
-  cmd->details.run_aggregator.aggregator_proc = NULL;
+  switch (cmd->oc) {
+  case OC_RUN_AGGREGATOR:
+    cmd->details.run_aggregator.child_death_task = NULL;
+    pr = GNUNET_DISK_pipe_handle (sigpipe,
+                                  GNUNET_DISK_PIPE_END_READ);
+    GNUNET_break (0 < GNUNET_DISK_file_read (pr,
+                                             &c,
+                                             sizeof (c)));
+    GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
+    GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
+    cmd->details.run_aggregator.aggregator_proc = NULL;
+    break;
+  case OC_RUN_WIREWATCH:
+    cmd->details.run_wirewatch.child_death_task = NULL;
+    pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
+    GNUNET_break (0 < GNUNET_DISK_file_read (pr, &c, sizeof (c)));
+    GNUNET_OS_process_wait (cmd->details.run_wirewatch.wirewatch_proc);
+    GNUNET_OS_process_destroy (cmd->details.run_wirewatch.wirewatch_proc);
+    cmd->details.run_wirewatch.wirewatch_proc = NULL;
+    break;
+  default:
+    GNUNET_break (0);
+    fail (is);
+    return;
+  }
   next_command (is);
 }
 
@@ -2143,6 +2178,22 @@ cleanup_state (struct InterpreterState *is)
         cmd->details.run_aggregator.child_death_task = NULL;
       }
       break;
+    case OC_RUN_WIREWATCH:
+      if (NULL != cmd->details.run_wirewatch.wirewatch_proc)
+      {
+        GNUNET_break (0 ==
+                      GNUNET_OS_process_kill 
(cmd->details.run_wirewatch.wirewatch_proc,
+                                              SIGKILL));
+        GNUNET_OS_process_wait (cmd->details.run_wirewatch.wirewatch_proc);
+        GNUNET_OS_process_destroy (cmd->details.run_wirewatch.wirewatch_proc);
+        cmd->details.run_wirewatch.wirewatch_proc = NULL;
+      }
+      if (NULL != cmd->details.run_wirewatch.child_death_task)
+      {
+        GNUNET_SCHEDULER_cancel (cmd->details.run_wirewatch.child_death_task);
+        cmd->details.run_wirewatch.child_death_task = NULL;
+      }
+      break;
     case OC_CHECK_BANK_TRANSFER:
       GNUNET_free_non_null (cmd->details.check_bank_transfer.subject);
       cmd->details.check_bank_transfer.subject = NULL;
@@ -2347,7 +2398,7 @@ interpreter_run (void *cls)
       char *section;
       char *keys;
       struct GNUNET_CRYPTO_EddsaPrivateKey *pk;
-    
+
       GNUNET_asprintf (&section,
                        "merchant-instance-%s",
                        cmd->details.admin_add_incoming.instance);
@@ -2672,6 +2723,34 @@ interpreter_run (void *cls)
                                           &maint_child_death, is);
     }
     break;
+  case OC_RUN_WIREWATCH:
+    {
+      const struct GNUNET_DISK_FileHandle *pr;
+
+      cmd->details.run_wirewatch.wirewatch_proc
+        = GNUNET_OS_start_process (GNUNET_NO,
+                                   GNUNET_OS_INHERIT_STD_ALL,
+                                   NULL, NULL, NULL,
+                                   "taler-exchange-wirewatch",
+                                   "taler-exchange-wirewatch",
+                                   "-c", "test_exchange_api.conf",
+                                   "-t", "test", /* use Taler's bank/fakebank 
*/
+                                   "-T", /* exit when done */
+                                   NULL);
+      if (NULL == cmd->details.run_wirewatch.wirewatch_proc)
+      {
+        GNUNET_break (0);
+        fail (is);
+        return;
+      }
+      pr = GNUNET_DISK_pipe_handle (sigpipe,
+                                    GNUNET_DISK_PIPE_END_READ);
+      cmd->details.run_wirewatch.child_death_task
+        = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
+                                          pr,
+                                          &maint_child_death, is);
+      return;
+    }
   case OC_CHECK_BANK_TRANSFER:
     {
       GNUNET_assert (GNUNET_OK == TALER_string_to_amount

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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