mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0603: the :stop command is not tested
Problem: The :stop command is not tested. Solution: Test :stop using a terminal window.
This commit is contained in:
parent
2caad3fbbd
commit
e751a5f531
@ -345,3 +345,13 @@ func Stop_shell_in_terminal(buf)
|
|||||||
let job = term_getjob(a:buf)
|
let job = term_getjob(a:buf)
|
||||||
call WaitFor({-> job_status(job) == "dead"})
|
call WaitFor({-> job_status(job) == "dead"})
|
||||||
endfunc
|
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
|
||||||
|
@ -1683,3 +1683,34 @@ func Test_terminal_does_not_truncate_last_newlines()
|
|||||||
|
|
||||||
call delete('Xfile')
|
call delete('Xfile')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_stop_in_terminal()
|
||||||
|
" We can't expect this to work on all systems, just test on Linux for now.
|
||||||
|
if !has('unix') || system('uname') !~ 'Linux'
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
term /bin/sh
|
||||||
|
let bufnr = bufnr('')
|
||||||
|
call WaitForAssert({-> assert_equal('running', term_getstatus(bufnr))})
|
||||||
|
let lastrow = term_getsize(bufnr)[0]
|
||||||
|
|
||||||
|
call term_sendkeys(bufnr, GetVimCommandClean() . "\r")
|
||||||
|
call term_sendkeys(bufnr, ":echo 'ready'\r")
|
||||||
|
call WaitForAssert({-> assert_match('ready', Get_terminal_text(bufnr, lastrow))})
|
||||||
|
|
||||||
|
call term_sendkeys(bufnr, ":stop\r")
|
||||||
|
" Not sure where "Stopped" shows up, assume in the first three lines.
|
||||||
|
call WaitForAssert({-> assert_match('Stopped',
|
||||||
|
\ Get_terminal_text(bufnr, 1) .
|
||||||
|
\ Get_terminal_text(bufnr, 2) .
|
||||||
|
\ Get_terminal_text(bufnr, 3))})
|
||||||
|
|
||||||
|
call term_sendkeys(bufnr, "fg\r")
|
||||||
|
call term_sendkeys(bufnr, ":echo 'back again'\r")
|
||||||
|
call WaitForAssert({-> assert_match('back again', Get_terminal_text(bufnr, lastrow))})
|
||||||
|
|
||||||
|
call term_sendkeys(bufnr, ":quit\r")
|
||||||
|
call term_wait(bufnr)
|
||||||
|
call Stop_shell_in_terminal(bufnr)
|
||||||
|
exe bufnr . 'bwipe'
|
||||||
|
endfunc
|
||||||
|
@ -799,6 +799,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 */
|
||||||
|
/**/
|
||||||
|
603,
|
||||||
/**/
|
/**/
|
||||||
602,
|
602,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user