mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Update the tests for the fcntl module to check passing in file objects,
and using the constants defined there instead of FCNTL.
This commit is contained in:
parent
d0de57cfbb
commit
bc7809b529
1 changed files with 21 additions and 11 deletions
|
@ -4,33 +4,43 @@
|
||||||
"""
|
"""
|
||||||
import struct
|
import struct
|
||||||
import fcntl
|
import fcntl
|
||||||
import FCNTL
|
|
||||||
import os, sys
|
import os, sys
|
||||||
from test_support import verbose, TESTFN
|
from test_support import verbose, TESTFN
|
||||||
|
|
||||||
filename = TESTFN
|
filename = TESTFN
|
||||||
|
|
||||||
# the example from the library docs
|
|
||||||
f = open(filename, 'w')
|
|
||||||
rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETFL, os.O_NONBLOCK)
|
|
||||||
if verbose:
|
|
||||||
print 'Status from fnctl with O_NONBLOCK: ', rv
|
|
||||||
|
|
||||||
if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin1',
|
if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin1',
|
||||||
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
|
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
|
||||||
'bsdos2', 'bsdos3', 'bsdos4',
|
'bsdos2', 'bsdos3', 'bsdos4',
|
||||||
'openbsd', 'openbsd2'):
|
'openbsd', 'openbsd2'):
|
||||||
lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, FCNTL.F_WRLCK, 0)
|
lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, fcntl.F_WRLCK, 0)
|
||||||
elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
|
elif sys.platform in ['aix3', 'aix4', 'hp-uxB', 'unixware7']:
|
||||||
lockdata = struct.pack('hhlllii', FCNTL.F_WRLCK, 0, 0, 0, 0, 0, 0)
|
lockdata = struct.pack('hhlllii', fcntl.F_WRLCK, 0, 0, 0, 0, 0, 0)
|
||||||
else:
|
else:
|
||||||
lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0)
|
lockdata = struct.pack('hhllhh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)
|
||||||
if verbose:
|
if verbose:
|
||||||
print 'struct.pack: ', `lockdata`
|
print 'struct.pack: ', `lockdata`
|
||||||
|
|
||||||
rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW, lockdata)
|
|
||||||
|
# the example from the library docs
|
||||||
|
f = open(filename, 'w')
|
||||||
|
rv = fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
|
||||||
|
if verbose:
|
||||||
|
print 'Status from fnctl with O_NONBLOCK: ', rv
|
||||||
|
|
||||||
|
rv = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW, lockdata)
|
||||||
if verbose:
|
if verbose:
|
||||||
print 'String from fcntl with F_SETLKW: ', `rv`
|
print 'String from fcntl with F_SETLKW: ', `rv`
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
os.unlink(filename)
|
os.unlink(filename)
|
||||||
|
|
||||||
|
|
||||||
|
# Again, but pass the file rather than numeric descriptor:
|
||||||
|
f = open(filename, 'w')
|
||||||
|
rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NONBLOCK)
|
||||||
|
|
||||||
|
rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata)
|
||||||
|
|
||||||
|
f.close()
|
||||||
|
os.unlink(filename)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue