diff options
author | Michael W. Hudson <mwh@python.net> | 2003-03-03 12:29:42 (GMT) |
---|---|---|
committer | Michael W. Hudson <mwh@python.net> | 2003-03-03 12:29:42 (GMT) |
commit | f00899866888408106fea4147a9d2cdc2f1e8dbc (patch) | |
tree | 32aae5a6d01192bc79456886bd8d299ad84ecdeb /Lib/test/test_ioctl.py | |
parent | 122152451e1bc7aaff69d28b8950afa7848c6de6 (diff) | |
download | cpython-f00899866888408106fea4147a9d2cdc2f1e8dbc.zip cpython-f00899866888408106fea4147a9d2cdc2f1e8dbc.tar.gz cpython-f00899866888408106fea4147a9d2cdc2f1e8dbc.tar.bz2 |
Fix bug
[ 555817 ] Flawed fcntl.ioctl implementation.
with my patch that allows for an array to be mutated when passed
as the buffer argument to ioctl() (details complicated by
backwards compatibility considerations -- read the docs!).
Diffstat (limited to 'Lib/test/test_ioctl.py')
-rw-r--r-- | Lib/test/test_ioctl.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_ioctl.py b/Lib/test/test_ioctl.py new file mode 100644 index 0000000..a6a59c5 --- /dev/null +++ b/Lib/test/test_ioctl.py @@ -0,0 +1,31 @@ +import unittest +from test_support import TestSkipped, run_unittest +import os, struct +try: + import fcntl, termios +except ImportError: + raise TestSkipped("No fcntl or termios module") +if not hasattr(termios,'TIOCGPGRP'): + raise TestSkipped("termios module doesn't have TIOCGPGRP") + +class IoctlTests(unittest.TestCase): + def test_ioctl(self): + pgrp = os.getpgrp() + tty = open("/dev/tty", "r") + r = fcntl.ioctl(tty, termios.TIOCGPGRP, " ") + self.assertEquals(pgrp, struct.unpack("i", r)[0]) + + def test_ioctl_mutate(self): + import array + buf = array.array('i', [0]) + pgrp = os.getpgrp() + tty = open("/dev/tty", "r") + r = fcntl.ioctl(tty, termios.TIOCGPGRP, buf, 1) + self.assertEquals(r, 0) + self.assertEquals(pgrp, buf[0]) + +def test_main(): + run_unittest(IoctlTests) + +if __name__ == "__main__": + test_main() |