]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Fixed the test harness so that it actually kills the ssh being used as
authorDan Fandrich <dan@coneharvesters.com>
Fri, 8 Jun 2007 18:56:05 +0000 (18:56 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Fri, 8 Jun 2007 18:56:05 +0000 (18:56 +0000)
the SOCKS server.

CHANGES
tests/runtests.pl

diff --git a/CHANGES b/CHANGES
index a730ac4e44e59ba57b6fbed95e86dd1dc665cdd1..6af6823f6103fab4288c0facd92d9d13600cc988 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -14,6 +14,9 @@ Dan F (8 June 2007)
 - Reverted some recent changes to runtests.pl that weren't compatible with
   perl 5.0.
 
+- Fixed the test harness so that it actually kills the ssh being used as
+  the SOCKS server.
+
 Daniel S (6 June 2007)
 - -s/--silent can now be used to toggle off the silence again if used a second
   time.
index 3e399063f0051a3c8931ce1198f22b17e28f4f3a..21d2ea2b1244095f9ade2d49a04780a2fef24a9b 100755 (executable)
@@ -273,17 +273,12 @@ sub startnew {
     if(0 == $child) {
         # Here we are the child. Run the given command.
 
-        # Calling exec() within a pseudo-process actually spawns the requested
-        # executable in a separate process and waits for it to complete before
-        # exiting with the same exit status as that process.  This means that
-        # the process ID reported within the running executable will be
-        # different from what the earlier Perl fork() might have returned.
+        # Put an "exec" in front of the command so that the child process
+        # keeps this child's process ID.
+        exec("exec $cmd") || die "Can't exec() $cmd: $!";
 
         # exec() should never return back here to this process. We protect
-        # ourselfs calling die() just in case something goes really bad.
-
-        exec($cmd) || die "Can't exec() $cmd: $!";
-
+        # ourselves by calling die() just in case something goes really bad.
         die "error: exec() has returned";
     }
 
@@ -292,10 +287,10 @@ sub startnew {
     if ($fake) {
         logmsg "$pidfile faked with pid=$child\n" if($verbose);
         open(OUT, ">$pidfile");
-        print OUT $child;
+        print OUT $child . "\n";
         close(OUT);
        # could/should do a while connect fails sleep a bit and loop
-       sleep 1;
+       sleep 2;
         if (checkdied($child)) {
             logmsg "startnew: Warning: child process has failed to start\n" if($verbose);
             return (-1,-1);
@@ -326,6 +321,9 @@ sub startnew {
         sleep(1);
     }
 
+    # Return two PIDs, the one for the child process we spawned and the one
+    # reported by the server itself (in case it forked again on its own).
+    # Both (potentially) need to be killed at the end of the test.
     return ($child, $pid2);
 }