Skip to content
Snippets Groups Projects
Commit e751a5f5 authored by Bram Moolenaar's avatar Bram Moolenaar
Browse files

patch 8.1.0603: the :stop command is not tested

Problem:    The :stop command is not tested.
Solution:   Test :stop using a terminal window.
parent 2caad3fb
No related branches found
Tags v8.1.0603
No related merge requests found
......@@ -345,3 +345,13 @@ func Stop_shell_in_terminal(buf)
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
......@@ -1683,3 +1683,34 @@ func Test_terminal_does_not_truncate_last_newlines()
call delete('Xfile')
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[] =
{ /* Add new patch number below this line */
/**/
603,
/**/
602,
/**/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment