mirror of
https://github.com/neovim/neovim.git
synced 2025-11-13 05:48:51 +00:00
This reverts commit 4be0e92db0.
Unfortunately, that commit stalled the Windows builds on GHA and likely requires
other patches to work properly.
118 lines
3.5 KiB
Lua
118 lines
3.5 KiB
Lua
local helpers = require('test.functional.helpers')(after_each)
|
|
local clear, source = helpers.clear, helpers.source
|
|
local eq, eval, command = helpers.eq, helpers.eval, helpers.command
|
|
|
|
describe('Test for delete()', function()
|
|
before_each(clear)
|
|
after_each(function()
|
|
os.remove('Xfile')
|
|
end)
|
|
|
|
it('file delete', function()
|
|
command('split Xfile')
|
|
command("call setline(1, ['a', 'b'])")
|
|
command('wq')
|
|
eq(eval("['a', 'b']"), eval("readfile('Xfile')"))
|
|
eq(0, eval("delete('Xfile')"))
|
|
eq(-1, eval("delete('Xfile')"))
|
|
end)
|
|
|
|
it('directory delete', function()
|
|
command("call mkdir('Xdir1')")
|
|
eq(1, eval("isdirectory('Xdir1')"))
|
|
eq(0, eval("delete('Xdir1', 'd')"))
|
|
eq(0, eval("isdirectory('Xdir1')"))
|
|
eq(-1, eval("delete('Xdir1', 'd')"))
|
|
end)
|
|
it('recursive delete', function()
|
|
command("call mkdir('Xdir1')")
|
|
command("call mkdir('Xdir1/subdir')")
|
|
command("call mkdir('Xdir1/empty')")
|
|
command('split Xdir1/Xfile')
|
|
command("call setline(1, ['a', 'b'])")
|
|
command('w')
|
|
command('w Xdir1/subdir/Xfile')
|
|
command('close')
|
|
|
|
eq(1, eval("isdirectory('Xdir1')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir1/Xfile')"))
|
|
eq(1, eval("isdirectory('Xdir1/subdir')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir1/subdir/Xfile')"))
|
|
eq(1, eval("isdirectory('Xdir1/empty')"))
|
|
eq(0, eval("delete('Xdir1', 'rf')"))
|
|
eq(0, eval("isdirectory('Xdir1')"))
|
|
eq(-1, eval("delete('Xdir1', 'd')"))
|
|
end)
|
|
|
|
it('symlink delete', function()
|
|
source([[
|
|
split Xfile
|
|
call setline(1, ['a', 'b'])
|
|
wq
|
|
if has('win32')
|
|
silent !mklink Xlink Xfile
|
|
else
|
|
silent !ln -s Xfile Xlink
|
|
endif
|
|
]])
|
|
if eval('v:shell_error') ~= 0 then
|
|
pending('Cannot create symlink')
|
|
end
|
|
-- Delete the link, not the file
|
|
eq(0, eval("delete('Xlink')"))
|
|
eq(-1, eval("delete('Xlink')"))
|
|
eq(0, eval("delete('Xfile')"))
|
|
end)
|
|
|
|
it('symlink directory delete', function()
|
|
command("call mkdir('Xdir1')")
|
|
if helpers.iswin() then
|
|
command("silent !mklink /j Xlink Xdir1")
|
|
else
|
|
command("silent !ln -s Xdir1 Xlink")
|
|
end
|
|
eq(1, eval("isdirectory('Xdir1')"))
|
|
eq(1, eval("isdirectory('Xlink')"))
|
|
-- Delete the link, not the directory
|
|
eq(0, eval("delete('Xlink')"))
|
|
eq(-1, eval("delete('Xlink')"))
|
|
eq(0, eval("delete('Xdir1', 'd')"))
|
|
end)
|
|
|
|
it('symlink recursive delete', function()
|
|
source([[
|
|
call mkdir('Xdir3')
|
|
call mkdir('Xdir3/subdir')
|
|
call mkdir('Xdir4')
|
|
split Xdir3/Xfile
|
|
call setline(1, ['a', 'b'])
|
|
w
|
|
w Xdir3/subdir/Xfile
|
|
w Xdir4/Xfile
|
|
close
|
|
if has('win32')
|
|
silent !mklink /j Xdir3\Xlink Xdir4
|
|
else
|
|
silent !ln -s ../Xdir4 Xdir3/Xlink
|
|
endif
|
|
]])
|
|
|
|
eq(1, eval("isdirectory('Xdir3')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir3/Xfile')"))
|
|
eq(1, eval("isdirectory('Xdir3/subdir')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir3/subdir/Xfile')"))
|
|
eq(1, eval("isdirectory('Xdir4')"))
|
|
eq(1, eval("isdirectory('Xdir3/Xlink')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir4/Xfile')"))
|
|
|
|
eq(0, eval("delete('Xdir3', 'rf')"))
|
|
eq(0, eval("isdirectory('Xdir3')"))
|
|
eq(-1, eval("delete('Xdir3', 'd')"))
|
|
-- symlink is deleted, not the directory it points to
|
|
eq(1, eval("isdirectory('Xdir4')"))
|
|
eq(eval("['a', 'b']"), eval("readfile('Xdir4/Xfile')"))
|
|
eq(0, eval("delete('Xdir4/Xfile')"))
|
|
eq(0, eval("delete('Xdir4', 'd')"))
|
|
end)
|
|
end)
|