specify posix.fcntl:
- before:
fc = require "posix.fcntl"
- describe open:
- before: |
unistd = require "posix.unistd"
O_CREAT, O_RDONLY, O_WRONLY = fc.O_CREAT, fc.O_RDONLY, fc.O_WRONLY
open = fc.open
close, read, write = unistd.close, unistd.read, unistd.write
dir = posix.mkdtemp (template)
fh = io.open (dir .. "/file", "w")
fh:write "garbage\n"
fh:close ()
- after:
rmtmp (dir)
- context with bad arguments:
badargs.diagnose (open, "(string, int, ?int)")
- it opens an existing file:
fd, err = open (dir .. "/file", O_RDONLY)
expect (type (fd)).to_be "number"
expect (fd >= 0).to_be (true)
expect (read (fd, 10)).to_be "garbage\n"
close (fd)
- it opens a new file:
buf = "more garbage\n"
fd, err = open (dir .. "/creat", bor (O_CREAT, O_WRONLY))
expect (type (fd)).to_be "number"
expect (fd >= 0).to_be (true)
expect (write (fd, buf)).to_be (#buf)
close (fd)
- describe posix_fadvise:
- before:
posix_fadvise = fc.posix_fadvise
- context with bad arguments:
if posix_fadvise then
badargs.diagnose (posix_fadvise, "(int, int, int, int)")
end