mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 17:21:49 +00:00
vim-patch:7.4.1114
Problem: delete() does not work well with symbolic links.
Solution: Recognize symbolik links.
43a34f9f74
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||
local source = helpers.source
|
||||
local eq, eval, execute, expect = helpers.eq, helpers.eval, helpers.execute, helpers.expect
|
||||
|
||||
describe('Test for delete()', function()
|
||||
@@ -38,4 +39,60 @@ describe('Test for delete()', function()
|
||||
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
|
||||
silent !ln -s Xfile Xlink
|
||||
]])
|
||||
-- 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()
|
||||
execute("call mkdir('Xdir1')")
|
||||
execute("silent !ln -s Xdir1 Xlink")
|
||||
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
|
||||
silent !ln -s ../Xdir4 Xdir3/Xlink
|
||||
]])
|
||||
|
||||
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)
|
||||
|
Reference in New Issue
Block a user