#3571: try to fix recurrent buildbot failures by strenghtening test_os.test_closerange
This commit is contained in:
parent
a307d0fc41
commit
b9ee06c26b
@ -21,10 +21,27 @@ class FileTests(unittest.TestCase):
|
|||||||
self.assert_(os.access(support.TESTFN, os.W_OK))
|
self.assert_(os.access(support.TESTFN, os.W_OK))
|
||||||
|
|
||||||
def test_closerange(self):
|
def test_closerange(self):
|
||||||
f = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR)
|
first = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR)
|
||||||
|
# We must allocate two consecutive file descriptors, otherwise
|
||||||
|
# it will mess up other file descriptors (perhaps even the three
|
||||||
|
# standard ones).
|
||||||
|
second = os.dup(first)
|
||||||
|
try:
|
||||||
|
retries = 0
|
||||||
|
while second != first + 1:
|
||||||
|
os.close(first)
|
||||||
|
retries += 1
|
||||||
|
if retries > 10:
|
||||||
|
# XXX test skipped
|
||||||
|
print("couldn't allocate two consecutive fds, "
|
||||||
|
"skipping test_closerange", file=sys.stderr)
|
||||||
|
return
|
||||||
|
first, second = second, os.dup(second)
|
||||||
|
finally:
|
||||||
|
os.close(second)
|
||||||
# close a fd that is open, and one that isn't
|
# close a fd that is open, and one that isn't
|
||||||
os.closerange(f, f+2)
|
os.closerange(first, first + 2)
|
||||||
self.assertRaises(OSError, os.write, f, "a")
|
self.assertRaises(OSError, os.write, first, "a")
|
||||||
|
|
||||||
class TemporaryFileTests(unittest.TestCase):
|
class TemporaryFileTests(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user