patch 8.0.1645: test for terminal response to escape sequence may fail
Problem: Test for terminal response to escape sequence fails for some
people. (toothpik)
Solution: Run "cat" and let it echo the characters.
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index f981fcc..ff50568 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -833,25 +833,22 @@
endif
let buf = Run_shell_in_terminal({})
- call WaitFor({-> term_getline(buf, 1) != ""})
+ call WaitFor({-> term_getline(buf, 1) != ''})
- call writefile(["\x1b[6n"], 'Xescape')
- call term_sendkeys(buf, "cat Xescape\<cr>")
+ call term_sendkeys(buf, "cat\<CR>")
+ call WaitFor({-> term_getline(buf, 1) =~ 'cat'})
- " wait for the response of control sequence from libvterm (and send it to tty)
- sleep 200m
- call term_wait(buf)
+ " Request the cursor position.
+ call term_sendkeys(buf, "\x1b[6n\<CR>")
" Wait for output from tty to display, below an empty line.
- " It should show \e3;1R, but only 1R may show up
- call assert_match('\<\d\+R', term_getline(buf, 3))
+ call WaitFor({-> term_getline(buf, 4) =~ '3;1R'})
- call term_sendkeys(buf, "\<c-c>")
- call term_wait(buf)
+ " End "cat" gently.
+ call term_sendkeys(buf, "\<CR>\<C-D>")
+
call Stop_shell_in_terminal(buf)
-
exe buf . 'bwipe'
- call delete('Xescape')
unlet g:job
endfunc
diff --git a/src/version.c b/src/version.c
index 1a8c10e..2cc9977 100644
--- a/src/version.c
+++ b/src/version.c
@@ -767,6 +767,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1645,
+/**/
1644,
/**/
1643,