Test: add new helper function: rmdir()

- lfs.rmdir() only removes empty directories

- os.remove() supercedes lfs.rmdir(); removes files and empty directories

- helpers.rmdir() first removes all files within a directory, then the
  directory itself
This commit is contained in:
Marco Hinz 2015-07-20 16:51:53 +02:00
parent 05bb841487
commit 0f34b256aa

View File

@ -290,6 +290,28 @@ local function expect(contents)
return eq(dedent(contents), curbuf_contents())
end
local function rmdir(path)
if lfs.attributes(path, 'mode') ~= 'directory' then
return nil
end
for file in lfs.dir(path) do
if file == '.' or file == '..' then
goto continue
end
ret, err = os.remove(path..'/'..file)
if not ret then
error('os.remove: '..err)
return nil
end
::continue::
end
ret, err = os.remove(path)
if not ret then
error('os.remove: '..err)
end
return ret
end
return {
clear = clear,
spawn = spawn,
@ -321,5 +343,6 @@ return {
curbuf_contents = curbuf_contents,
wait = wait,
set_session = set_session,
write_file = write_file
write_file = write_file,
rmdir = rmdir
}