summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2018-11-17 12:14:36 (GMT)
committerGitHub <noreply@github.com>2018-11-17 12:14:36 (GMT)
commit38df97a03c5102e717a110ab69bff8e5c9ebfd08 (patch)
tree00ffb104fac76a29dd09ba91d7af302df7f493af
parent5a087d5401e6956cf4c6d95f15fedabf39a4f5af (diff)
downloadcpython-38df97a03c5102e717a110ab69bff8e5c9ebfd08.zip
cpython-38df97a03c5102e717a110ab69bff8e5c9ebfd08.tar.gz
cpython-38df97a03c5102e717a110ab69bff8e5c9ebfd08.tar.bz2
Add --tempdir option for test run (GH-10322)
-rw-r--r--.azure-pipelines/windows-steps.yml2
-rw-r--r--Lib/test/libregrtest/cmdline.py6
-rw-r--r--Lib/test/libregrtest/main.py12
3 files changed, 9 insertions, 11 deletions
diff --git a/.azure-pipelines/windows-steps.yml b/.azure-pipelines/windows-steps.yml
index d8d5f17..c317584 100644
--- a/.azure-pipelines/windows-steps.yml
+++ b/.azure-pipelines/windows-steps.yml
@@ -17,7 +17,7 @@ steps:
- script: python.bat -m test.pythoninfo
displayName: 'Display build info'
-- script: PCbuild\rt.bat -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results.xml"
+- script: PCbuild\rt.bat -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results.xml" --tempdir="$(Build.BinariesDirectory)\test"
displayName: 'Tests'
env:
PREFIX: $(Py_OutDir)\$(arch)
diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py
index 538ff05..0927032 100644
--- a/Lib/test/libregrtest/cmdline.py
+++ b/Lib/test/libregrtest/cmdline.py
@@ -271,7 +271,8 @@ def _create_parser():
group.add_argument('--junit-xml', dest='xmlpath', metavar='FILENAME',
help='writes JUnit-style XML results to the specified '
'file')
-
+ group.add_argument('--tempdir', dest='tempdir', metavar='PATH',
+ help='override the working directory for the test run')
return parser
@@ -383,8 +384,7 @@ def _parse_args(args, **kwargs):
if ns.match_filename:
if ns.match_tests is None:
ns.match_tests = []
- filename = os.path.join(support.SAVEDCWD, ns.match_filename)
- with open(filename) as fp:
+ with open(ns.match_filename) as fp:
for line in fp:
ns.match_tests.append(line.strip())
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index 1fd4132..a8d27ae 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -550,12 +550,12 @@ class Regrtest:
def main(self, tests=None, **kwargs):
global TEMPDIR
+ self.ns = self.parse_args(kwargs)
- if sysconfig.is_python_build():
- try:
- os.mkdir(TEMPDIR)
- except FileExistsError:
- pass
+ if self.ns.tempdir:
+ TEMPDIR = self.ns.tempdir
+
+ os.makedirs(TEMPDIR, exist_ok=True)
# Define a writable temp dir that will be used as cwd while running
# the tests. The name of the dir includes the pid to allow parallel
@@ -571,8 +571,6 @@ class Regrtest:
self._main(tests, kwargs)
def _main(self, tests, kwargs):
- self.ns = self.parse_args(kwargs)
-
if self.ns.huntrleaks:
warmup, repetitions, _ = self.ns.huntrleaks
if warmup < 1 or repetitions < 1: