Merge #8436 win: test: cleanup on exit'

This commit is contained in:
Justin M. Keyes
2018-05-26 11:14:59 +02:00
committed by GitHub
5 changed files with 31 additions and 20 deletions

View File

@@ -9,6 +9,7 @@ local command = helpers.command
local feed_command = helpers.feed_command local feed_command = helpers.feed_command
local funcs = helpers.funcs local funcs = helpers.funcs
local meths = helpers.meths local meths = helpers.meths
local iswin = helpers.iswin
local fname = 'Xtest-functional-ex_cmds-write' local fname = 'Xtest-functional-ex_cmds-write'
local fname_bak = fname .. '~' local fname_bak = fname .. '~'
@@ -34,11 +35,14 @@ describe(':write', function()
it('&backupcopy=auto preserves symlinks', function() it('&backupcopy=auto preserves symlinks', function()
command('set backupcopy=auto') command('set backupcopy=auto')
write_file('test_bkc_file.txt', 'content0') write_file('test_bkc_file.txt', 'content0')
if helpers.iswin() then if iswin() then
command("silent !mklink test_bkc_link.txt test_bkc_file.txt") command("silent !mklink test_bkc_link.txt test_bkc_file.txt")
else else
command("silent !ln -s test_bkc_file.txt test_bkc_link.txt") command("silent !ln -s test_bkc_file.txt test_bkc_link.txt")
end end
if eval('v:shell_error') ~= 0 then
pending('Cannot create symlink', function()end)
end
source([[ source([[
edit test_bkc_link.txt edit test_bkc_link.txt
call setline(1, ['content1']) call setline(1, ['content1'])
@@ -51,11 +55,14 @@ describe(':write', function()
it('&backupcopy=no replaces symlink with new file', function() it('&backupcopy=no replaces symlink with new file', function()
command('set backupcopy=no') command('set backupcopy=no')
write_file('test_bkc_file.txt', 'content0') write_file('test_bkc_file.txt', 'content0')
if helpers.iswin() then if iswin() then
command("silent !mklink test_bkc_link.txt test_bkc_file.txt") command("silent !mklink test_bkc_link.txt test_bkc_file.txt")
else else
command("silent !ln -s test_bkc_file.txt test_bkc_link.txt") command("silent !ln -s test_bkc_file.txt test_bkc_link.txt")
end end
if eval('v:shell_error') ~= 0 then
pending('Cannot create symlink', function()end)
end
source([[ source([[
edit test_bkc_link.txt edit test_bkc_link.txt
call setline(1, ['content1']) call setline(1, ['content1'])
@@ -66,7 +73,8 @@ describe(':write', function()
end) end)
it("appends FIFO file", function() it("appends FIFO file", function()
if eval("executable('mkfifo')") == 0 then -- mkfifo creates read-only .lnk files on Windows
if iswin() or eval("executable('mkfifo')") == 0 then
pending('missing "mkfifo" command', function()end) pending('missing "mkfifo" command', function()end)
return return
end end
@@ -88,7 +96,7 @@ describe(':write', function()
command('let $HOME=""') command('let $HOME=""')
eq(funcs.fnamemodify('.', ':p:h'), funcs.fnamemodify('.', ':p:h:~')) eq(funcs.fnamemodify('.', ':p:h'), funcs.fnamemodify('.', ':p:h:~'))
-- Message from check_overwrite -- Message from check_overwrite
if not helpers.iswin() then if not iswin() then
eq(('\nE17: "'..funcs.fnamemodify('.', ':p:h')..'" is a directory'), eq(('\nE17: "'..funcs.fnamemodify('.', ':p:h')..'" is a directory'),
redir_exec('write .')) redir_exec('write .'))
end end
@@ -108,7 +116,7 @@ describe(':write', function()
funcs.setfperm(fname, 'r--------') funcs.setfperm(fname, 'r--------')
eq('Vim(write):E505: "Xtest-functional-ex_cmds-write" is read-only (add ! to override)', eq('Vim(write):E505: "Xtest-functional-ex_cmds-write" is read-only (add ! to override)',
exc_exec('write')) exc_exec('write'))
if helpers.iswin() then if iswin() then
eq(0, os.execute('del /q/f ' .. fname)) eq(0, os.execute('del /q/f ' .. fname))
eq(0, os.execute('rd /q/s ' .. fname_bak)) eq(0, os.execute('rd /q/s ' .. fname_bak))
else else
@@ -117,7 +125,7 @@ describe(':write', function()
end end
write_file(fname_bak, 'TTYX') write_file(fname_bak, 'TTYX')
-- FIXME: exc_exec('write!') outputs 0 in Windows -- FIXME: exc_exec('write!') outputs 0 in Windows
if helpers.iswin() then return end if iswin() then return end
lfs.link(fname_bak .. ('/xxxxx'):rep(20), fname, true) lfs.link(fname_bak .. ('/xxxxx'):rep(20), fname, true)
eq('Vim(write):E166: Can\'t open linked file for writing', eq('Vim(write):E166: Can\'t open linked file for writing',
exc_exec('write!')) exc_exec('write!'))

View File

@@ -3,21 +3,21 @@ local lfs = require('lfs')
local command, eq, neq, spawn, nvim_prog, set_session, write_file = local command, eq, neq, spawn, nvim_prog, set_session, write_file =
helpers.command, helpers.eq, helpers.neq, helpers.spawn, helpers.command, helpers.eq, helpers.neq, helpers.spawn,
helpers.nvim_prog, helpers.set_session, helpers.write_file helpers.nvim_prog, helpers.set_session, helpers.write_file
local iswin = helpers.iswin
local read_file = helpers.read_file
describe(':wshada', function() describe(':wshada', function()
local shada_file = 'wshada_test' local shada_file = 'wshada_test'
local session local session
before_each(function() before_each(function()
if session then
session:close()
end
-- Override the default session because we need 'swapfile' for these tests. -- Override the default session because we need 'swapfile' for these tests.
session = spawn({nvim_prog, '-u', 'NONE', '-i', '/dev/null', '--embed', session = spawn({nvim_prog, '-u', 'NONE', '-i', iswin() and 'nul' or '/dev/null', '--embed',
'--cmd', 'set swapfile'}) '--cmd', 'set swapfile'})
set_session(session) set_session(session)
end)
after_each(function ()
session:close()
os.remove(shada_file) os.remove(shada_file)
end) end)
@@ -36,7 +36,7 @@ describe(':wshada', function()
write_file(shada_file, text) write_file(shada_file, text)
-- sanity check -- sanity check
eq(text, io.open(shada_file):read()) eq(text, read_file(shada_file))
neq(nil, lfs.attributes(shada_file)) neq(nil, lfs.attributes(shada_file))
command('wsh! '..shada_file) command('wsh! '..shada_file)
@@ -49,8 +49,4 @@ describe(':wshada', function()
assert(char1:byte() == 0x01, assert(char1:byte() == 0x01,
shada_file..' should be a shada file') shada_file..' should be a shada file')
end) end)
teardown(function()
os.remove(shada_file)
end)
end) end)

View File

@@ -17,9 +17,10 @@ local lfs = require('lfs')
local clear, feed_command, expect, eq, neq, dedent, write_file, feed = local clear, feed_command, expect, eq, neq, dedent, write_file, feed =
helpers.clear, helpers.feed_command, helpers.expect, helpers.eq, helpers.neq, helpers.clear, helpers.feed_command, helpers.expect, helpers.eq, helpers.neq,
helpers.dedent, helpers.write_file, helpers.feed helpers.dedent, helpers.write_file, helpers.feed
local iswin = helpers.iswin
local function has_gzip() local function has_gzip()
local null = helpers.iswin() and 'nul' or '/dev/null' local null = iswin() and 'nul' or '/dev/null'
return os.execute('gzip --help >' .. null .. ' 2>&1') == 0 return os.execute('gzip --help >' .. null .. ' 2>&1') == 0
end end
@@ -59,7 +60,7 @@ describe('file reading, writing and bufnew and filter autocommands', function()
os.remove('test.out') os.remove('test.out')
end) end)
if not has_gzip() then if iswin() or not has_gzip() then
pending('skipped (missing `gzip` utility)', function() end) pending('skipped (missing `gzip` utility)', function() end)
else else

View File

@@ -74,7 +74,7 @@ describe('glob() and globpath()', function()
teardown(function() teardown(function()
if helpers.iswin() then if helpers.iswin() then
os.execute('del /q/f Xxx{ Xxx$') os.execute('del /q/f Xxx{ Xxx$')
os.execute('rd /q sautest') os.execute('rd /q /s sautest')
else else
os.execute("rm -rf sautest Xxx{ Xxx$") os.execute("rm -rf sautest Xxx{ Xxx$")
end end

View File

@@ -4,6 +4,9 @@ local eq, eval, command = helpers.eq, helpers.eval, helpers.command
describe('Test for delete()', function() describe('Test for delete()', function()
before_each(clear) before_each(clear)
after_each(function()
os.remove('Xfile')
end)
it('file delete', function() it('file delete', function()
command('split Xfile') command('split Xfile')
@@ -52,6 +55,9 @@ describe('Test for delete()', function()
silent !ln -s Xfile Xlink silent !ln -s Xfile Xlink
endif endif
]]) ]])
if eval('v:shell_error') ~= 0 then
pending('Cannot create symlink', function()end)
end
-- Delete the link, not the file -- Delete the link, not the file
eq(0, eval("delete('Xlink')")) eq(0, eval("delete('Xlink')"))
eq(-1, eval("delete('Xlink')")) eq(-1, eval("delete('Xlink')"))