mirror of
https://github.com/neovim/neovim.git
synced 2025-11-28 13:10:44 +00:00
Merge #8436 win: test: cleanup on exit'
This commit is contained in:
@@ -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!'))
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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')"))
|
||||||
|
|||||||
Reference in New Issue
Block a user