[PATCH 1 of 2] run-tests: make --tmpdir option more useful
Greg Ward
greg at gerg.ca
Sat Jul 11 17:54:22 CDT 2009
# HG changeset patch
# User Greg Ward <greg at gerg.ca>
# Date 1247350616 14400
# Node ID ad3cd96f3eab09436624b230cb9f0830a70e155b
# Parent 54eb3782d32fcc9de072b5e7c9efb6b2bad211c3
run-tests: make --tmpdir option more useful.
- instead of creating HGTMP inside tmpdir, now HGTMP is tmpdir
(thus, fail if tmpdir already exists)
- passing --tmpdir automatically turns on --keep-tmpdir
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -91,8 +91,10 @@
help="number of jobs to run in parallel"
" (default: $%s or %d)" % defaults['jobs'])
parser.add_option("--keep-tmpdir", action="store_true",
- help="keep temporary directory after running tests"
- " (best used with --tmpdir)")
+ help="keep temporary directory after running tests")
+ parser.add_option("--tmpdir", type="string",
+ help="run tests in the given temporary directory"
+ " (implies --keep-tmpdir)")
parser.add_option("-R", "--restart", action="store_true",
help="restart at last error")
parser.add_option("-p", "--port", type="int",
@@ -105,8 +107,6 @@
parser.add_option("-t", "--timeout", type="int",
help="kill errant tests after TIMEOUT seconds"
" (default: $%s or %d)" % defaults['timeout'])
- parser.add_option("--tmpdir", type="string",
- help="run tests in the given temporary directory")
parser.add_option("-v", "--verbose", action="store_true",
help="output verbose messages")
parser.add_option("-n", "--nodiff", action="store_true",
@@ -743,8 +743,24 @@
global TESTDIR, HGTMP, INST, BINDIR, PYTHONDIR, COVERAGE_FILE
TESTDIR = os.environ["TESTDIR"] = os.getcwd()
- HGTMP = os.environ['HGTMP'] = os.path.realpath(tempfile.mkdtemp('', 'hgtests.',
- options.tmpdir))
+ if options.tmpdir:
+ options.keep_tmpdir = True
+ tmpdir = options.tmpdir
+ if os.path.exists(tmpdir):
+ # Meaning of tmpdir has changed since 1.3: we used to create
+ # HGTMP inside tmpdir; now HGTMP is tmpdir. So fail if
+ # tmpdir already exists.
+ sys.exit("error: temp dir %r already exists" % tmpdir)
+
+ # Automatically removing tmpdir sounds convenient, but could
+ # really annoy anyone in the habit of using "--tmpdir=/tmp"
+ # or "--tmpdir=$HOME".
+ #vlog("# Removing temp dir", tmpdir)
+ #shutil.rmtree(tmpdir)
+ os.makedirs(tmpdir)
+ else:
+ tmpdir = tempfile.mkdtemp('', 'hgtests.')
+ HGTMP = os.environ['HGTMP'] = os.path.realpath(tmpdir)
DAEMON_PIDS = None
HGRCPATH = None
More information about the Mercurial-devel
mailing list