From d71c63cdb776f7d25313f8fcd14f07512ba1f83e Mon Sep 17 00:00:00 2001 From: Fabio Mascarenhas Date: Mon, 1 Oct 2012 11:11:48 -0300 Subject: luafilesystem 1.6.0 --- tests/test.lua | 81 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 21 deletions(-) (limited to 'tests') diff --git a/tests/test.lua b/tests/test.lua index 20948df..4990aec 100644 --- a/tests/test.lua +++ b/tests/test.lua @@ -7,22 +7,25 @@ local upper = ".." local lfs = require"lfs" print (lfs._VERSION) +io.write(".") +io.flush() + function attrdir (path) - for file in lfs.dir(path) do - if file ~= "." and file ~= ".." then - local f = path..sep..file - print ("\t=> "..f.." <=") - local attr = lfs.attributes (f) - assert (type(attr) == "table") - if attr.mode == "directory" then - attrdir (f) - else - for name, value in pairs(attr) do - print (name, value) - end - end - end - end + for file in lfs.dir(path) do + if file ~= "." and file ~= ".." then + local f = path..sep..file + print ("\t=> "..f.." <=") + local attr = lfs.attributes (f) + assert (type(attr) == "table") + if attr.mode == "directory" then + attrdir (f) + else + for name, value in pairs(attr) do + print (name, value) + end + end + end + end end -- Checking changing directories @@ -33,6 +36,9 @@ assert (lfs.chdir (reldir), "could not change back to current directory") 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") +io.write(".") +io.flush() + -- Changing creating and removing directories local tmpdir = current..sep.."lfs_tmp_dir" local tmpfile = tmpdir..sep.."tmp_file" @@ -40,19 +46,25 @@ local tmpfile = tmpdir..sep.."tmp_file" -- that may have resulted from an interrupted test execution and remove it if lfs.chdir (tmpdir) then assert (lfs.chdir (upper), "could not change to upper directory") - assert (os.remove (tmpfile), "could not remove file from previous test") + assert (os.remove (tmpfile), "could not remove file from previous test") assert (lfs.rmdir (tmpdir), "could not remove directory from previous test") end +io.write(".") +io.flush() + -- tries to create a directory assert (lfs.mkdir (tmpdir), "could not make a new directory") local attrib, errmsg = lfs.attributes (tmpdir) 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 local f = io.open(tmpfile, "w") f:close() +io.write(".") +io.flush() + -- Change access time local testdate = os.time({ year = 2007, day = 10, month = 2, hour=0}) assert (lfs.touch (tmpfile, testdate)) @@ -60,6 +72,9 @@ local new_att = assert (lfs.attributes (tmpfile)) assert (new_att.access == testdate, "could not set access time") assert (new_att.modification == testdate, "could not set modification time") +io.write(".") +io.flush() + -- Change access and modification time local testdate1 = os.time({ year = 2007, day = 10, month = 2, hour=0}) local testdate2 = os.time({ year = 2007, day = 11, month = 2, hour=0}) @@ -69,6 +84,9 @@ local new_att = assert (lfs.attributes (tmpfile)) assert (new_att.access == testdate2, "could not set access time") assert (new_att.modification == testdate1, "could not set modification time") +io.write(".") +io.flush() + -- Checking link (does not work on Windows) if lfs.link (tmpfile, "_a_link_for_test_", true) then assert (lfs.attributes"_a_link_for_test_".mode == "file") @@ -79,6 +97,9 @@ if lfs.link (tmpfile, "_a_link_for_test_", true) then assert (os.remove"_a_hard_link_for_test_") end +io.write(".") +io.flush() + -- Checking text/binary modes (only has an effect in Windows) local f = io.open(tmpfile, "w") local result, mode = lfs.setmode(f, "binary") @@ -86,30 +107,45 @@ assert(result) -- on non-Windows platforms, mode is always returned as "binary" result, mode = lfs.setmode(f, "text") assert(result and mode == "binary") f:close() - + +io.write(".") +io.flush() + -- Restore access time to current value assert (lfs.touch (tmpfile, attrib.access, attrib.modification)) new_att = assert (lfs.attributes (tmpfile)) assert (new_att.access == attrib.access) assert (new_att.modification == attrib.modification) +io.write(".") +io.flush() + -- 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.mkdir (tmpdir..sep.."lfs_tmp_dir") == nil, "could create a directory inside a non-existent one") +io.write(".") +io.flush() + -- 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 (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory") +io.write(".") +io.flush() + -- Stressing directory iterator count = 0 for i = 1, 4000 do - for file in lfs.dir (tmp) do - count = count + 1 - end + for file in lfs.dir (tmp) do + count = count + 1 + end end +io.write(".") +io.flush() + -- Stressing directory iterator, explicit version count = 0 for i = 1, 4000 do @@ -122,6 +158,9 @@ for i = 1, 4000 do assert(not pcall(dir.next, dir)) end +io.write(".") +io.flush() + -- directory explicit close local iter, dir = lfs.dir(tmp) dir:close() -- cgit v1.2.3-55-g6feb