diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py index 47e59115230..07dac09d866 100644 --- a/Lib/test/test_ioctl.py +++ b/Lib/test/test_ioctl.py @@ -7,9 +7,17 @@ try: tty = open("/dev/tty", "r") - tty.close() except IOError: raise unittest.SkipTest("Unable to open /dev/tty") +else: + # Skip if another process is in foreground + r = fcntl.ioctl(tty, termios.TIOCGPGRP, " ") + tty.close() + rpgrp = struct.unpack("i", r)[0] + if rpgrp not in (os.getpgrp(), os.getsid(0)): + raise unittest.SkipTest("Neither the process group nor the session " + "are attached to /dev/tty") + del tty, r, rpgrp try: import pty diff --git a/Misc/NEWS b/Misc/NEWS index 318b826d21e..c6795a249aa 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -136,6 +136,8 @@ Tools/Demos Tests ----- +- Issue #7564: Skip test_ioctl if another process is attached to /dev/tty. + - Issue #8433: Fix test_curses failure with newer versions of ncurses. - Issue #9496: Provide a test suite for the rlcompleter module. Patch by