diff options
Diffstat (limited to 'Lib/test/test_ioctl.py')
-rw-r--r-- | Lib/test/test_ioctl.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py index 959d16e..2b127e2 100644 --- a/Lib/test/test_ioctl.py +++ b/Lib/test/test_ioctl.py @@ -1,5 +1,5 @@ import unittest -from test_support import TestSkipped, run_unittest +from test.test_support import TestSkipped, run_unittest import os, struct try: import fcntl, termios @@ -16,19 +16,23 @@ except IOError: class IoctlTests(unittest.TestCase): def test_ioctl(self): - pgrp = os.getpgrp() + # If this process has been put into the background, TIOCGPGRP returns + # the session ID instead of the process group id. + ids = (os.getpgrp(), os.getsid(0)) tty = open("/dev/tty", "r") r = fcntl.ioctl(tty, termios.TIOCGPGRP, " ") - self.assertEquals(pgrp, struct.unpack("i", r)[0]) + rpgrp = struct.unpack("i", r)[0] + self.assert_(rpgrp in ids, "%s not in %s" % (rpgrp, ids)) def test_ioctl_mutate(self): import array buf = array.array('i', [0]) - pgrp = os.getpgrp() + ids = (os.getpgrp(), os.getsid(0)) tty = open("/dev/tty", "r") r = fcntl.ioctl(tty, termios.TIOCGPGRP, buf, 1) + rpgrp = buf[0] self.assertEquals(r, 0) - self.assertEquals(pgrp, buf[0]) + self.assert_(rpgrp in ids, "%s not in %s" % (rpgrp, ids)) def test_main(): run_unittest(IoctlTests) |