# HG changeset patch # User Bram Moolenaar # Date 1594583104 -7200 # Node ID 3e0d4782d0c659397eda7635620f4684a0c6c83b # Parent af919846afd88a51e76aa4019d9e765a1b9081d3 patch 8.2.1198: terminal2 test sometimes hangs in the GUI on Travis Commit: https://github.com/vim/vim/commit/a4b442614c5ca4ebf32acf5cf0b7b718496f1c94 Author: Bram Moolenaar Date: Sun Jul 12 21:38:29 2020 +0200 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. diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim --- a/src/testdir/test_terminal2.vim +++ b/src/testdir/test_terminal2.vim @@ -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\") - call StopVimInTerminal(buf) - call delete('XTest_getwinpos') - exe buf . 'bwipe!' - set splitright& - only! -endfunc - " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_terminal3.vim b/src/testdir/test_terminal3.vim --- a/src/testdir/test_terminal3.vim +++ b/src/testdir/test_terminal3.vim @@ -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\") + call StopVimInTerminal(buf) + call delete('XTest_getwinpos') + exe buf . 'bwipe!' + set splitright& + only! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1198, +/**/ 1197, /**/ 1196,