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!).
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()