[PATCH 1 of 6] tests: replace test tmp directory with $TESTTMP in test output
Mads Kiilerich
mads at kiilerich.com
Wed Oct 6 04:01:48 CDT 2010
# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1286355200 -7200
# Node ID 560bdda78abd98c1b921097048c6ce375062daa0
# Parent 64db820c66a29ee3b57e452d77be00ed5be675ef
tests: replace test tmp directory with $TESTTMP in test output
This reduces the number of patterns that must be adjusted when writing tests.
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -443,25 +443,25 @@
def alarmed(signum, frame):
raise Timeout
-def pytest(test, options):
+def pytest(test, options, replacements):
py3kswitch = options.py3k_warnings and ' -3' or ''
cmd = '%s%s "%s"' % (PYTHON, py3kswitch, test)
vlog("# Running", cmd)
- return run(cmd, options)
+ return run(cmd, options, replacements)
-def shtest(test, options):
+def shtest(test, options, replacements):
cmd = '"%s"' % test
vlog("# Running", cmd)
- return run(cmd, options)
+ return run(cmd, options, replacements)
-def battest(test, options):
+def battest(test, options, replacements):
# To reliably get the error code from batch files on WinXP,
# the "cmd /c call" prefix is needed. Grrr
cmd = 'cmd /c call "%s"' % testpath
vlog("# Running", cmd)
- return run(cmd, options)
+ return run(cmd, options, replacements)
-def tsttest(test, options):
+def tsttest(test, options, replacements):
t = open(test)
out = []
script = []
@@ -498,7 +498,7 @@
cmd = '/bin/sh "%s"' % name
vlog("# Running", cmd)
- exitcode, output = run(cmd, options)
+ exitcode, output = run(cmd, options, replacements)
# do not merge output if skipped, return hghave message instead
if exitcode == SKIPPED_STATUS:
return exitcode, output
@@ -563,7 +563,7 @@
return exitcode, postout
-def run(cmd, options):
+def run(cmd, options, replacements):
"""Run command in a sub-process, capturing the output (stdout and stderr).
Return a tuple (exitcode, output). output is None in debug mode."""
# TODO: Use subprocess.Popen if we're running on Python 2.4
@@ -606,6 +606,8 @@
cleanup()
raise
+ for s, r in replacements:
+ output = output.replace(s, r)
return ret, splitnewlines(output)
def runone(options, test, skips, fails):
@@ -680,14 +682,14 @@
runner = shtest
# Make a tmp subdirectory to work in
- tmpd = os.path.join(HGTMP, test)
- os.mkdir(tmpd)
- os.chdir(tmpd)
+ testtmp = os.path.join(HGTMP, test)
+ os.mkdir(testtmp)
+ os.chdir(testtmp)
if options.timeout > 0:
signal.alarm(options.timeout)
- ret, out = runner(testpath, options)
+ ret, out = runner(testpath, options, [(testtmp, '$TESTTMP')])
vlog("# Ret was:", ret)
if options.timeout > 0:
@@ -753,7 +755,7 @@
os.chdir(TESTDIR)
if not options.keep_tmpdir:
- shutil.rmtree(tmpd, True)
+ shutil.rmtree(testtmp, True)
if skipped:
return None
return ret == 0
More information about the Mercurial-devel
mailing list