0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.1198: terminal2 test sometimes hangs in the GUI on Travis

Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Move test function to terminal3 to see if the problem moves too.
This commit is contained in:
Bram Moolenaar 2020-07-12 21:38:29 +02:00
parent c212dd0a34
commit a4b442614c
3 changed files with 46 additions and 44 deletions

View File

@ -536,49 +536,5 @@ func Test_term_gettty()
exe buf . 'bwipe'
endfunc
func Test_terminal_getwinpos()
CheckRunVimInTerminal
" split, go to the bottom-right window
split
wincmd j
set splitright
call writefile([
\ 'echo getwinpos()',
\ ], 'XTest_getwinpos')
let buf = RunVimInTerminal('-S XTest_getwinpos', {'cols': 60})
call TermWait(buf)
" Find the output of getwinpos() in the bottom line.
let rows = term_getsize(buf)[0]
call WaitForAssert({-> assert_match('\[\d\+, \d\+\]', term_getline(buf, rows))})
let line = term_getline(buf, rows)
let xpos = str2nr(substitute(line, '\[\(\d\+\), \d\+\]', '\1', ''))
let ypos = str2nr(substitute(line, '\[\d\+, \(\d\+\)\]', '\1', ''))
" Position must be bigger than the getwinpos() result of Vim itself.
" The calculation in the console assumes a 10 x 7 character cell.
" In the GUI it can be more, let's assume a 20 x 14 cell.
" And then add 100 / 200 tolerance.
let [xroot, yroot] = getwinpos()
let winpos = 50->getwinpos()
call assert_equal(xroot, winpos[0])
call assert_equal(yroot, winpos[1])
let [winrow, wincol] = win_screenpos('.')
let xoff = wincol * (has('gui_running') ? 14 : 7) + 100
let yoff = winrow * (has('gui_running') ? 20 : 10) + 200
call assert_inrange(xroot + 2, xroot + xoff, xpos)
call assert_inrange(yroot + 2, yroot + yoff, ypos)
call TermWait(buf)
call term_sendkeys(buf, ":q\<CR>")
call StopVimInTerminal(buf)
call delete('XTest_getwinpos')
exe buf . 'bwipe!'
set splitright&
only!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -519,5 +519,49 @@ func Test_term_modeless_selection()
new | only!
endfunc
func Test_terminal_getwinpos()
CheckRunVimInTerminal
" split, go to the bottom-right window
split
wincmd j
set splitright
call writefile([
\ 'echo getwinpos()',
\ ], 'XTest_getwinpos')
let buf = RunVimInTerminal('-S XTest_getwinpos', {'cols': 60})
call TermWait(buf)
" Find the output of getwinpos() in the bottom line.
let rows = term_getsize(buf)[0]
call WaitForAssert({-> assert_match('\[\d\+, \d\+\]', term_getline(buf, rows))})
let line = term_getline(buf, rows)
let xpos = str2nr(substitute(line, '\[\(\d\+\), \d\+\]', '\1', ''))
let ypos = str2nr(substitute(line, '\[\d\+, \(\d\+\)\]', '\1', ''))
" Position must be bigger than the getwinpos() result of Vim itself.
" The calculation in the console assumes a 10 x 7 character cell.
" In the GUI it can be more, let's assume a 20 x 14 cell.
" And then add 100 / 200 tolerance.
let [xroot, yroot] = getwinpos()
let winpos = 50->getwinpos()
call assert_equal(xroot, winpos[0])
call assert_equal(yroot, winpos[1])
let [winrow, wincol] = win_screenpos('.')
let xoff = wincol * (has('gui_running') ? 14 : 7) + 100
let yoff = winrow * (has('gui_running') ? 20 : 10) + 200
call assert_inrange(xroot + 2, xroot + xoff, xpos)
call assert_inrange(yroot + 2, yroot + yoff, ypos)
call TermWait(buf)
call term_sendkeys(buf, ":q\<CR>")
call StopVimInTerminal(buf)
call delete('XTest_getwinpos')
exe buf . 'bwipe!'
set splitright&
only!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1198,
/**/
1197,
/**/