diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2009-05-24 15:46:13 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2009-05-24 15:46:13 (GMT) |
commit | 61f77b57fdfcc8a630667dda3cbb8c5ac502f438 (patch) | |
tree | d05b378ce8aa5c1ad19daa86db92a9c9245db8a9 /Lib/test/test_fcntl.py | |
parent | 1ef7f6e1834cf8d5bc462f3f5845e294a7d54220 (diff) | |
download | cpython-61f77b57fdfcc8a630667dda3cbb8c5ac502f438.zip cpython-61f77b57fdfcc8a630667dda3cbb8c5ac502f438.tar.gz cpython-61f77b57fdfcc8a630667dda3cbb8c5ac502f438.tar.bz2 |
Merged revisions 72887 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72887 | antoine.pitrou | 2009-05-24 17:40:09 +0200 (dim., 24 mai 2009) | 6 lines
Issue #1309352: fcntl now converts its third arguments to a C `long` rather
than an int, which makes some operations possible under 64-bit Linux (e.g.
DN_MULTISHOT with F_NOTIFY).
........
Diffstat (limited to 'Lib/test/test_fcntl.py')
-rwxr-xr-x | Lib/test/test_fcntl.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py index 72748f9..3c18f1d 100755 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -59,7 +59,7 @@ class TestFcntl(unittest.TestCase): self.f = None def tearDown(self): - if not self.f.closed: + if self.f and not self.f.closed: self.f.close() unlink(TESTFN) @@ -83,6 +83,21 @@ class TestFcntl(unittest.TestCase): rv = fcntl.fcntl(self.f, fcntl.F_SETLKW, lockdata) self.f.close() + def test_fcntl_64_bit(self): + # Issue #1309352: fcntl shouldn't fail when the third arg fits in a + # C 'long' but not in a C 'int'. + try: + cmd = fcntl.F_NOTIFY + # This flag is larger than 2**31 in 64-bit builds + flags = fcntl.DN_MULTISHOT + except AttributeError: + self.skipTest("F_NOTIFY or DN_MULTISHOT unavailable") + fd = os.open(os.path.dirname(os.path.abspath(TESTFN)), os.O_RDONLY) + try: + fcntl.fcntl(fd, cmd, flags) + finally: + os.close(fd) + def test_main(): run_unittest(TestFcntl) |