aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-09-20 12:32:42 +0200
committerGitHub <noreply@github.com>2016-09-20 12:32:42 +0200
commitbba6315580814bcd2b2dea8340a4d47265854949 (patch)
tree6a5dc23a6291a95af4190e1950f6a5da60894a4a
parentefe8311371830930b2ab14937b8d6adc801cc99b (diff)
parent911421d328a91a56389248fe27bee6c95784d95f (diff)
downloadrneovim-bba6315580814bcd2b2dea8340a4d47265854949.tar.gz
rneovim-bba6315580814bcd2b2dea8340a4d47265854949.tar.bz2
rneovim-bba6315580814bcd2b2dea8340a4d47265854949.zip
Merge #5362 from justinmk/testcleanup
test: helpers.rmdir(): retry+sleep on failure
-rw-r--r--test/functional/helpers.lua22
-rw-r--r--test/functional/legacy/012_directory_spec.lua14
-rw-r--r--test/functional/legacy/031_close_commands_spec.lua19
3 files changed, 32 insertions, 23 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index f6d09e6139..d5b7442b57 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -376,8 +376,8 @@ local function wait()
end
-- sleeps the test runner (_not_ the nvim instance)
-local function sleep(timeout)
- run(nil, nil, nil, timeout)
+local function sleep(ms)
+ run(nil, nil, nil, ms)
end
local function curbuf_contents()
@@ -403,7 +403,7 @@ local function expect(contents)
return eq(dedent(contents), curbuf_contents())
end
-local function rmdir(path)
+local function do_rmdir(path)
if lfs.attributes(path, 'mode') ~= 'directory' then
return nil
end
@@ -411,7 +411,7 @@ local function rmdir(path)
if file ~= '.' and file ~= '..' then
local abspath = path..'/'..file
if lfs.attributes(abspath, 'mode') == 'directory' then
- local ret = rmdir(abspath) -- recurse
+ local ret = do_rmdir(abspath) -- recurse
if not ret then
return nil
end
@@ -424,13 +424,23 @@ local function rmdir(path)
end
end
end
- local ret, err = os.remove(path)
+ local ret, err = lfs.rmdir(path)
if not ret then
- error('os.remove: '..err)
+ error('lfs.rmdir('..path..'): '..err)
end
return ret
end
+local function rmdir(path)
+ local ret, _ = pcall(do_rmdir, path)
+ -- During teardown, the nvim process may not exit quickly enough, then rmdir()
+ -- will fail (on Windows).
+ if not ret then -- Try again.
+ sleep(1000)
+ do_rmdir(path)
+ end
+end
+
local exc_exec = function(cmd)
nvim_command(([[
try
diff --git a/test/functional/legacy/012_directory_spec.lua b/test/functional/legacy/012_directory_spec.lua
index 44e1c14d78..cef31ae405 100644
--- a/test/functional/legacy/012_directory_spec.lua
+++ b/test/functional/legacy/012_directory_spec.lua
@@ -36,6 +36,7 @@ describe("'directory' option", function()
clear()
end)
teardown(function()
+ execute('qall!')
helpers.rmdir('Xtest.je')
helpers.rmdir('Xtest2')
os.remove('Xtest1')
@@ -52,34 +53,27 @@ describe("'directory' option", function()
execute('set dir=.,~')
-- sanity check: files should not exist yet.
- eq(nil, lfs.attributes('.Xtest1.swp')) -- unix
- eq(nil, lfs.attributes('Xtest1.swp')) -- non-unix
+ eq(nil, lfs.attributes('.Xtest1.swp'))
execute('e! Xtest1')
wait()
eq('Xtest1', eval('buffer_name("%")'))
-- Verify that the swapfile exists. In the legacy test this was done by
-- reading the output from :!ls.
- if eval('has("unix")') == 1 then
- neq(nil, lfs.attributes('.Xtest1.swp'))
- else
- neq(nil, lfs.attributes('Xtest1.swp'))
- end
+ neq(nil, lfs.attributes('.Xtest1.swp'))
execute('set dir=./Xtest2,.,~')
execute('e Xtest1')
wait()
-- swapfile should no longer exist in CWD.
- eq(nil, lfs.attributes('.Xtest1.swp')) -- for unix
- eq(nil, lfs.attributes('Xtest1.swp')) -- for other systems
+ eq(nil, lfs.attributes('.Xtest1.swp'))
eq({ "Xtest1.swp", "Xtest3" }, ls_dir_sorted("Xtest2"))
execute('set dir=Xtest.je,~')
execute('e Xtest2/Xtest3')
eq(1, eval('&swapfile'))
- execute('swap')
wait()
eq({ "Xtest3" }, ls_dir_sorted("Xtest2"))
diff --git a/test/functional/legacy/031_close_commands_spec.lua b/test/functional/legacy/031_close_commands_spec.lua
index eaf4e2982f..d41eadaa00 100644
--- a/test/functional/legacy/031_close_commands_spec.lua
+++ b/test/functional/legacy/031_close_commands_spec.lua
@@ -19,7 +19,18 @@ local expect = helpers.expect
local execute = helpers.execute
describe('Commands that close windows and/or buffers', function()
- setup(clear)
+ local function cleanup()
+ os.remove('Xtest1')
+ os.remove('Xtest2')
+ os.remove('Xtest3')
+ end
+ setup(function()
+ cleanup()
+ clear()
+ end)
+ teardown(function()
+ cleanup()
+ end)
it('is working', function()
insert('testtext')
@@ -112,10 +123,4 @@ describe('Commands that close windows and/or buffers', function()
" Now nvim should have exited
throw "Oh, Not finished yet."]])
end)
-
- teardown(function()
- os.remove('Xtest1')
- os.remove('Xtest2')
- os.remove('Xtest3')
- end)
end)