From ae0a43ec23d9d902d2d9c446dda592873988ea50 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 27 Mar 2022 09:19:56 +0800 Subject: fix(tabpage): correct check for failure to close window Avoid closing window 999 times. --- test/functional/editor/tabpage_spec.lua | 17 +++++++++++++++++ 1 file changed, 17 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 d1d6854b07..2494daf99b 100644 --- a/test/functional/editor/tabpage_spec.lua +++ b/test/functional/editor/tabpage_spec.lua @@ -3,8 +3,10 @@ local helpers = require('test.functional.helpers')(after_each) local clear = helpers.clear local command = helpers.command local eq = helpers.eq +local neq = helpers.neq local feed = helpers.feed local eval = helpers.eval +local exec = helpers.exec describe('tabpage', function() before_each(clear) @@ -34,5 +36,20 @@ describe('tabpage', function() eq(3, eval('tabpagenr()')) end) + + it('does not crash or loop 999 times if BufWipeout autocommand switches window #17868', function() + exec([[ + tabedit + let s:window_id = win_getid() + botright new + setlocal bufhidden=wipe + let g:win_closed = 0 + autocmd WinClosed * let g:win_closed += 1 + autocmd BufWipeout call win_gotoid(s:window_id) + tabprevious + +tabclose + ]]) + neq(999, eval('g:win_closed')) + end) end) -- cgit