touch does not work with directories in windows.

This commit is contained in:
uid20006
2005-08-16 18:24:28 +00:00
parent e7ced7f8af
commit 87b373b3d8

View File

@@ -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