diff options
author | Gregory P. Smith <greg@mad-scientist.com> | 2008-03-20 05:41:53 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@mad-scientist.com> | 2008-03-20 05:41:53 (GMT) |
commit | 6af3db8632783cf1f46ae1798b29db169007431b (patch) | |
tree | 89c73dd12d657c9a0143e8658a78bc453bdf2e2f /Lib | |
parent | 45ea86c1245358fc4097f60aaeee386d18ca1c07 (diff) | |
download | cpython-6af3db8632783cf1f46ae1798b29db169007431b.zip cpython-6af3db8632783cf1f46ae1798b29db169007431b.tar.gz cpython-6af3db8632783cf1f46ae1798b29db169007431b.tar.bz2 |
Attempt to fix the Solaris Sparc 10 buildbot. It was failing with an invalid
argument error on ioctl. This was caused by the added test_fcntl ioctl test
that hard coded 0 as the fd to use. Without a terminal, this fails on solaris.
(it passed from the command line on sol 10, both 32 and 64 bit)
Also, test_ioctl exists so I moved the test into there where it belongs.
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/test/test_fcntl.py | 29 | ||||
-rw-r--r-- | Lib/test/test_ioctl.py | 29 |
2 files changed, 30 insertions, 28 deletions
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py index 08b59ec..8d416b6 100755 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -3,7 +3,6 @@ OS/2+EMX doesn't support the file locking operations. """ -import struct import fcntl import os import struct @@ -11,12 +10,7 @@ import sys import unittest from test.test_support import verbose, TESTFN, unlink, run_unittest -# TODO - Write tests for ioctl(), flock() and lockf(). - -try: - import termios -except ImportError: - termios = None +# TODO - Write tests for flock() and lockf(). def get_lockdata(): if sys.platform.startswith('atheos'): @@ -88,29 +82,8 @@ class TestFcntl(unittest.TestCase): self.f.close() -class TestIoctl(unittest.TestCase): - if termios: - def test_ioctl_signed_unsigned_code_param(self): - if termios.TIOCSWINSZ < 0: - set_winsz_opcode_maybe_neg = termios.TIOCSWINSZ - set_winsz_opcode_pos = termios.TIOCSWINSZ & 0xffffffffL - else: - set_winsz_opcode_pos = termios.TIOCSWINSZ - set_winsz_opcode_maybe_neg, = struct.unpack("i", - struct.pack("I", termios.TIOCSWINSZ)) - - # We're just testing that these calls do not raise exceptions. - saved_winsz = fcntl.ioctl(0, termios.TIOCGWINSZ, "\0"*8) - our_winsz = struct.pack("HHHH",80,25,0,0) - # test both with a positive and potentially negative ioctl code - new_winsz = fcntl.ioctl(0, set_winsz_opcode_pos, our_winsz) - new_winsz = fcntl.ioctl(0, set_winsz_opcode_maybe_neg, our_winsz) - fcntl.ioctl(0, set_winsz_opcode_maybe_neg, saved_winsz) - - def test_main(): run_unittest(TestFcntl) - run_unittest(TestIoctl) if __name__ == '__main__': test_main() diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py index 2b127e2..9e6d4bc 100644 --- a/Lib/test/test_ioctl.py +++ b/Lib/test/test_ioctl.py @@ -14,6 +14,11 @@ try: except IOError: raise TestSkipped("Unable to open /dev/tty") +try: + import pty +except ImportError: + pty = None + class IoctlTests(unittest.TestCase): def test_ioctl(self): # If this process has been put into the background, TIOCGPGRP returns @@ -34,6 +39,30 @@ class IoctlTests(unittest.TestCase): self.assertEquals(r, 0) self.assert_(rpgrp in ids, "%s not in %s" % (rpgrp, ids)) + def test_ioctl_signed_unsigned_code_param(self): + if not pty: + raise TestSkipped('pty module required') + mfd, sfd = pty.openpty() + try: + if termios.TIOCSWINSZ < 0: + set_winsz_opcode_maybe_neg = termios.TIOCSWINSZ + set_winsz_opcode_pos = termios.TIOCSWINSZ & 0xffffffffL + else: + set_winsz_opcode_pos = termios.TIOCSWINSZ + set_winsz_opcode_maybe_neg, = struct.unpack("i", + struct.pack("I", termios.TIOCSWINSZ)) + + # We're just testing that these calls do not raise exceptions. + saved_winsz = fcntl.ioctl(mfd, termios.TIOCGWINSZ, "\0"*8) + our_winsz = struct.pack("HHHH",80,25,0,0) + # test both with a positive and potentially negative ioctl code + new_winsz = fcntl.ioctl(mfd, set_winsz_opcode_pos, our_winsz) + new_winsz = fcntl.ioctl(mfd, set_winsz_opcode_maybe_neg, our_winsz) + fcntl.ioctl(mfd, set_winsz_opcode_maybe_neg, saved_winsz) + finally: + os.close(mfd) + os.close(sfd) + def test_main(): run_unittest(IoctlTests) |