From d7052e8e1f0311113199ae5c25886fa9690367e4 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 23 Sep 2022 07:21:51 +0800 Subject: test: add tests for #13549 #20285 #20290 --- test/functional/editor/tabpage_spec.lua | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'test/functional/editor/tabpage_spec.lua') diff --git a/test/functional/editor/tabpage_spec.lua b/test/functional/editor/tabpage_spec.lua index 849a02c28b..01779a9a92 100644 --- a/test/functional/editor/tabpage_spec.lua +++ b/test/functional/editor/tabpage_spec.lua @@ -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({ -- cgit From 7a70e9587c866c506182a32839f4c3b27b9a3b40 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 23 Sep 2022 10:17:44 +0800 Subject: test(tabpage_spec): actually test for nvim_win_hide --- test/functional/editor/tabpage_spec.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/functional/editor/tabpage_spec.lua') diff --git a/test/functional/editor/tabpage_spec.lua b/test/functional/editor/tabpage_spec.lua index 01779a9a92..f8ca6986bd 100644 --- a/test/functional/editor/tabpage_spec.lua +++ b/test/functional/editor/tabpage_spec.lua @@ -90,7 +90,7 @@ describe('tabpage', function() eq({2, 1}, funcs.win_screenpos(0)) local win3 = curwin().id - meths.win_close(win2, true) + meths.win_hide(win2) eq(win3, curwin().id) eq(1, #meths.list_tabpages()) eq({1, 1}, funcs.win_screenpos(0)) -- cgit From a7d100f052b45a106d1385ed419509c047c12431 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 30 Oct 2022 06:49:39 +0800 Subject: fix: avoid unsigned overflow in home_replace() (#20854) --- test/functional/editor/tabpage_spec.lua | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/functional/editor/tabpage_spec.lua') diff --git a/test/functional/editor/tabpage_spec.lua b/test/functional/editor/tabpage_spec.lua index f8ca6986bd..a7f629a76b 100644 --- a/test/functional/editor/tabpage_spec.lua +++ b/test/functional/editor/tabpage_spec.lua @@ -144,4 +144,10 @@ describe('tabpage', function() command(' silent :keepalt :: ::: silent! -2 tabmove') eq(1, funcs.nvim_tabpage_get_number(0)) end) + + it(':tabs does not overflow IObuff with long path with comma #20850', function() + meths.buf_set_name(0, ('x'):rep(1024) .. ',' .. ('x'):rep(1024)) + command('tabs') + assert_alive() + end) end) -- cgit