mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge pull request #24818 from zeertzjq/vim-8.2.0186
vim-patch:8.1.2403,8.2.{0186,0195,0310,0454,0533,2908,2910,3518,4339}
			
			
This commit is contained in:
		| @@ -489,33 +489,6 @@ else | ||||
|   endtry | ||||
| endif | ||||
|  | ||||
| " Names of flaky tests. | ||||
| let s:flaky_tests = [ | ||||
|       \ 'Test_autocmd_SafeState()', | ||||
|       \ 'Test_cursorhold_insert()', | ||||
|       \ 'Test_exit_callback_interval()', | ||||
|       \ 'Test_map_timeout_with_timer_interrupt()', | ||||
|       \ 'Test_out_cb()', | ||||
|       \ 'Test_popup_and_window_resize()', | ||||
|       \ 'Test_quoteplus()', | ||||
|       \ 'Test_quotestar()', | ||||
|       \ 'Test_reltime()', | ||||
|       \ 'Test_state()', | ||||
|       \ 'Test_term_mouse_double_click_to_create_tab()', | ||||
|       \ 'Test_term_mouse_multiple_clicks_to_visually_select()', | ||||
|       \ 'Test_terminal_composing_unicode()', | ||||
|       \ 'Test_terminal_redir_file()', | ||||
|       \ 'Test_terminal_tmap()', | ||||
|       \ 'Test_timer_oneshot()', | ||||
|       \ 'Test_timer_paused()', | ||||
|       \ 'Test_timer_repeat_many()', | ||||
|       \ 'Test_timer_repeat_three()', | ||||
|       \ 'Test_timer_stop_all_in_callback()', | ||||
|       \ 'Test_timer_stop_in_callback()', | ||||
|       \ 'Test_timer_with_partial_callback()', | ||||
|       \ 'Test_termwinscroll()', | ||||
|       \ ] | ||||
|  | ||||
| " Delete the .res file, it may change behavior for completion | ||||
| call delete(fnamemodify(g:testname, ':r') .. '.res') | ||||
|  | ||||
| @@ -565,8 +538,7 @@ for g:testfunc in sort(s:tests) | ||||
|   " - it fails five times (with a different message) | ||||
|   if len(v:errors) > 0 | ||||
|         \ && $TEST_NO_RETRY == '' | ||||
|         \ && (index(s:flaky_tests, g:testfunc) >= 0 | ||||
|         \      || g:test_is_flaky) | ||||
|         \ && g:test_is_flaky | ||||
|     while 1 | ||||
|       call add(s:messages, 'Found errors in ' .. g:testfunc .. ':') | ||||
|       call extend(s:messages, v:errors) | ||||
|   | ||||
| @@ -571,7 +571,7 @@ func Test_quit_with_arglist() | ||||
|   call term_sendkeys(buf, ":set nomore\n") | ||||
|   call term_sendkeys(buf, ":args a b c\n") | ||||
|   call term_sendkeys(buf, ":quit\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E173:', term_getline(buf, 6))}) | ||||
|   call StopVimInTerminal(buf) | ||||
|  | ||||
| @@ -580,16 +580,16 @@ func Test_quit_with_arglist() | ||||
|   call term_sendkeys(buf, ":set nomore\n") | ||||
|   call term_sendkeys(buf, ":args a b c\n") | ||||
|   call term_sendkeys(buf, ":confirm quit\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$', | ||||
|         \ term_getline(buf, 6))}) | ||||
|   call term_sendkeys(buf, "N") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, ":confirm quit\n") | ||||
|   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$', | ||||
|         \ term_getline(buf, 6))}) | ||||
|   call term_sendkeys(buf, "Y") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_equal("finished", term_getstatus(buf))}) | ||||
|   only! | ||||
|   " When this test fails, swap files are left behind which breaks subsequent | ||||
|   | ||||
| @@ -2013,6 +2013,7 @@ endfunc | ||||
|  | ||||
| " Test for BufUnload autocommand that unloads all the other buffers | ||||
| func Test_bufunload_all() | ||||
|   let g:test_is_flaky = 1 | ||||
|   call writefile(['Test file Xxx1'], 'Xxx1')" | ||||
|   call writefile(['Test file Xxx2'], 'Xxx2')" | ||||
|  | ||||
| @@ -2961,6 +2962,7 @@ endfunc | ||||
|  | ||||
| func Test_autocmd_SafeState() | ||||
|   CheckRunVimInTerminal | ||||
|   let g:test_is_flaky = 1 | ||||
|  | ||||
|   let lines =<< trim END | ||||
| 	let g:safe = 0 | ||||
| @@ -2974,17 +2976,19 @@ func Test_autocmd_SafeState() | ||||
|   call writefile(lines, 'XSafeState') | ||||
|   let buf = RunVimInTerminal('-S XSafeState', #{rows: 6}) | ||||
|  | ||||
|   " Sometimes we loop to handle an K_IGNORE | ||||
|   " Sometimes we loop to handle a K_IGNORE, SafeState may be trigered once or | ||||
|   " more often. | ||||
|   call term_sendkeys(buf, ":echo g:safe\<CR>") | ||||
|   call WaitForAssert({-> assert_match('^[12] ', term_getline(buf, 6))}, 1000) | ||||
|   call WaitForAssert({-> assert_match('^\d ', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
|   " SafeStateAgain should be invoked at least three times | ||||
|   call term_sendkeys(buf, ":echo g:again\<CR>") | ||||
|   call WaitForAssert({-> assert_match('^xxxx', term_getline(buf, 6))}, 1000) | ||||
|   call WaitForAssert({-> assert_match('^xxx', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
|   call term_sendkeys(buf, ":let g:again = ''\<CR>:call CallTimer()\<CR>") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, ":\<CR>") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, ":echo g:again\<CR>") | ||||
|   call WaitForAssert({-> assert_match('xtx', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
| @@ -3008,7 +3012,7 @@ func Test_autocmd_CmdWinEnter() | ||||
|   let buf = RunVimInTerminal('-S '.filename, #{rows: 6}) | ||||
|  | ||||
|   call term_sendkeys(buf, "q:") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, ":echo b:dummy_var\<cr>") | ||||
|   call WaitForAssert({-> assert_match('^This is a dummy', term_getline(buf, 6))}, 2000) | ||||
|   call term_sendkeys(buf, ":echo &buftype\<cr>") | ||||
| @@ -3042,6 +3046,7 @@ func Test_autocmd_was_using_freed_memory() | ||||
| endfunc | ||||
|  | ||||
| func Test_BufWrite_lockmarks() | ||||
|   let g:test_is_flaky = 1 | ||||
|   edit! Xtest | ||||
|   call setline(1, ['a', 'b', 'c', 'd']) | ||||
|  | ||||
|   | ||||
| @@ -217,7 +217,6 @@ func Test_appendbufline_redraw() | ||||
|   END | ||||
|   call writefile(lines, 'XscriptMatchCommon') | ||||
|   let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 10}) | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_appendbufline_1', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
|   | ||||
| @@ -26,9 +26,10 @@ func Check_X11_Connection() | ||||
| endfunc | ||||
|  | ||||
| func Test_client_server() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let cmd = GetVimCommand() | ||||
|   if cmd == '' | ||||
|     return | ||||
|     throw 'GetVimCommand() failed' | ||||
|   endif | ||||
|   call Check_X11_Connection() | ||||
|  | ||||
|   | ||||
| @@ -1482,7 +1482,7 @@ func Test_verbose_option() | ||||
|   call writefile(lines, 'XTest_verbose') | ||||
|  | ||||
|   let buf = RunVimInTerminal('-S XTest_verbose', {'rows': 12}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, ":DoSomething\<CR>") | ||||
|   call VerifyScreenDump(buf, 'Test_verbose_option_1', {}) | ||||
|  | ||||
| @@ -1560,7 +1560,7 @@ func Test_cmdwin_restore() | ||||
|   call writefile(lines, 'XTest_restore') | ||||
|  | ||||
|   let buf = RunVimInTerminal('-S XTest_restore', {'rows': 12}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "q:") | ||||
|   call VerifyScreenDump(buf, 'Test_cmdwin_restore_1', {}) | ||||
|  | ||||
| @@ -1580,6 +1580,21 @@ func Test_cmdwin_restore() | ||||
|   call delete('XTest_restore') | ||||
| endfunc | ||||
|  | ||||
| func Test_cmdwin_no_terminal() | ||||
|   CheckFeature cmdwin | ||||
|   CheckFeature terminal | ||||
|   CheckNotMSWindows | ||||
|  | ||||
|   let buf = RunVimInTerminal('', {'rows': 12}) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, ":set cmdheight=2\<CR>") | ||||
|   call term_sendkeys(buf, "q:") | ||||
|   call term_sendkeys(buf, ":let buf = term_start(['/bin/echo'], #{hidden: 1})\<CR>") | ||||
|   call VerifyScreenDump(buf, 'Test_cmdwin_no_terminal', {}) | ||||
|   call term_sendkeys(buf, ":q\<CR>") | ||||
|   call StopVimInTerminal(buf) | ||||
| endfunc | ||||
|  | ||||
| func Test_buffers_lastused() | ||||
|   " check that buffers are sorted by time when wildmode has lastused | ||||
|   edit bufc " oldest | ||||
| @@ -1687,7 +1702,7 @@ func Test_cmdlineclear_tabenter() | ||||
|  | ||||
|   call writefile(lines, 'XtestCmdlineClearTabenter') | ||||
|   let buf = RunVimInTerminal('-S XtestCmdlineClearTabenter', #{rows: 10}) | ||||
|   call term_wait(buf, 50) | ||||
|   call TermWait(buf, 25) | ||||
|   " in one tab make the command line higher with CTRL-W - | ||||
|   call term_sendkeys(buf, ":tabnew\<cr>\<C-w>-\<C-w>-gtgt") | ||||
|   call VerifyScreenDump(buf, 'Test_cmdlineclear_tabenter', {}) | ||||
|   | ||||
| @@ -136,41 +136,30 @@ func Test_cursorline_screenline() | ||||
|   call writefile(lines, filename) | ||||
|   " basic test | ||||
|   let buf = RunVimInTerminal('-S '. filename, #{rows: 20}) | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_1', {}) | ||||
|   call term_sendkeys(buf, "fagj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_2', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_3', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_4', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_5', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_6', {}) | ||||
|   " test with set list and cursorlineopt containing number | ||||
|   call term_sendkeys(buf, "gg0") | ||||
|   call term_sendkeys(buf, ":set list cursorlineopt+=number listchars=space:-\<cr>") | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_7', {}) | ||||
|   call term_sendkeys(buf, "fagj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_8', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_9', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_10', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_11', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_12', {}) | ||||
|   if exists("+foldcolumn") && exists("+signcolumn") && exists("+breakindent") | ||||
|     " test with set foldcolumn signcoloumn and breakindent | ||||
| @@ -178,19 +167,14 @@ func Test_cursorline_screenline() | ||||
|     call term_sendkeys(buf, ":set breakindent foldcolumn=2 signcolumn=yes\<cr>") | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_13', {}) | ||||
|     call term_sendkeys(buf, "fagj") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_14', {}) | ||||
|     call term_sendkeys(buf, "gj") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_15', {}) | ||||
|     call term_sendkeys(buf, "gj") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_16', {}) | ||||
|     call term_sendkeys(buf, "gj") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_17', {}) | ||||
|     call term_sendkeys(buf, "gj") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_'. filename. '_18', {}) | ||||
|     call term_sendkeys(buf, ":set breakindent& foldcolumn& signcolumn&\<cr>") | ||||
|   endif | ||||
| @@ -200,19 +184,14 @@ func Test_cursorline_screenline() | ||||
|   call term_sendkeys(buf, ":set nonumber\<cr>") | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_19', {}) | ||||
|   call term_sendkeys(buf, "fagj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_20', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_21', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_22', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_23', {}) | ||||
|   call term_sendkeys(buf, "gj") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_'. filename. '_24', {}) | ||||
|   call term_sendkeys(buf, ":set list& cursorlineopt& listchars&\<cr>") | ||||
|  | ||||
|   | ||||
| @@ -36,7 +36,7 @@ endfunc | ||||
| " If the expected output argument is supplied, then check for it. | ||||
| func RunDbgCmd(buf, cmd, ...) | ||||
|   call term_sendkeys(a:buf, a:cmd . "\r") | ||||
|   call term_wait(a:buf, 20) | ||||
|   call TermWait(a:buf) | ||||
|  | ||||
|   if a:0 != 0 | ||||
|     let options = #{match: 'equal'} | ||||
|   | ||||
| @@ -852,11 +852,11 @@ func VerifyInternal(buf, dumpfile, extra) | ||||
|   call term_sendkeys(a:buf, ":diffupdate!\<CR>") | ||||
|   " trailing : for leaving the cursor on the command line | ||||
|   call term_sendkeys(a:buf, ":set diffopt=internal,filler" . a:extra . "\<CR>:") | ||||
|   call TermWait(a:buf) | ||||
|   call VerifyScreenDump(a:buf, a:dumpfile, {}) | ||||
| endfunc | ||||
|  | ||||
| func Test_diff_screen() | ||||
|   let g:test_is_flaky = 1 | ||||
|   CheckScreendump | ||||
|   CheckFeature menu | ||||
|  | ||||
|   | ||||
| @@ -177,7 +177,6 @@ func Test_scroll_CursorLineNr_update() | ||||
|   call writefile(lines, filename) | ||||
|   let buf = RunVimInTerminal('-S '.filename, #{rows: 5, cols: 50}) | ||||
|   call term_sendkeys(buf, "k") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_winline_rnu', {}) | ||||
|  | ||||
|   " clean up | ||||
|   | ||||
| @@ -2567,6 +2567,9 @@ endfunc | ||||
|  | ||||
| func Test_state() | ||||
|   CheckRunVimInTerminal | ||||
|   let g:test_is_flaky = 1 | ||||
|  | ||||
|   let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>" | ||||
|  | ||||
|   let lines =<< trim END | ||||
| 	call setline(1, ['one', 'two', 'three']) | ||||
| @@ -2587,28 +2590,27 @@ func Test_state() | ||||
|  | ||||
|   " Using a timer callback | ||||
|   call term_sendkeys(buf, ":call RunTimer()\<CR>") | ||||
|   call term_wait(buf, 50) | ||||
|   let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>" | ||||
|   call TermWait(buf, 25) | ||||
|   call term_sendkeys(buf, getstate) | ||||
|   call WaitForAssert({-> assert_match('state: c; mode: n', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
|   " Halfway a mapping | ||||
|   call term_sendkeys(buf, ":call RunTimer()\<CR>;") | ||||
|   call term_wait(buf, 50) | ||||
|   call TermWait(buf, 25) | ||||
|   call term_sendkeys(buf, ";") | ||||
|   call term_sendkeys(buf, getstate) | ||||
|   call WaitForAssert({-> assert_match('state: mSc; mode: n', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
|   " Insert mode completion (bit slower on Mac) | ||||
|   call term_sendkeys(buf, ":call RunTimer()\<CR>Got\<C-N>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 25) | ||||
|   call term_sendkeys(buf, "\<Esc>") | ||||
|   call term_sendkeys(buf, getstate) | ||||
|   call WaitForAssert({-> assert_match('state: aSc; mode: i', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
|   " Autocommand executing | ||||
|   call term_sendkeys(buf, ":set filetype=foobar\<CR>") | ||||
|   call term_wait(buf, 50) | ||||
|   call TermWait(buf, 25) | ||||
|   call term_sendkeys(buf, getstate) | ||||
|   call WaitForAssert({-> assert_match('state: xS; mode: n', term_getline(buf, 6))}, 1000) | ||||
|  | ||||
| @@ -2616,7 +2618,7 @@ func Test_state() | ||||
|  | ||||
|   " messages scrolled | ||||
|   call term_sendkeys(buf, ":call RunTimer()\<CR>:echo \"one\\ntwo\\nthree\"\<CR>") | ||||
|   call term_wait(buf, 50) | ||||
|   call TermWait(buf, 25) | ||||
|   call term_sendkeys(buf, "\<CR>") | ||||
|   call term_sendkeys(buf, getstate) | ||||
|   call WaitForAssert({-> assert_match('state: Scs; mode: r', term_getline(buf, 6))}, 1000) | ||||
|   | ||||
| @@ -543,9 +543,9 @@ func Test_cursorline_after_yank() | ||||
| 	\ 'call setline(1, ["","1","2","3",""])', | ||||
| 	\ ], 'Xtest_cursorline_yank') | ||||
|   let buf = RunVimInTerminal('-S Xtest_cursorline_yank', {'rows': 8}) | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "Gy3k") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "jj") | ||||
|  | ||||
|   call VerifyScreenDump(buf, 'Test_cursorline_yank_01', {}) | ||||
| @@ -583,7 +583,7 @@ func Test_cursorline_with_visualmode() | ||||
| 	\ 'call setline(1, repeat(["abc"], 50))', | ||||
| 	\ ], 'Xtest_cursorline_with_visualmode') | ||||
|   let buf = RunVimInTerminal('-S Xtest_cursorline_with_visualmode', {'rows': 12}) | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "V\<C-f>kkkjk") | ||||
|  | ||||
|   call VerifyScreenDump(buf, 'Test_cursorline_with_visualmode_01', {}) | ||||
| @@ -593,6 +593,59 @@ func Test_cursorline_with_visualmode() | ||||
|   call delete('Xtest_cursorline_with_visualmode') | ||||
| endfunc | ||||
|  | ||||
| func Test_wincolor() | ||||
|   CheckScreendump | ||||
|   " make sure the width is enough for the test | ||||
|   set columns=80 | ||||
|  | ||||
|   let lines =<< trim END | ||||
| 	set cursorline cursorcolumn rnu | ||||
| 	call setline(1, ["","1111111111","22222222222","3 here 3","","the cat is out of the bag"]) | ||||
| 	set wincolor=Pmenu | ||||
| 	hi CatLine guifg=green ctermfg=green | ||||
| 	hi Reverse gui=reverse cterm=reverse | ||||
| 	syn match CatLine /^the.*/ | ||||
| 	call prop_type_add("foo", {"highlight": "Reverse", "combine": 1}) | ||||
| 	call prop_add(6, 12, {"type": "foo", "end_col": 15}) | ||||
| 	/here | ||||
|   END | ||||
|   call writefile(lines, 'Xtest_wincolor') | ||||
|   let buf = RunVimInTerminal('-S Xtest_wincolor', {'rows': 8}) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "2G5lvj") | ||||
|   call TermWait(buf) | ||||
|  | ||||
|   call VerifyScreenDump(buf, 'Test_wincolor_01', {}) | ||||
|  | ||||
|   " clean up | ||||
|   call term_sendkeys(buf, "\<Esc>") | ||||
|   call StopVimInTerminal(buf) | ||||
|   call delete('Xtest_wincolor') | ||||
| endfunc | ||||
|  | ||||
| func Test_wincolor_listchars() | ||||
|   CheckScreendump | ||||
|   CheckFeature conceal | ||||
|  | ||||
|   let lines =<< trim END | ||||
| 	call setline(1, ["one","\t\tsome random text enough long to show 'extends' and 'precedes' includingnbsps, preceding tabs and trailing spaces    ","three"]) | ||||
| 	set wincolor=Todo | ||||
| 	set nowrap cole=1 cocu+=n | ||||
| 	set list lcs=eol:$,tab:>-,space:.,trail:_,extends:>,precedes:<,conceal:*,nbsp:# | ||||
| 	call matchadd('Conceal', 'text') | ||||
| 	normal 2G5zl | ||||
|   END | ||||
|   call writefile(lines, 'Xtest_wincolorlcs') | ||||
|   let buf = RunVimInTerminal('-S Xtest_wincolorlcs', {'rows': 8}) | ||||
|  | ||||
|   call VerifyScreenDump(buf, 'Test_wincolor_lcs', {}) | ||||
|  | ||||
|   " clean up | ||||
|   call term_sendkeys(buf, "\<Esc>") | ||||
|   call StopVimInTerminal(buf) | ||||
|   call delete('Xtest_wincolorlcs') | ||||
| endfunc | ||||
|  | ||||
| func Test_cursorcolumn_insert_on_tab() | ||||
|   CheckScreendump | ||||
|  | ||||
| @@ -665,7 +718,6 @@ func Test_colorcolumn() | ||||
|   call writefile(lines, 'Xtest_colorcolumn') | ||||
|   let buf = RunVimInTerminal('-S Xtest_colorcolumn', {'rows': 10}) | ||||
|   call term_sendkeys(buf, ":\<CR>") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_colorcolumn_1', {}) | ||||
|  | ||||
|   " clean up | ||||
| @@ -683,7 +735,6 @@ func Test_colorcolumn_bri() | ||||
|   call writefile(lines, 'Xtest_colorcolumn_bri') | ||||
|   let buf = RunVimInTerminal('-S Xtest_colorcolumn_bri', {'rows': 10,'columns': 40}) | ||||
|   call term_sendkeys(buf, ":set co=40 linebreak bri briopt=shift:2 cc=40,41,43\<CR>") | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_colorcolumn_2', {}) | ||||
|  | ||||
|   " clean up | ||||
|   | ||||
| @@ -620,7 +620,7 @@ func Test_pum_with_folds_two_tabs() | ||||
|  | ||||
|   call writefile(lines, 'Xpumscript') | ||||
|   let buf = RunVimInTerminal('-S Xpumscript', #{rows: 10}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "a\<C-N>") | ||||
|   call VerifyScreenDump(buf, 'Test_pum_with_folds_two_tabs', {}) | ||||
|  | ||||
| @@ -645,9 +645,9 @@ func Test_pum_with_preview_win() | ||||
|  | ||||
|   call writefile(lines, 'Xpreviewscript') | ||||
|   let buf = RunVimInTerminal('-S Xpreviewscript', #{rows: 12}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "Gi\<C-X>\<C-O>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   call term_sendkeys(buf, "\<C-N>") | ||||
|   call VerifyScreenDump(buf, 'Test_pum_with_preview_win', {}) | ||||
|  | ||||
|   | ||||
| @@ -278,9 +278,9 @@ func Test_map_timeout() | ||||
| endfunc | ||||
|  | ||||
| func Test_map_timeout_with_timer_interrupt() | ||||
|   if !has('job') || !has('timers') | ||||
|     return | ||||
|   endif | ||||
|   CheckFeature job | ||||
|   CheckFeature timers | ||||
|   let g:test_is_flaky = 1 | ||||
|  | ||||
|   " Confirm the timer invoked in exit_cb of the job doesn't disturb mapped key | ||||
|   " sequence. | ||||
| @@ -418,9 +418,9 @@ func Test_error_in_map_expr() | ||||
|  | ||||
|   " GC must not run during map-expr processing, which can make Vim crash. | ||||
|   call term_sendkeys(buf, '!') | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "\<CR>") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call assert_equal('run', job_status(job)) | ||||
|  | ||||
|   call term_sendkeys(buf, ":qall!\<CR>") | ||||
| @@ -1226,7 +1226,7 @@ func Test_map_cmdkey_visual_mode() | ||||
|   call feedkeys("v\<F4>", 'xt!') | ||||
|   call assert_equal(['v', 1, 12], [mode(1), col('v'), col('.')]) | ||||
|  | ||||
|   " can invoke an opeartor, ending the visual mode | ||||
|   " can invoke an operator, ending the visual mode | ||||
|   let @a = '' | ||||
|   call feedkeys("\<F5>", 'xt!') | ||||
|   call assert_equal('n', mode(1)) | ||||
|   | ||||
| @@ -322,7 +322,7 @@ func OtherWindowCommon() | ||||
|   END | ||||
|   call writefile(lines, 'XscriptMatchCommon') | ||||
|   let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 12}) | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   return buf | ||||
| endfunc | ||||
|  | ||||
| @@ -373,7 +373,6 @@ func Test_match_in_linebreak() | ||||
|   END | ||||
|   call writefile(lines, 'XscriptMatchLinebreak') | ||||
|   let buf = RunVimInTerminal('-S XscriptMatchLinebreak', #{rows: 10}) | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_match_linebreak', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
| @@ -390,7 +389,6 @@ func Test_match_with_incsearch() | ||||
|   END | ||||
|   call writefile(lines, 'XmatchWithIncsearch') | ||||
|   let buf = RunVimInTerminal('-S XmatchWithIncsearch', #{rows: 6}) | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_match_with_incsearch_1', {}) | ||||
|  | ||||
|   call term_sendkeys(buf, ":s/0") | ||||
| @@ -431,7 +429,6 @@ func Test_match_tab_with_linebreak() | ||||
|   END | ||||
|   call writefile(lines, 'XscriptMatchTabLinebreak') | ||||
|   let buf = RunVimInTerminal('-S XscriptMatchTabLinebreak', #{rows: 10}) | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_match_tab_linebreak', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
|   | ||||
| @@ -372,14 +372,14 @@ func Test_cursor_column_in_concealed_line_after_window_scroll() | ||||
|   END | ||||
|   call writefile(lines, 'Xcolesearch') | ||||
|   let buf = RunVimInTerminal('Xcolesearch', {}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|  | ||||
|   " Jump to something that is beyond the bottom of the window, | ||||
|   " so there's a scroll down. | ||||
|   call term_sendkeys(buf, ":so %\<CR>") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "/expr\<CR>") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|  | ||||
|   " Are the concealed parts of the current line really hidden? | ||||
|   let cursor_row = term_scrape(buf, '.')->map({_, e -> e.chars})->join('') | ||||
| @@ -409,7 +409,7 @@ func Test_cursor_column_in_concealed_line_after_leftcol_change() | ||||
|   " Horizontal scroll would center the cursor in the screen line, but conceal | ||||
|   " makes it go to screen column 1. | ||||
|   call term_sendkeys(buf, "$") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|  | ||||
|   " Are the concealed parts of the current line really hidden? | ||||
|   call WaitForAssert({-> assert_equal('c', term_getline(buf, '.'))}) | ||||
|   | ||||
| @@ -112,7 +112,7 @@ func Test_mode_message_at_leaving_insert_by_ctrl_c() | ||||
|  | ||||
|   let rows = 10 | ||||
|   let buf = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows}) | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   call assert_equal('run', job_status(term_getjob(buf))) | ||||
|  | ||||
|   call term_sendkeys(buf, "i") | ||||
| @@ -140,7 +140,7 @@ func Test_mode_message_at_leaving_insert_with_esc_mapped() | ||||
|  | ||||
|   let rows = 10 | ||||
|   let buf = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows}) | ||||
|   call term_wait(buf, 200) | ||||
|   call WaitForAssert({-> assert_match('0,0-1\s*All$', term_getline(buf, rows - 1))}) | ||||
|   call assert_equal('run', job_status(term_getjob(buf))) | ||||
|  | ||||
|   call term_sendkeys(buf, "i") | ||||
|   | ||||
| @@ -280,7 +280,7 @@ func Test_relativenumber_colors() | ||||
|  | ||||
|   " Check that the balloon shows up after a mouse move | ||||
|   let buf = RunVimInTerminal('-S XTest_relnr', {'rows': 10, 'cols': 50}) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   " Default colors | ||||
|   call VerifyScreenDump(buf, 'Test_relnr_colors_1', {}) | ||||
|  | ||||
|   | ||||
| @@ -676,7 +676,9 @@ endfunc | ||||
|  | ||||
| func Test_popup_and_window_resize() | ||||
|   CheckFeature terminal | ||||
|   CheckFeature quickfix | ||||
|   CheckNotGui | ||||
|   let g:test_is_flaky = 1 | ||||
|  | ||||
|   let h = winheight(0) | ||||
|   if h < 15 | ||||
| @@ -691,11 +693,11 @@ func Test_popup_and_window_resize() | ||||
|  | ||||
|   call term_sendkeys(buf, "Gi\<c-x>") | ||||
|   call term_sendkeys(buf, "\<c-v>") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   " popup first entry "!" must be at the top | ||||
|   call WaitForAssert({-> assert_match('^!\s*$', term_getline(buf, 1))}) | ||||
|   exe 'resize +' . (h - 1) | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   redraw! | ||||
|   " popup shifted down, first line is now empty | ||||
|   call WaitForAssert({-> assert_equal('', term_getline(buf, 1))}) | ||||
| @@ -759,11 +761,11 @@ func Test_popup_and_previewwindow_dump() | ||||
|   let buf = RunVimInTerminal('-S Xscript', {}) | ||||
|  | ||||
|   " wait for the script to finish | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|  | ||||
|   " Test that popup and previewwindow do not overlap. | ||||
|   call term_sendkeys(buf, "o") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "\<C-X>\<C-N>") | ||||
|   call VerifyScreenDump(buf, 'Test_popup_and_previewwindow_01', {}) | ||||
|  | ||||
| @@ -1208,7 +1210,6 @@ func Test_pum_rightleft() | ||||
|   let buf = RunVimInTerminal('--cmd "set rightleft" Xtest1', {}) | ||||
|   call term_wait(buf) | ||||
|   call term_sendkeys(buf, "Go\<C-P>") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_pum_rightleft_01', {'rows': 8}) | ||||
|   call term_sendkeys(buf, "\<C-P>\<C-Y>") | ||||
|   call term_wait(buf) | ||||
| @@ -1250,7 +1251,6 @@ func Test_pum_scrollbar() | ||||
|   let buf = RunVimInTerminal('--cmd "set pumheight=2" Xtest1', {}) | ||||
|   call term_wait(buf) | ||||
|   call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_pum_scrollbar_01', {'rows': 7}) | ||||
|   call term_sendkeys(buf, "\<C-E>\<Esc>dd") | ||||
|   call term_wait(buf) | ||||
| @@ -1259,7 +1259,6 @@ func Test_pum_scrollbar() | ||||
|     call term_sendkeys(buf, ":set rightleft\<CR>") | ||||
|     call term_wait(buf) | ||||
|     call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>") | ||||
|     call term_wait(buf) | ||||
|     call VerifyScreenDump(buf, 'Test_pum_scrollbar_02', {'rows': 7}) | ||||
|   endif | ||||
|  | ||||
|   | ||||
| @@ -584,7 +584,7 @@ func Test_profile_typed_func() | ||||
| 	\ .. "endfunc\<CR>") | ||||
|   call term_sendkeys(buf, ":profile func DoSomething\<CR>") | ||||
|   call term_sendkeys(buf, ":call DoSomething()\<CR>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   call StopVimInTerminal(buf) | ||||
|   let lines = readfile('XprofileTypedFunc') | ||||
|   call assert_equal("FUNCTION  DoSomething()", lines[0]) | ||||
|   | ||||
| @@ -131,6 +131,7 @@ func Do_test_quotestar_for_x11() | ||||
| endfunc | ||||
|  | ||||
| func Test_quotestar() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let skipped = '' | ||||
|  | ||||
|   let quotestar_saved = @* | ||||
|   | ||||
| @@ -5,6 +5,7 @@ CheckFeature reltime | ||||
| CheckFeature float | ||||
|  | ||||
| func Test_reltime() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let now = reltime() | ||||
|   sleep 10m | ||||
|   let later = reltime() | ||||
|   | ||||
| @@ -815,12 +815,12 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|  | ||||
|   call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])}) | ||||
|   " wait for vim to complete initialization | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|  | ||||
|   " Get attr of normal(a0), incsearch(a1), hlsearch(a2) highlight | ||||
|   call term_sendkeys(buf, ":set incsearch hlsearch\<cr>") | ||||
|   call term_sendkeys(buf, '/b') | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   let screen_line1 = term_scrape(buf, 1) | ||||
|   call assert_true(len(screen_line1) > 2) | ||||
|   " a0: attr_normal | ||||
| @@ -836,7 +836,7 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|  | ||||
|   " Test incremental highlight search | ||||
|   call term_sendkeys(buf, "/vim") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   " Buffer: | ||||
|   " abb vim vim vi | ||||
|   " vimvivim | ||||
| @@ -848,7 +848,7 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|  | ||||
|   " Test <C-g> | ||||
|   call term_sendkeys(buf, "\<C-g>\<C-g>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0] | ||||
|   let attr_line2 = [a1,a1,a1,a0,a0,a2,a2,a2] | ||||
|   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr')) | ||||
| @@ -856,7 +856,7 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|  | ||||
|   " Test <C-t> | ||||
|   call term_sendkeys(buf, "\<C-t>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a1,a1,a1,a0,a0,a0] | ||||
|   let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2] | ||||
|   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr')) | ||||
| @@ -864,7 +864,7 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|  | ||||
|   " Type Enter and a1(incsearch highlight) should become a2(hlsearch highlight) | ||||
|   call term_sendkeys(buf, "\<cr>") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0] | ||||
|   let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2] | ||||
|   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr')) | ||||
| @@ -874,7 +874,7 @@ func Test_search_cmdline_incsearch_highlight_attr() | ||||
|   call term_sendkeys(buf, ":1\<cr>") | ||||
|   call term_sendkeys(buf, ":set nohlsearch\<cr>") | ||||
|   call term_sendkeys(buf, "/vim") | ||||
|   call term_wait(buf, 200) | ||||
|   call TermWait(buf, 100) | ||||
|   let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a0,a0,a0,a0,a0,a0] | ||||
|   let attr_line2 = [a0,a0,a0,a0,a0,a0,a0,a0] | ||||
|   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr')) | ||||
|   | ||||
| @@ -333,15 +333,12 @@ func Test_search_stat_foldopen() | ||||
|   call writefile(lines, 'Xsearchstat1') | ||||
|  | ||||
|   let buf = RunVimInTerminal('-S Xsearchstat1', #{rows: 10}) | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstat_3', {}) | ||||
|  | ||||
|   call term_sendkeys(buf, "n") | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstat_3', {}) | ||||
|  | ||||
|   call term_sendkeys(buf, "n") | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstat_3', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
| @@ -364,12 +361,10 @@ func! Test_search_stat_screendump() | ||||
|   END | ||||
|   call writefile(lines, 'Xsearchstat') | ||||
|   let buf = RunVimInTerminal('-S Xsearchstat', #{rows: 10}) | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstat_1', {}) | ||||
|  | ||||
|   call term_sendkeys(buf, ":nnoremap <silent> n n\<cr>") | ||||
|   call term_sendkeys(buf, "gg0n") | ||||
|   call term_wait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstat_2', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
| @@ -388,11 +383,9 @@ func Test_search_stat_then_gd() | ||||
|  | ||||
|   let buf = RunVimInTerminal('-S Xsearchstatgd', #{rows: 10}) | ||||
|   call term_sendkeys(buf, "/dog\<CR>") | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstatgd_1', {}) | ||||
|  | ||||
|   call term_sendkeys(buf, "G0gD") | ||||
|   call TermWait(buf) | ||||
|   call VerifyScreenDump(buf, 'Test_searchstatgd_2', {}) | ||||
|  | ||||
|   call StopVimInTerminal(buf) | ||||
|   | ||||
| @@ -960,9 +960,9 @@ func Test_missing_vimrc() | ||||
|   let cmd = GetVimCommandCleanTerm() . ' -u Xvimrc_missing -S Xafter' | ||||
|   let buf = term_start(cmd, {'term_rows' : 10}) | ||||
|   call WaitForAssert({-> assert_equal("running", term_getstatus(buf))}) | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "\n:") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match(':', term_getline(buf, 10))}) | ||||
|   call StopVimInTerminal(buf) | ||||
|   call assert_equal([], readfile('Xtestout')) | ||||
|   | ||||
| @@ -73,7 +73,7 @@ func Test_detect_ambiwidth() | ||||
| 	\ 'redraw', | ||||
| 	\ ], 'Xscript') | ||||
|   let buf = RunVimInTerminal('-S Xscript', #{keep_t_u7: 1}) | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>") | ||||
|   call WaitForAssert({-> assert_match('single', term_getline(buf, 1))}) | ||||
|  | ||||
|   | ||||
| @@ -53,7 +53,7 @@ func Test_suspend() | ||||
|  | ||||
|   " Quit gracefully to dump coverage information. | ||||
|   call term_sendkeys(buf, ":qall!\<CR>") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   " Wait until Vim actually exited and shell shows a prompt | ||||
|   call WaitForAssert({-> assert_match('[$#] $', term_getline(buf, '.'))}) | ||||
|   call StopShellInTerminal(buf) | ||||
|   | ||||
| @@ -374,14 +374,14 @@ func Test_swap_prompt_splitwin() | ||||
|   call term_sendkeys(buf, ":set noruler\n") | ||||
|  | ||||
|   call term_sendkeys(buf, ":split Xfile1\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^\[O\]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: $', term_getline(buf, 20))}) | ||||
|   call term_sendkeys(buf, "q") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call term_sendkeys(buf, ":\<CR>") | ||||
|   call WaitForAssert({-> assert_match('^:$', term_getline(buf, 20))}) | ||||
|   call term_sendkeys(buf, ":echomsg winnr('$')\<CR>") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^1$', term_getline(buf, 20))}) | ||||
|   call StopVimInTerminal(buf) | ||||
|  | ||||
|   | ||||
| @@ -671,7 +671,7 @@ func Test_tselect() | ||||
|   call writefile(lines, 'XTest_tselect') | ||||
|   let buf = RunVimInTerminal('-S XTest_tselect', {'rows': 10, 'cols': 50}) | ||||
|  | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, ":tselect main\<CR>2\<CR>") | ||||
|   call VerifyScreenDump(buf, 'Test_tselect_1', {}) | ||||
|  | ||||
|   | ||||
| @@ -21,6 +21,7 @@ func MyHandlerWithLists(lists, timer) | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_oneshot() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let g:val = 0 | ||||
|   let timer = timer_start(50, 'MyHandler') | ||||
|   let slept = WaitFor('g:val == 1') | ||||
| @@ -33,6 +34,7 @@ func Test_timer_oneshot() | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_repeat_three() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let g:val = 0 | ||||
|   let timer = timer_start(50, 'MyHandler', {'repeat': 3}) | ||||
|   let slept = WaitFor('g:val == 3') | ||||
| @@ -45,6 +47,7 @@ func Test_timer_repeat_three() | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_repeat_many() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let g:val = 0 | ||||
|   let timer = timer_start(50, 'MyHandler', {'repeat': -1}) | ||||
|   sleep 200m | ||||
| @@ -53,6 +56,7 @@ func Test_timer_repeat_many() | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_with_partial_callback() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let g:val = 0 | ||||
|   let meow = {'one': 1} | ||||
|   function meow.bite(...) | ||||
| @@ -114,6 +118,7 @@ func Test_timer_stopall() | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_paused() | ||||
|   let g:test_is_flaky = 1 | ||||
|   let g:val = 0 | ||||
|  | ||||
|   let id = timer_start(50, 'MyHandler') | ||||
| @@ -168,6 +173,7 @@ func StopTimer2(timer) | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_stop_in_callback() | ||||
|   let g:test_is_flaky = 1 | ||||
|   call assert_equal(0, len(timer_info())) | ||||
|   let g:timer1 = timer_start(10, 'StopTimer1') | ||||
|   let slept = 0 | ||||
| @@ -187,6 +193,7 @@ func StopTimerAll(timer) | ||||
| endfunc | ||||
|  | ||||
| func Test_timer_stop_all_in_callback() | ||||
|   let g:test_is_flaky = 1 | ||||
|   call assert_equal(0, len(timer_info())) | ||||
|   call timer_start(10, 'StopTimerAll') | ||||
|   call assert_equal(1, len(timer_info())) | ||||
| @@ -386,9 +393,9 @@ func Test_timer_error_in_timer_callback() | ||||
|   call WaitForAssert({-> assert_notequal('', term_getline(buf, 8))}) | ||||
|  | ||||
|   " GC must not run during timer callback, which can make Vim crash. | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call term_sendkeys(buf, "\<CR>") | ||||
|   call term_wait(buf, 100) | ||||
|   call TermWait(buf, 50) | ||||
|   call assert_equal('run', job_status(job)) | ||||
|  | ||||
|   call term_sendkeys(buf, ":qall!\<CR>") | ||||
|   | ||||
| @@ -7249,30 +7249,30 @@ func Test_deep_nest() | ||||
|  | ||||
|   " Deep nesting of if ... endif | ||||
|   call term_sendkeys(buf, ":call Test1()\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E579:', term_getline(buf, 5))}) | ||||
|  | ||||
|   " Deep nesting of for ... endfor | ||||
|   call term_sendkeys(buf, ":call Test2()\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E585:', term_getline(buf, 5))}) | ||||
|  | ||||
|   " Deep nesting of while ... endwhile | ||||
|   call term_sendkeys(buf, ":call Test3()\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E585:', term_getline(buf, 5))}) | ||||
|  | ||||
|   " Deep nesting of try ... endtry | ||||
|   call term_sendkeys(buf, ":call Test4()\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E601:', term_getline(buf, 5))}) | ||||
|  | ||||
|   " Deep nesting of function ... endfunction | ||||
|   call term_sendkeys(buf, ":call Test5()\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|   call WaitForAssert({-> assert_match('^E1058:', term_getline(buf, 4))}) | ||||
|   call term_sendkeys(buf, "\<C-C>\n") | ||||
|   call term_wait(buf) | ||||
|   call TermWait(buf) | ||||
|  | ||||
|   "let l = '' | ||||
|   "for i in range(1, 6) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq