summaryrefslogtreecommitdiffstats
path: root/Lib/test/libregrtest
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-10-02 11:54:18 (GMT)
committerGitHub <noreply@github.com>2019-10-02 11:54:18 (GMT)
commita72de9338882b8013a4bb8adb930fe3308682e28 (patch)
tree15b34ed77b4ce478c1547306e6b99ef4be34e3c5 /Lib/test/libregrtest
parenta11df75269b5d47248be617ed02e96c1d1938fd1 (diff)
downloadcpython-a72de9338882b8013a4bb8adb930fe3308682e28.zip
cpython-a72de9338882b8013a4bb8adb930fe3308682e28.tar.gz
cpython-a72de9338882b8013a4bb8adb930fe3308682e28.tar.bz2
bpo-36670: regrtest bug fixes (GH-16537)
* Fix TestWorkerProcess.__repr__(): start_time is only valid if _popen is not None. * Fix _kill(): don't set _killed to True if _popen is None. * _run_process(): only set _killed to False after calling run_test_in_subprocess(). (cherry picked from commit 2ea71a07d0a720707094ee55f78fd232c40724bc) Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Lib/test/libregrtest')
-rw-r--r--Lib/test/libregrtest/runtest_mp.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py
index 38b0578..a46c782 100644
--- a/Lib/test/libregrtest/runtest_mp.py
+++ b/Lib/test/libregrtest/runtest_mp.py
@@ -120,27 +120,28 @@ class TestWorkerProcess(threading.Thread):
def __repr__(self):
info = [f'TestWorkerProcess #{self.worker_id}']
if self.is_alive():
- dt = time.monotonic() - self.start_time
- info.append("running for %s" % format_duration(dt))
+ info.append("running")
else:
info.append('stopped')
test = self.current_test_name
if test:
info.append(f'test={test}')
popen = self._popen
- if popen:
- info.append(f'pid={popen.pid}')
+ if popen is not None:
+ dt = time.monotonic() - self.start_time
+ info.extend((f'pid={self._popen.pid}',
+ f'time={format_duration(dt)}'))
return '<%s>' % ' '.join(info)
def _kill(self):
- if self._killed:
- return
- self._killed = True
-
popen = self._popen
if popen is None:
return
+ if self._killed:
+ return
+ self._killed = True
+
print(f"Kill {self}", file=sys.stderr, flush=True)
try:
popen.kill()
@@ -177,9 +178,10 @@ class TestWorkerProcess(threading.Thread):
self.current_test_name = test_name
try:
+ popen = run_test_in_subprocess(test_name, self.ns)
+
self._killed = False
- self._popen = run_test_in_subprocess(test_name, self.ns)
- popen = self._popen
+ self._popen = popen
except:
self.current_test_name = None
raise