mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
bpo-37244: Fix test_multiprocessing.test_resource_tracker() (GH-14288)
Increase robustness of test_resource_tracker(): retry for 60 seconds.
(cherry picked from commit e1a63c4f21
)
Co-authored-by: Pierre Glaser <pierreglaser@msn.com>
This commit is contained in:
parent
4adc38e794
commit
dd4edbc5ad
1 changed files with 15 additions and 6 deletions
|
@ -5010,12 +5010,21 @@ class TestResourceTracker(unittest.TestCase):
|
||||||
_resource_unlink(name1, rtype)
|
_resource_unlink(name1, rtype)
|
||||||
p.terminate()
|
p.terminate()
|
||||||
p.wait()
|
p.wait()
|
||||||
time.sleep(2.0)
|
|
||||||
with self.assertRaises(OSError) as ctx:
|
deadline = time.monotonic() + 60
|
||||||
_resource_unlink(name2, rtype)
|
while time.monotonic() < deadline:
|
||||||
# docs say it should be ENOENT, but OSX seems to give EINVAL
|
time.sleep(.5)
|
||||||
self.assertIn(
|
try:
|
||||||
ctx.exception.errno, (errno.ENOENT, errno.EINVAL))
|
_resource_unlink(name2, rtype)
|
||||||
|
except OSError as e:
|
||||||
|
# docs say it should be ENOENT, but OSX seems to give
|
||||||
|
# EINVAL
|
||||||
|
self.assertIn(e.errno, (errno.ENOENT, errno.EINVAL))
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise AssertionError(
|
||||||
|
f"A {rtype} resource was leaked after a process was "
|
||||||
|
f"abruptly terminated.")
|
||||||
err = p.stderr.read().decode('utf-8')
|
err = p.stderr.read().decode('utf-8')
|
||||||
p.stderr.close()
|
p.stderr.close()
|
||||||
expected = ('resource_tracker: There appear to be 2 leaked {} '
|
expected = ('resource_tracker: There appear to be 2 leaked {} '
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue