cpython/Lib/test/test_eintr.py
Victor Stinner baab5f7341 Issue #25122: Fix test_eintr.test_open() on FreeBSD
Skip test_open() and test_os_open(): both tests uses a FIFO and signals, but
there is a bug in the FreeBSD kernel which blocks the test. Skip the tests
until the bug is fixed in FreeBSD kernel.

Remove also debug traces from test_eintr:

* stop using faulthandler to have a timeout
* remove print()

Write also open and close on two lines in test_open() and test_os_open()
tests. If these tests block again, we can know if the test is stuck at open or
close.

test_eintr: don't always run the test in debug mode.
2015-09-18 11:23:42 +02:00

31 lines
857 B
Python

import os
import signal
import subprocess
import sys
import unittest
from test import support
from test.support import script_helper
@unittest.skipUnless(os.name == "posix", "only supported on Unix")
class EINTRTests(unittest.TestCase):
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
def test_all(self):
# Run the tester in a sub-process, to make sure there is only one
# thread (for reliable signal delivery).
tester = support.findfile("eintr_tester.py", subdir="eintrdata")
if support.verbose:
args = [sys.executable, tester]
with subprocess.Popen(args) as proc:
exitcode = proc.wait()
self.assertEqual(exitcode, 0)
else:
script_helper.assert_python_ok(tester)
if __name__ == "__main__":
unittest.main()