forked from aniani/vim
patch 8.1.1581: shared functions for testing are disorganised
Problem: Shared functions for testing are disorganised. Solution: Group finctions in script files. (Ozaki Kiichi, closes #4573)
This commit is contained in:
1
Filelist
1
Filelist
@@ -124,6 +124,7 @@ SRC_ALL = \
|
|||||||
src/testdir/shared.vim \
|
src/testdir/shared.vim \
|
||||||
src/testdir/screendump.vim \
|
src/testdir/screendump.vim \
|
||||||
src/testdir/view_util.vim \
|
src/testdir/view_util.vim \
|
||||||
|
src/testdir/term_util.vim \
|
||||||
src/testdir/setup.vim \
|
src/testdir/setup.vim \
|
||||||
src/testdir/gui_init.vim \
|
src/testdir/gui_init.vim \
|
||||||
src/testdir/setup_gui.vim \
|
src/testdir/setup_gui.vim \
|
||||||
|
@@ -1,105 +1,18 @@
|
|||||||
" Functions shared by tests making screen dumps.
|
" Functions shared by tests making screen dumps.
|
||||||
|
|
||||||
" Only load this script once.
|
" Only load this script once.
|
||||||
if exists('*CanRunVimInTerminal')
|
if exists('*VerifyScreenDump')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" For most tests we need to be able to run terminal Vim with 256 colors. On
|
source shared.vim
|
||||||
" MS-Windows the console only has 16 colors and the GUI can't run in a
|
source term_util.vim
|
||||||
" terminal.
|
|
||||||
func CanRunVimInTerminal()
|
|
||||||
return has('terminal') && !has('win32')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Skip the rest if there is no terminal feature at all.
|
" Skip the rest if there is no terminal feature at all.
|
||||||
if !has('terminal')
|
if !has('terminal')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
source shared.vim
|
|
||||||
|
|
||||||
" Run Vim with "arguments" in a new terminal window.
|
|
||||||
" By default uses a size of 20 lines and 75 columns.
|
|
||||||
" Returns the buffer number of the terminal.
|
|
||||||
"
|
|
||||||
" Options is a dictionary, these items are recognized:
|
|
||||||
" "rows" - height of the terminal window (max. 20)
|
|
||||||
" "cols" - width of the terminal window (max. 78)
|
|
||||||
" "statusoff" - number of lines the status is offset from default
|
|
||||||
func RunVimInTerminal(arguments, options)
|
|
||||||
" If Vim doesn't exit a swap file remains, causing other tests to fail.
|
|
||||||
" Remove it here.
|
|
||||||
call delete(".swp")
|
|
||||||
|
|
||||||
if exists('$COLORFGBG')
|
|
||||||
" Clear $COLORFGBG to avoid 'background' being set to "dark", which will
|
|
||||||
" only be corrected if the response to t_RB is received, which may be too
|
|
||||||
" late.
|
|
||||||
let $COLORFGBG = ''
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Make a horizontal and vertical split, so that we can get exactly the right
|
|
||||||
" size terminal window. Works only when the current window is full width.
|
|
||||||
call assert_equal(&columns, winwidth(0))
|
|
||||||
split
|
|
||||||
vsplit
|
|
||||||
|
|
||||||
" Always do this with 256 colors and a light background.
|
|
||||||
set t_Co=256 background=light
|
|
||||||
hi Normal ctermfg=NONE ctermbg=NONE
|
|
||||||
|
|
||||||
" Make the window 20 lines high and 75 columns, unless told otherwise.
|
|
||||||
let rows = get(a:options, 'rows', 20)
|
|
||||||
let cols = get(a:options, 'cols', 75)
|
|
||||||
let statusoff = get(a:options, 'statusoff', 1)
|
|
||||||
|
|
||||||
let cmd = GetVimCommandClean()
|
|
||||||
|
|
||||||
" Add -v to have gvim run in the terminal (if possible)
|
|
||||||
let cmd .= ' -v ' . a:arguments
|
|
||||||
let buf = term_start(cmd, {
|
|
||||||
\ 'curwin': 1,
|
|
||||||
\ 'term_rows': rows,
|
|
||||||
\ 'term_cols': cols,
|
|
||||||
\ })
|
|
||||||
if &termwinsize == ''
|
|
||||||
" in the GUI we may end up with a different size, try to set it.
|
|
||||||
if term_getsize(buf) != [rows, cols]
|
|
||||||
call term_setsize(buf, rows, cols)
|
|
||||||
endif
|
|
||||||
call assert_equal([rows, cols], term_getsize(buf))
|
|
||||||
else
|
|
||||||
let rows = term_getsize(buf)[0]
|
|
||||||
let cols = term_getsize(buf)[1]
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Wait for "All" or "Top" of the ruler to be shown in the last line or in
|
|
||||||
" the status line of the last window. This can be quite slow (e.g. when
|
|
||||||
" using valgrind).
|
|
||||||
" If it fails then show the terminal contents for debugging.
|
|
||||||
try
|
|
||||||
call WaitFor({-> len(term_getline(buf, rows)) >= cols - 1 || len(term_getline(buf, rows - statusoff)) >= cols - 1})
|
|
||||||
catch /timed out after/
|
|
||||||
let lines = map(range(1, rows), {key, val -> term_getline(buf, val)})
|
|
||||||
call assert_report('RunVimInTerminal() failed, screen contents: ' . join(lines, "<NL>"))
|
|
||||||
endtry
|
|
||||||
|
|
||||||
return buf
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Stop a Vim running in terminal buffer "buf".
|
|
||||||
func StopVimInTerminal(buf)
|
|
||||||
call assert_equal("running", term_getstatus(a:buf))
|
|
||||||
|
|
||||||
" CTRL-O : works both in Normal mode and Insert mode to start a command line.
|
|
||||||
" In Command-line it's inserted, the CTRL-U removes it again.
|
|
||||||
call term_sendkeys(a:buf, "\<C-O>:\<C-U>qa!\<cr>")
|
|
||||||
|
|
||||||
call WaitForAssert({-> assert_equal("finished", term_getstatus(a:buf))})
|
|
||||||
only!
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Verify that Vim running in terminal buffer "buf" matches the screen dump.
|
" Verify that Vim running in terminal buffer "buf" matches the screen dump.
|
||||||
" "options" is passed to term_dumpwrite().
|
" "options" is passed to term_dumpwrite().
|
||||||
" The file name used is "dumps/{filename}.dump".
|
" The file name used is "dumps/{filename}.dump".
|
||||||
|
@@ -1,10 +1,12 @@
|
|||||||
" Functions shared by several tests.
|
" Functions shared by several tests.
|
||||||
|
|
||||||
" Only load this script once.
|
" Only load this script once.
|
||||||
if exists('*WaitFor')
|
if exists('*PythonProg')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
source view_util.vim
|
||||||
|
|
||||||
" Get the name of the Python executable.
|
" Get the name of the Python executable.
|
||||||
" Also keeps it in s:python.
|
" Also keeps it in s:python.
|
||||||
func PythonProg()
|
func PythonProg()
|
||||||
@@ -327,31 +329,3 @@ func WorkingClipboard()
|
|||||||
endif
|
endif
|
||||||
return 1
|
return 1
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Get line "lnum" as displayed on the screen.
|
|
||||||
" Trailing white space is trimmed.
|
|
||||||
func Screenline(lnum)
|
|
||||||
let chars = []
|
|
||||||
for c in range(1, winwidth(0))
|
|
||||||
call add(chars, nr2char(screenchar(a:lnum, c)))
|
|
||||||
endfor
|
|
||||||
let line = join(chars, '')
|
|
||||||
return matchstr(line, '^.\{-}\ze\s*$')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Stops the shell running in terminal "buf".
|
|
||||||
func Stop_shell_in_terminal(buf)
|
|
||||||
call term_sendkeys(a:buf, "exit\r")
|
|
||||||
let job = term_getjob(a:buf)
|
|
||||||
call WaitFor({-> job_status(job) == "dead"})
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" Gets the text of a terminal line, using term_scrape()
|
|
||||||
func Get_terminal_text(bufnr, row)
|
|
||||||
let list = term_scrape(a:bufnr, a:row)
|
|
||||||
let text = ''
|
|
||||||
for item in list
|
|
||||||
let text .= item.chars
|
|
||||||
endfor
|
|
||||||
return text
|
|
||||||
endfunc
|
|
||||||
|
106
src/testdir/term_util.vim
Normal file
106
src/testdir/term_util.vim
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
" Functions about terminal shared by several tests
|
||||||
|
|
||||||
|
" Only load this script once.
|
||||||
|
if exists('*CanRunVimInTerminal')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" For most tests we need to be able to run terminal Vim with 256 colors. On
|
||||||
|
" MS-Windows the console only has 16 colors and the GUI can't run in a
|
||||||
|
" terminal.
|
||||||
|
func CanRunVimInTerminal()
|
||||||
|
return has('terminal') && !has('win32')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Skip the rest if there is no terminal feature at all.
|
||||||
|
if !has('terminal')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Stops the shell running in terminal "buf".
|
||||||
|
func StopShellInTerminal(buf)
|
||||||
|
call term_sendkeys(a:buf, "exit\r")
|
||||||
|
let job = term_getjob(a:buf)
|
||||||
|
call WaitFor({-> job_status(job) == "dead"})
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Run Vim with "arguments" in a new terminal window.
|
||||||
|
" By default uses a size of 20 lines and 75 columns.
|
||||||
|
" Returns the buffer number of the terminal.
|
||||||
|
"
|
||||||
|
" Options is a dictionary, these items are recognized:
|
||||||
|
" "rows" - height of the terminal window (max. 20)
|
||||||
|
" "cols" - width of the terminal window (max. 78)
|
||||||
|
" "statusoff" - number of lines the status is offset from default
|
||||||
|
func RunVimInTerminal(arguments, options)
|
||||||
|
" If Vim doesn't exit a swap file remains, causing other tests to fail.
|
||||||
|
" Remove it here.
|
||||||
|
call delete(".swp")
|
||||||
|
|
||||||
|
if exists('$COLORFGBG')
|
||||||
|
" Clear $COLORFGBG to avoid 'background' being set to "dark", which will
|
||||||
|
" only be corrected if the response to t_RB is received, which may be too
|
||||||
|
" late.
|
||||||
|
let $COLORFGBG = ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Make a horizontal and vertical split, so that we can get exactly the right
|
||||||
|
" size terminal window. Works only when the current window is full width.
|
||||||
|
call assert_equal(&columns, winwidth(0))
|
||||||
|
split
|
||||||
|
vsplit
|
||||||
|
|
||||||
|
" Always do this with 256 colors and a light background.
|
||||||
|
set t_Co=256 background=light
|
||||||
|
hi Normal ctermfg=NONE ctermbg=NONE
|
||||||
|
|
||||||
|
" Make the window 20 lines high and 75 columns, unless told otherwise.
|
||||||
|
let rows = get(a:options, 'rows', 20)
|
||||||
|
let cols = get(a:options, 'cols', 75)
|
||||||
|
let statusoff = get(a:options, 'statusoff', 1)
|
||||||
|
|
||||||
|
let cmd = GetVimCommandClean()
|
||||||
|
|
||||||
|
" Add -v to have gvim run in the terminal (if possible)
|
||||||
|
let cmd .= ' -v ' . a:arguments
|
||||||
|
let buf = term_start(cmd, {
|
||||||
|
\ 'curwin': 1,
|
||||||
|
\ 'term_rows': rows,
|
||||||
|
\ 'term_cols': cols,
|
||||||
|
\ })
|
||||||
|
if &termwinsize == ''
|
||||||
|
" in the GUI we may end up with a different size, try to set it.
|
||||||
|
if term_getsize(buf) != [rows, cols]
|
||||||
|
call term_setsize(buf, rows, cols)
|
||||||
|
endif
|
||||||
|
call assert_equal([rows, cols], term_getsize(buf))
|
||||||
|
else
|
||||||
|
let rows = term_getsize(buf)[0]
|
||||||
|
let cols = term_getsize(buf)[1]
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Wait for "All" or "Top" of the ruler to be shown in the last line or in
|
||||||
|
" the status line of the last window. This can be quite slow (e.g. when
|
||||||
|
" using valgrind).
|
||||||
|
" If it fails then show the terminal contents for debugging.
|
||||||
|
try
|
||||||
|
call WaitFor({-> len(term_getline(buf, rows)) >= cols - 1 || len(term_getline(buf, rows - statusoff)) >= cols - 1})
|
||||||
|
catch /timed out after/
|
||||||
|
let lines = map(range(1, rows), {key, val -> term_getline(buf, val)})
|
||||||
|
call assert_report('RunVimInTerminal() failed, screen contents: ' . join(lines, "<NL>"))
|
||||||
|
endtry
|
||||||
|
|
||||||
|
return buf
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Stop a Vim running in terminal buffer "buf".
|
||||||
|
func StopVimInTerminal(buf)
|
||||||
|
call assert_equal("running", term_getstatus(a:buf))
|
||||||
|
|
||||||
|
" CTRL-O : works both in Normal mode and Insert mode to start a command line.
|
||||||
|
" In Command-line it's inserted, the CTRL-U removes it again.
|
||||||
|
call term_sendkeys(a:buf, "\<C-O>:\<C-U>qa!\<cr>")
|
||||||
|
|
||||||
|
call WaitForAssert({-> assert_equal("finished", term_getstatus(a:buf))})
|
||||||
|
only!
|
||||||
|
endfunc
|
@@ -7,6 +7,7 @@ source check.vim
|
|||||||
CheckFeature mksession
|
CheckFeature mksession
|
||||||
|
|
||||||
source shared.vim
|
source shared.vim
|
||||||
|
source term_util.vim
|
||||||
|
|
||||||
func Test_mksession()
|
func Test_mksession()
|
||||||
tabnew
|
tabnew
|
||||||
@@ -338,7 +339,7 @@ func Test_mksession_terminal_shell()
|
|||||||
endfor
|
endfor
|
||||||
call assert_match('terminal ++curwin ++cols=\d\+ ++rows=\d\+\s*.*$', term_cmd)
|
call assert_match('terminal ++curwin ++cols=\d\+ ++rows=\d\+\s*.*$', term_cmd)
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
@@ -353,7 +354,7 @@ func Test_mksession_terminal_no_restore_cmdarg()
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
@@ -368,7 +369,7 @@ func Test_mksession_terminal_no_restore_funcarg()
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
@@ -384,7 +385,7 @@ func Test_mksession_terminal_no_restore_func()
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
@@ -400,7 +401,7 @@ func Test_mksession_terminal_no_ssop()
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
set sessionoptions&
|
set sessionoptions&
|
||||||
endfunc
|
endfunc
|
||||||
@@ -418,7 +419,7 @@ func Test_mksession_terminal_restore_other()
|
|||||||
endfor
|
endfor
|
||||||
call assert_match('terminal ++curwin ++cols=\d\+ ++rows=\d\+.*other', term_cmd)
|
call assert_match('terminal ++curwin ++cols=\d\+ ++rows=\d\+.*other', term_cmd)
|
||||||
|
|
||||||
call Stop_shell_in_terminal(bufnr('%'))
|
call StopShellInTerminal(bufnr('%'))
|
||||||
call delete('Xtest_mks.out')
|
call delete('Xtest_mks.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
" Test :suspend
|
" Test :suspend
|
||||||
|
|
||||||
source shared.vim
|
source shared.vim
|
||||||
|
source term_util.vim
|
||||||
|
|
||||||
func CheckSuspended(buf, fileExists)
|
func CheckSuspended(buf, fileExists)
|
||||||
call WaitForAssert({-> assert_match('[$#] $', term_getline(a:buf, '.'))})
|
call WaitForAssert({-> assert_match('[$#] $', term_getline(a:buf, '.'))})
|
||||||
@@ -53,7 +54,7 @@ func Test_suspend()
|
|||||||
" Quit gracefully to dump coverage information.
|
" Quit gracefully to dump coverage information.
|
||||||
call term_sendkeys(buf, ":qall!\<CR>")
|
call term_sendkeys(buf, ":qall!\<CR>")
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
|
|
||||||
exe buf . 'bwipe!'
|
exe buf . 'bwipe!'
|
||||||
call delete('Xfoo')
|
call delete('Xfoo')
|
||||||
|
@@ -52,7 +52,7 @@ func Test_terminal_basic()
|
|||||||
call assert_notmatch('%[^\n]*running]', execute('ls F'))
|
call assert_notmatch('%[^\n]*running]', execute('ls F'))
|
||||||
call assert_notmatch('%[^\n]*running]', execute('ls ?'))
|
call assert_notmatch('%[^\n]*running]', execute('ls ?'))
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
call assert_equal('n', mode())
|
call assert_equal('n', mode())
|
||||||
call assert_match('%aF[^\n]*finished]', execute('ls'))
|
call assert_match('%aF[^\n]*finished]', execute('ls'))
|
||||||
@@ -70,7 +70,7 @@ endfunc
|
|||||||
|
|
||||||
func Test_terminal_make_change()
|
func Test_terminal_make_change()
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
|
|
||||||
setlocal modifiable
|
setlocal modifiable
|
||||||
@@ -134,7 +134,7 @@ func Test_terminal_hide_buffer()
|
|||||||
call assert_true(buflisted(buf))
|
call assert_true(buflisted(buf))
|
||||||
|
|
||||||
exe 'split ' . buf . 'buf'
|
exe 'split ' . buf . 'buf'
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
unlet g:job
|
unlet g:job
|
||||||
@@ -310,7 +310,7 @@ func Test_terminal_scrollback()
|
|||||||
let lines = line('$')
|
let lines = line('$')
|
||||||
call assert_inrange(91, 100, lines)
|
call assert_inrange(91, 100, lines)
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
set termwinscroll&
|
set termwinscroll&
|
||||||
@@ -487,7 +487,7 @@ func Test_terminal_finish_open_close()
|
|||||||
call assert_equal(2, winnr('$'))
|
call assert_equal(2, winnr('$'))
|
||||||
" Wait for the shell to display a prompt
|
" Wait for the shell to display a prompt
|
||||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
|
call WaitForAssert({-> assert_equal(1, winnr('$'))}, waittime)
|
||||||
|
|
||||||
" shell terminal that does not close automatically
|
" shell terminal that does not close automatically
|
||||||
@@ -496,7 +496,7 @@ func Test_terminal_finish_open_close()
|
|||||||
call assert_equal(2, winnr('$'))
|
call assert_equal(2, winnr('$'))
|
||||||
" Wait for the shell to display a prompt
|
" Wait for the shell to display a prompt
|
||||||
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
call WaitForAssert({-> assert_notequal('', term_getline(buf, 1))})
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call assert_equal(2, winnr('$'))
|
call assert_equal(2, winnr('$'))
|
||||||
quit
|
quit
|
||||||
call assert_equal(1, winnr('$'))
|
call assert_equal(1, winnr('$'))
|
||||||
@@ -602,7 +602,7 @@ func s:test_environment(name, value)
|
|||||||
call term_sendkeys(buf, "echo $" . a:name . "\r")
|
call term_sendkeys(buf, "echo $" . a:name . "\r")
|
||||||
endif
|
endif
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call WaitForAssert({-> assert_equal(a:value, getline(2))})
|
call WaitForAssert({-> assert_equal(a:value, getline(2))})
|
||||||
|
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
@@ -619,7 +619,7 @@ func Test_terminal_env()
|
|||||||
call term_sendkeys(buf, "echo $TESTENV\r")
|
call term_sendkeys(buf, "echo $TESTENV\r")
|
||||||
endif
|
endif
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call WaitForAssert({-> assert_equal('correct', getline(2))})
|
call WaitForAssert({-> assert_equal('correct', getline(2))})
|
||||||
|
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
@@ -661,7 +661,7 @@ func Test_terminal_noblock()
|
|||||||
call assert_match('done', line)
|
call assert_match('done', line)
|
||||||
|
|
||||||
let g:job = term_getjob(buf)
|
let g:job = term_getjob(buf)
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
unlet g:job
|
unlet g:job
|
||||||
bwipe
|
bwipe
|
||||||
@@ -816,7 +816,7 @@ func TerminalTmap(remap)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
call term_sendkeys(buf, "\r")
|
call term_sendkeys(buf, "\r")
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
|
|
||||||
tunmap 123
|
tunmap 123
|
||||||
@@ -834,7 +834,7 @@ endfunc
|
|||||||
func Test_terminal_wall()
|
func Test_terminal_wall()
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
wall
|
wall
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
unlet g:job
|
unlet g:job
|
||||||
@@ -843,7 +843,7 @@ endfunc
|
|||||||
func Test_terminal_wqall()
|
func Test_terminal_wqall()
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
call assert_fails('wqall', 'E948')
|
call assert_fails('wqall', 'E948')
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
unlet g:job
|
unlet g:job
|
||||||
@@ -969,7 +969,7 @@ func Test_terminal_response_to_control_sequence()
|
|||||||
" End "cat" gently.
|
" End "cat" gently.
|
||||||
call term_sendkeys(buf, "\<CR>\<C-D>")
|
call term_sendkeys(buf, "\<CR>\<C-D>")
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
unlet g:job
|
unlet g:job
|
||||||
endfunc
|
endfunc
|
||||||
@@ -1448,7 +1448,7 @@ func Test_terminal_ansicolors_default()
|
|||||||
|
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
call assert_equal(colors, term_getansicolors(buf))
|
call assert_equal(colors, term_getansicolors(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
|
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
@@ -1469,7 +1469,7 @@ func Test_terminal_ansicolors_global()
|
|||||||
let g:terminal_ansi_colors = reverse(copy(s:test_colors))
|
let g:terminal_ansi_colors = reverse(copy(s:test_colors))
|
||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
call assert_equal(g:terminal_ansi_colors, term_getansicolors(buf))
|
call assert_equal(g:terminal_ansi_colors, term_getansicolors(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
|
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
@@ -1499,7 +1499,7 @@ func Test_terminal_ansicolors_func()
|
|||||||
let colors[4] = 'Invalid'
|
let colors[4] = 'Invalid'
|
||||||
call assert_fails('call term_setansicolors(buf, colors)', 'E474:')
|
call assert_fails('call term_setansicolors(buf, colors)', 'E474:')
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
endfunc
|
endfunc
|
||||||
@@ -1599,7 +1599,7 @@ func Test_terminal_termwinsize_option_zero()
|
|||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
let win = bufwinid(buf)
|
let win = bufwinid(buf)
|
||||||
call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
|
call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
@@ -1607,7 +1607,7 @@ func Test_terminal_termwinsize_option_zero()
|
|||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
let win = bufwinid(buf)
|
let win = bufwinid(buf)
|
||||||
call assert_equal([7, winwidth(win)], term_getsize(buf))
|
call assert_equal([7, winwidth(win)], term_getsize(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
@@ -1615,7 +1615,7 @@ func Test_terminal_termwinsize_option_zero()
|
|||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
let win = bufwinid(buf)
|
let win = bufwinid(buf)
|
||||||
call assert_equal([winheight(win), 33], term_getsize(buf))
|
call assert_equal([winheight(win), 33], term_getsize(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
@@ -1645,7 +1645,7 @@ func Test_terminal_termwinsize_minimum()
|
|||||||
call assert_equal(7, winheight(win))
|
call assert_equal(7, winheight(win))
|
||||||
call assert_equal(30, winwidth(win))
|
call assert_equal(30, winwidth(win))
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
@@ -1653,7 +1653,7 @@ func Test_terminal_termwinsize_minimum()
|
|||||||
let buf = Run_shell_in_terminal({})
|
let buf = Run_shell_in_terminal({})
|
||||||
let win = bufwinid(buf)
|
let win = bufwinid(buf)
|
||||||
call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
|
call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
exe buf . 'bwipe'
|
exe buf . 'bwipe'
|
||||||
|
|
||||||
@@ -1791,7 +1791,7 @@ func Test_zz1_terminal_in_gui()
|
|||||||
|
|
||||||
call assert_equal(1, winnr('$'))
|
call assert_equal(1, winnr('$'))
|
||||||
let buf = Run_shell_in_terminal({'term_finish': 'close'})
|
let buf = Run_shell_in_terminal({'term_finish': 'close'})
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
call term_wait(buf)
|
call term_wait(buf)
|
||||||
|
|
||||||
" closing window wipes out the terminal buffer a with finished job
|
" closing window wipes out the terminal buffer a with finished job
|
||||||
@@ -1972,7 +1972,7 @@ func Test_term_getcursor()
|
|||||||
call WaitForAssert({-> assert_equal([0, 3],
|
call WaitForAssert({-> assert_equal([0, 3],
|
||||||
\ [term_getcursor(buf)[2].blink, term_getcursor(buf)[2].shape])})
|
\ [term_getcursor(buf)[2].blink, term_getcursor(buf)[2].shape])})
|
||||||
|
|
||||||
call Stop_shell_in_terminal(buf)
|
call StopShellInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_term_gettitle()
|
func Test_term_gettitle()
|
||||||
|
@@ -4,7 +4,7 @@ source check.vim
|
|||||||
CheckFeature timers
|
CheckFeature timers
|
||||||
|
|
||||||
source shared.vim
|
source shared.vim
|
||||||
source screendump.vim
|
source term_util.vim
|
||||||
|
|
||||||
func MyHandler(timer)
|
func MyHandler(timer)
|
||||||
let g:val += 1
|
let g:val += 1
|
||||||
|
@@ -1,10 +1,21 @@
|
|||||||
" Functions about view shared by several tests
|
" Functions about view shared by several tests
|
||||||
|
|
||||||
" Only load this script once.
|
" Only load this script once.
|
||||||
if exists('*ScreenLines')
|
if exists('*Screenline')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Get line "lnum" as displayed on the screen.
|
||||||
|
" Trailing white space is trimmed.
|
||||||
|
func Screenline(lnum)
|
||||||
|
let chars = []
|
||||||
|
for c in range(1, winwidth(0))
|
||||||
|
call add(chars, nr2char(screenchar(a:lnum, c)))
|
||||||
|
endfor
|
||||||
|
let line = join(chars, '')
|
||||||
|
return matchstr(line, '^.\{-}\ze\s*$')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Get text on the screen, including composing characters.
|
" Get text on the screen, including composing characters.
|
||||||
" ScreenLines(lnum, width) or
|
" ScreenLines(lnum, width) or
|
||||||
" ScreenLines([start, end], width)
|
" ScreenLines([start, end], width)
|
||||||
|
@@ -777,6 +777,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 */
|
||||||
|
/**/
|
||||||
|
1581,
|
||||||
/**/
|
/**/
|
||||||
1580,
|
1580,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user