specify posix.dirent:
- before:
dirent = require "posix.dirent"
- describe dir:
- before:
dir = dirent.dir
- context with bad arguments: |
badargs.diagnose (dir, "(?string)")
examples {
["it diagnoses argument #1 not a valid file"] = function ()
expect (dir "/not/exists").to_raise.any_of {
-- Can't be any more accurate, because error message is system specific
"bad argument #1 to 'dir' (/not/exists: ",
"bad argument #1 to '?' (/not/exists: ",
}
end
}
- describe files:
- before:
# Make and change into a temporary subdirectory where we can
# control all the contents for self-contained examples.
link, mkdir, mkdtemp = posix.link, posix.mkdir, posix.mkdtemp
origwd = posix.getcwd ()
dir, errmsg = mkdtemp (template)
mkdir (dir .. "/subdir")
link ("subdir", dir .. "/soft", true)
touch (dir .. "/file")
link (dir .. "/file", dir .. "/hard")
link ("no such destination", dir .. "/dangling", true)
files = dirent.files
- after:
posix.chdir (origwd)
rmtmp (dir)
- context with bad arguments: |
badargs.diagnose (files, "(?string)")
examples {
["it diagnoses argument #1 not a valid file"] = function ()
expect (files "/not/exists").to_raise.any_of {
-- Can't be any more accurate, because error message is system specific
"bad argument #1 to 'files' (/not/exists: ",
"bad argument #1 to '?' (/not/exists: ",
}
end
}
- it returns a table of files in the given directory:
t = {}
for f in files (dir) do
table.insert (t, f)
end
table.sort (t)
expect (t).to_equal {".", "..", "dangling", "file", "hard", "soft", "subdir"}