gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: complete test logic


From: gnunet
Subject: [taler-anastasis] branch master updated: complete test logic
Date: Fri, 15 Jan 2021 10:17:41 +0100

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

grothoff pushed a commit to branch master
in repository anastasis.

The following commit(s) were added to refs/heads/master by this push:
     new f0d9be5  complete test logic
f0d9be5 is described below

commit f0d9be52c1cf6acbbb8054e9c9cd6aadcde08f92
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Jan 15 10:17:39 2021 +0100

    complete test logic
---
 src/include/anastasis_util_lib.h           |  4 ++++
 src/util/test_anastasis_child_management.c | 33 ++++++++++++++++++++++++++----
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/src/include/anastasis_util_lib.h b/src/include/anastasis_util_lib.h
index dc2bf74..7e9062c 100644
--- a/src/include/anastasis_util_lib.h
+++ b/src/include/anastasis_util_lib.h
@@ -66,4 +66,8 @@ ANASTASIS_wait_child (struct GNUNET_OS_Process *proc,
                       ANASTASIS_ChildCompletedCallback cb,
                       void *cb_cls);
 
+void
+ANASTASIS_wait_child_cancel (struct ANASTASIS_ChildWaitHandle *cwh);
+
+
 #endif
diff --git a/src/util/test_anastasis_child_management.c 
b/src/util/test_anastasis_child_management.c
index 7e131b9..8bbd359 100644
--- a/src/util/test_anastasis_child_management.c
+++ b/src/util/test_anastasis_child_management.c
@@ -32,6 +32,8 @@ static struct ANASTASIS_ChildWaitHandle *cwh;
 
 static int global_ret;
 
+static pid_t pid;
+
 
 static void
 child_completed_callback (void *cls,
@@ -41,17 +43,35 @@ child_completed_callback (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "%lu",
               exit_code);
+  pid = -1;
+  GNUNET_SCHEDULER_shutdown ();
 }
 
 
 static void
-test_child_management ()
+do_shutdown (void *cls)
+{
+  if (NULL != cwh)
+  {
+    ANASTASIS_wait_child_cancel (cwh);
+    cwh = NULL;
+  }
+  if (-1 != pid)
+  {
+    kill (pid, 9);
+    pid = -1;
+  }
+}
+
+
+static void
+test_child_management (void *cls)
 {
   const char *command = "child_management_test.sh";
   int p[2];
   int ret = pipe (p);
-  pid_t pid;
 
+  (void) cls;
   if (0 != ret)
   {
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERRROR,
@@ -85,10 +105,14 @@ test_child_management ()
                               command);
     exit (-1);
   }
-
+  close (p[0]);
+  GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
+                                 NULL);
   cwh = ANASTASIS_wait_child (pid,
                               &child_completed_callback,
                               cls);
+  GNUNET_assert (5 == write (p[1], "Hello", 5));
+  close (p[1]);
 }
 
 
@@ -99,7 +123,8 @@ main (int argc,
   GNUNET_log_setup (argv[0],
                     "DEBUG",
                     NULL);
-  test_child_management ();
+  GNUNET_SCHEDULER_run (&test_child_management,
+                        NULL);
   return global_ret;
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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