Author: hwright
Date: Sun Jun 13 23:19:53 2010
New Revision: 954328

URL: http://svn.apache.org/viewvc?rev=954328&view=rev
Log:
* build/run_tests.py
  (_run_prog): Remove all the custom stdout/stderr redirect handling, in favor
    of the subprocess module's built-in facilities.

Modified:
    subversion/trunk/build/run_tests.py

Modified: subversion/trunk/build/run_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/run_tests.py?rev=954328&r1=954327&r2=954328&view=diff
==============================================================================
--- subversion/trunk/build/run_tests.py (original)
+++ subversion/trunk/build/run_tests.py Sun Jun 13 23:19:53 2010
@@ -323,31 +323,9 @@ class TestHarness:
     '''Execute the file PROGNAME in a subprocess, with ARGLIST as its
     arguments (a list/tuple of arg0..argN), redirecting standard output and
     error to the log file. Return the command's exit code.'''
-    def restore_streams(stdout, stderr):
-      os.dup2(stdout, 1)
-      os.dup2(stderr, 2)
-      os.close(stdout)
-      os.close(stderr)
-
-    if self.log:
-      sys.stdout.flush()
-      sys.stderr.flush()
-      self.log.flush()
-      old_stdout = os.dup(1)
-      old_stderr = os.dup(2)
-    try:
-      if self.log:
-        os.dup2(self.log.fileno(), 1)
-        os.dup2(self.log.fileno(), 2)
-      rv = subprocess.call(arglist)
-    except:
-      if self.log:
-        restore_streams(old_stdout, old_stderr)
-      raise
-    else:
-      if self.log:
-        restore_streams(old_stdout, old_stderr)
-      return rv
+    prog = subprocess.Popen(arglist, stdout=self.log, stderr=self.log)
+    prog.wait()
+    return prog.returncode
 
 
 def main():


Reply via email to