mirror of
https://github.com/lunarmodules/luafilesystem.git
synced 2026-07-25 05:03:07 +00:00
touch does not work with directories in windows.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/local/bin/lua
|
#!/usr/local/bin/lua50
|
||||||
|
|
||||||
local tmp = "/tmp"
|
local tmp = "/tmp"
|
||||||
local sep = "/"
|
local sep = "/"
|
||||||
@@ -9,7 +9,7 @@ require"lfs"
|
|||||||
function attrdir (path)
|
function attrdir (path)
|
||||||
for file in lfs.dir(path) do
|
for file in lfs.dir(path) do
|
||||||
if file ~= "." and file ~= ".." then
|
if file ~= "." and file ~= ".." then
|
||||||
local f = path..'/'..file
|
local f = path..sep..file
|
||||||
print ("\t=> "..f.." <=")
|
print ("\t=> "..f.." <=")
|
||||||
local attr = lfs.attributes (f)
|
local attr = lfs.attributes (f)
|
||||||
assert (type(attr) == "table")
|
assert (type(attr) == "table")
|
||||||
@@ -31,34 +31,45 @@ assert (lfs.chdir (upper), "could not change to upper directory")
|
|||||||
assert (lfs.chdir (reldir), "could not change back to current directory")
|
assert (lfs.chdir (reldir), "could not change back to current directory")
|
||||||
assert (lfs.currentdir() == current, "error trying to change directories")
|
assert (lfs.currentdir() == current, "error trying to change directories")
|
||||||
assert (lfs.chdir ("this couldn't be an actual directory") == nil, "could change to a non-existent directory")
|
assert (lfs.chdir ("this couldn't be an actual directory") == nil, "could change to a non-existent directory")
|
||||||
|
|
||||||
-- Changing creating and removing directories
|
-- Changing creating and removing directories
|
||||||
local tmpdir = tmp.."/lfs_tmp_dir"
|
local tmpdir = tmp..sep.."lfs_tmp_dir"
|
||||||
|
local tmpfile = tmpdir..sep.."tmp_file"
|
||||||
assert (lfs.mkdir (tmpdir), "could not make a new directory")
|
assert (lfs.mkdir (tmpdir), "could not make a new directory")
|
||||||
local attrib, errmsg = lfs.attributes (tmpdir)
|
local attrib, errmsg = lfs.attributes (tmpdir)
|
||||||
if not attrib then
|
if not attrib then
|
||||||
error ("could not get attributes of file `"..tmpdir.."':\n"..errmsg)
|
error ("could not get attributes of file `"..tmpdir.."':\n"..errmsg)
|
||||||
end
|
end
|
||||||
|
local f = io.open(tmpfile, "w")
|
||||||
|
f:close()
|
||||||
|
|
||||||
-- Change access time
|
-- Change access time
|
||||||
assert (lfs.touch (tmpdir, 11))
|
assert (lfs.touch (tmpfile, 11))
|
||||||
local new_att = assert (lfs.attributes (tmpdir))
|
local new_att = assert (lfs.attributes (tmpfile))
|
||||||
assert (new_att.access == 11, "could not set access time")
|
assert (new_att.access == 11, "could not set access time")
|
||||||
assert (new_att.modification == 11, "could not set modification time")
|
assert (new_att.modification == 11, "could not set modification time")
|
||||||
|
|
||||||
-- Change access and modification time
|
-- Change access and modification time
|
||||||
assert (lfs.touch (tmpdir, 33, 22))
|
assert (lfs.touch (tmpfile, 33, 22))
|
||||||
local new_att = assert (lfs.attributes (tmpdir))
|
local new_att = assert (lfs.attributes (tmpfile))
|
||||||
assert (new_att.access == 33, "could not set access time")
|
assert (new_att.access == 33, "could not set access time")
|
||||||
assert (new_att.modification == 22, "could not set modification time")
|
assert (new_att.modification == 22, "could not set modification time")
|
||||||
|
|
||||||
-- Restore access time to current value
|
-- Restore access time to current value
|
||||||
assert (lfs.touch (tmpdir))
|
assert (lfs.touch (tmpfile))
|
||||||
new_att = assert (lfs.attributes (tmpdir))
|
new_att = assert (lfs.attributes (tmpfile))
|
||||||
assert (new_att.access == attrib.access)
|
assert (new_att.access == attrib.access)
|
||||||
assert (new_att.modification == attrib.modification)
|
assert (new_att.modification == attrib.modification)
|
||||||
-- Remove new directory
|
|
||||||
|
-- Remove new file and directory
|
||||||
|
assert (os.remove (tmpfile), "could not remove new file")
|
||||||
assert (lfs.rmdir (tmpdir), "could not remove new directory")
|
assert (lfs.rmdir (tmpdir), "could not remove new directory")
|
||||||
assert (lfs.mkdir (tmpdir.."/lfs_tmp_dir") == false, "could create a directory inside a non-existent one")
|
assert (lfs.mkdir (tmpdir..sep.."lfs_tmp_dir") == false, "could create a directory inside a non-existent one")
|
||||||
|
|
||||||
-- Trying to get attributes of a non-existent file
|
-- Trying to get attributes of a non-existent file
|
||||||
assert (lfs.attributes ("this couldn't be an actual file") == nil, "could get attributes of a non-existent file")
|
assert (lfs.attributes ("this couldn't be an actual file") == nil, "could get attributes of a non-existent file")
|
||||||
assert (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory")
|
assert (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory")
|
||||||
|
|
||||||
-- Stressing directory iterator
|
-- Stressing directory iterator
|
||||||
count = 0
|
count = 0
|
||||||
for i = 1, 4000 do
|
for i = 1, 4000 do
|
||||||
|
|||||||
Reference in New Issue
Block a user