test: add tests for #13549 #20285 #20290

This commit is contained in:
zeertzjq
2022-09-23 07:21:51 +08:00
parent c28f00b101
commit d7052e8e1f
2 changed files with 48 additions and 0 deletions

View File

@@ -9,6 +9,9 @@ local feed = helpers.feed
local eval = helpers.eval
local exec = helpers.exec
local funcs = helpers.funcs
local meths = helpers.meths
local curwin = helpers.curwin
local assert_alive = helpers.assert_alive
describe('tabpage', function()
before_each(clear)
@@ -54,6 +57,45 @@ describe('tabpage', function()
neq(999, eval('g:win_closed'))
end)
it('no segfault with strange WinClosed autocommand #20290', function()
pcall(exec, [[
set nohidden
edit Xa
split Xb
tab split
new
autocmd WinClosed * tabprev | bwipe!
close
]])
assert_alive()
end)
it('nvim_win_close and nvim_win_hide update tabline #20285', function()
eq(1, #meths.list_tabpages())
eq({1, 1}, funcs.win_screenpos(0))
local win1 = curwin().id
command('tabnew')
eq(2, #meths.list_tabpages())
eq({2, 1}, funcs.win_screenpos(0))
local win2 = curwin().id
meths.win_close(win1, true)
eq(win2, curwin().id)
eq(1, #meths.list_tabpages())
eq({1, 1}, funcs.win_screenpos(0))
command('tabnew')
eq(2, #meths.list_tabpages())
eq({2, 1}, funcs.win_screenpos(0))
local win3 = curwin().id
meths.win_close(win2, true)
eq(win3, curwin().id)
eq(1, #meths.list_tabpages())
eq({1, 1}, funcs.win_screenpos(0))
end)
it('switching tabpage after setting laststatus=3 #19591', function()
local screen = Screen.new(40, 8)
screen:set_default_attr_ids({