]> granicus.if.org Git - vim/commitdiff
patch 8.0.1645: test for terminal response to escape sequence may fail v8.0.1645
authorBram Moolenaar <Bram@vim.org>
Sun, 25 Mar 2018 19:24:12 +0000 (21:24 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 25 Mar 2018 19:24:12 +0000 (21:24 +0200)
Problem:    Test for terminal response to escape sequence fails for some
            people. (toothpik)
Solution:   Run "cat" and let it echo the characters.

src/testdir/test_terminal.vim
src/version.c

index f981fcc95069a8d81275cf47bcf0578b5a683269..ff5056832132f4d3213d48d42e93c070882f299d 100644 (file)
@@ -833,25 +833,22 @@ func Test_terminal_response_to_control_sequence()
   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)
-  call Stop_shell_in_terminal(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
 
index 1a8c10ea473372e6318ce62f362d7fa2d22224d5..2cc99778d4def038bb38e9cf59e94499db846a40 100644 (file)
@@ -766,6 +766,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1645,
 /**/
     1644,
 /**/