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:
zeertzjq
2023-08-21 16:08:48 +08:00
committed by GitHub
31 changed files with 158 additions and 137 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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'])

View File

@@ -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)

View File

@@ -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()

View File

@@ -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', {})

View File

@@ -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>")

View File

@@ -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'}

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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' includingnbsps, 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

View File

@@ -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', {})

View File

@@ -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))

View File

@@ -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)

View File

@@ -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, '.'))})

View File

@@ -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")

View File

@@ -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', {})

View File

@@ -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

View File

@@ -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])

View File

@@ -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 = @*

View File

@@ -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()

View File

@@ -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'))

View File

@@ -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)

View File

@@ -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'))

View File

@@ -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))})

View File

@@ -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)

View File

@@ -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)

View File

@@ -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', {})

View File

@@ -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>")

View File

@@ -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)