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:
parent
c212dd0a34
commit
a4b442614c
@ -536,49 +536,5 @@ func Test_term_gettty()
|
|||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -519,5 +519,49 @@ func Test_term_modeless_selection()
|
|||||||
new | only!
|
new | only!
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1198,
|
||||||
/**/
|
/**/
|
||||||
1197,
|
1197,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user