# HG changeset patch # User Mads Kiilerich # Date 2009-02-27 18:10:38 # Node ID 076401cf2b63664f3c63ce297243544ea2a77e92 # Parent 18048153fd4ef3224923a271a87bf0ab85c85866 run-tests.py: avoid using popen2.Popen4 - use subprocess instead Use subprocess to emulate Popen4 if available - similar to how it is done in util.py. Using popen2 under python 2.6 gives DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -11,7 +11,22 @@ import difflib import errno import optparse import os -import popen2 +try: + import subprocess + subprocess.Popen # trigger ImportError early + closefds = os.name == 'posix' + def Popen4(cmd, bufsize=-1): + p = subprocess.Popen(cmd, shell=True, bufsize=bufsize, + close_fds=closefds, + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + p.fromchild = p.stdout + p.tochild = p.stdin + p.childerr = p.stderr + return p +except ImportError: + subprocess = None + from popen2 import Popen4 import shutil import signal import sys @@ -281,7 +296,7 @@ def run(cmd): if ret == None: ret = 0 else: - proc = popen2.Popen4(cmd) + proc = Popen4(cmd) try: output = '' proc.tochild.close()