Hello
The following patch makes the regression tests raise an error if a
process started by run_command crashes.  This results in better error
checking on Unix, a command that crashes will be detected
automatically rather than relying on the crash being detected by the
absence of some effect.  The disadvantage is that if a test is written
that relies on this new behaviour then it may not be effective on
Windows, it may pass when it should fail.
So, is this a good idea?
Better error checking on Unix platforms.  Based on an old patch
from William Uther <will+@cs.cmu.edu>.
* subversion/tests/clients/cmdline/svntest/main.py (run_command): Use
  Popen3 on POSIX platforms to detect commands that crash.
Index: subversion/tests/clients/cmdline/svntest/main.py
===================================================================
--- subversion/tests/clients/cmdline/svntest/main.py	(revision 5578)
+++ subversion/tests/clients/cmdline/svntest/main.py	(working copy)
@@ -25,6 +25,9 @@
 import copy    # for deepcopy()
 import time    # for time()
 
+if os.name == 'posix':
+  import popen2
+
 from svntest import Failure
 from svntest import testcase
 from svntest import wc
@@ -229,11 +232,26 @@
     mode = 't'
 
   start = time.time()
-  infile, outfile, errfile = os.popen3(command + args, mode)
+  if os.name == 'posix':
+    child = popen2.Popen3(command + args, 1)
 
-  stdout_lines = outfile.readlines()
-  stderr_lines = errfile.readlines()
+    stdout_lines = child.fromchild.readlines()
+    stderr_lines = child.childerr.readlines()
+    result = child.wait()
+    if os.WIFSIGNALED(result):
+      raise Failure("Signal " + str(os.WTERMSIG(result)) + " from " \
+                    + os.path.basename(command) + args)
 
+    outfile = child.fromchild
+    infile = child.tochild
+    errfile = child.childerr
+
+  else:
+    infile, outfile, errfile = os.popen3(command + args, mode)
+
+    stdout_lines = outfile.readlines()
+    stderr_lines = errfile.readlines()
+
   outfile.close()
   infile.close()
   errfile.close()
-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Apr  8 01:05:37 2003