Patch 8.0.1605
Problem:    Terminal test is a bit flaky.
Solution:   Check for the shell prompt.  Use more lambda functions.
Files:      src/testdir/test_terminal.vim


*** ../vim-8.0.1604/src/testdir/test_terminal.vim       2018-03-11 
16:55:30.008616433 +0100
--- src/testdir/test_terminal.vim       2018-03-13 17:52:23.350725108 +0100
***************
*** 432,470 ****
    if !has('clientserver')
      return
    endif
!   let g:buf = Run_shell_in_terminal({})
    " Wait for the shell to display a prompt
!   call WaitFor('term_getline(g:buf, 1) != ""')
    if has('win32')
!     call term_sendkeys(g:buf, "echo %VIM_SERVERNAME%\r")
    else
!     call term_sendkeys(g:buf, "echo $VIM_SERVERNAME\r")
    endif
!   call term_wait(g:buf)
!   call Stop_shell_in_terminal(g:buf)
    call WaitFor('getline(2) == v:servername')
    call assert_equal(v:servername, getline(2))
  
!   exe g:buf . 'bwipe'
!   unlet g:buf
  endfunc
  
  func Test_terminal_env()
!   let g:buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}})
    " Wait for the shell to display a prompt
!   call WaitFor('term_getline(g:buf, 1) != ""')
    if has('win32')
!     call term_sendkeys(g:buf, "echo %TESTENV%\r")
    else
!     call term_sendkeys(g:buf, "echo $TESTENV\r")
    endif
!   call term_wait(g:buf)
!   call Stop_shell_in_terminal(g:buf)
    call WaitFor('getline(2) == "correct"')
    call assert_equal('correct', getline(2))
  
!   exe g:buf . 'bwipe'
!   unlet g:buf
  endfunc
  
  " must be last, we can't go back from GUI to terminal
--- 432,469 ----
    if !has('clientserver')
      return
    endif
!   let buf = Run_shell_in_terminal({})
    " Wait for the shell to display a prompt
!   call WaitFor({-> term_getline(buf, 1) != ""})
    if has('win32')
!     call term_sendkeys(buf, "echo %VIM_SERVERNAME%\r")
    else
!     call term_sendkeys(buf, "echo $VIM_SERVERNAME\r")
    endif
!   call term_wait(buf)
!   call Stop_shell_in_terminal(buf)
    call WaitFor('getline(2) == v:servername')
    call assert_equal(v:servername, getline(2))
  
!   exe buf . 'bwipe'
!   unlet buf
  endfunc
  
  func Test_terminal_env()
!   let buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}})
    " Wait for the shell to display a prompt
!   call WaitFor({-> term_getline(buf, 1) != ""})
    if has('win32')
!     call term_sendkeys(buf, "echo %TESTENV%\r")
    else
!     call term_sendkeys(buf, "echo $TESTENV\r")
    endif
!   call term_wait(buf)
!   call Stop_shell_in_terminal(buf)
    call WaitFor('getline(2) == "correct"')
    call assert_equal('correct', getline(2))
  
!   exe buf . 'bwipe'
  endfunc
  
  " must be last, we can't go back from GUI to terminal
***************
*** 591,598 ****
    else
      call system('echo "look here" > ' . pty)
    endif
!   let g:buf = buf
!   call WaitFor('term_getline(g:buf, 1) =~ "look here"')
  
    call assert_match('look here', term_getline(buf, 1))
    bwipe!
--- 590,596 ----
    else
      call system('echo "look here" > ' . pty)
    endif
!   call WaitFor({-> term_getline(buf, 1) =~ "look here"})
  
    call assert_match('look here', term_getline(buf, 1))
    bwipe!
***************
*** 672,679 ****
    call assert_equal('456', maparg('123', 't'))
    call assert_equal('abxde', maparg('456', 't'))
    call feedkeys("123", 'tx')
!   let g:buf = buf
!   call WaitFor("term_getline(g:buf,term_getcursor(g:buf)[0]) =~ 
'abxde\\|456'")
    let lnum = term_getcursor(buf)[0]
    if a:remap
      call assert_match('abxde', term_getline(buf, lnum))
--- 670,676 ----
    call assert_equal('456', maparg('123', 't'))
    call assert_equal('abxde', maparg('456', 't'))
    call feedkeys("123", 'tx')
!   call WaitFor({-> term_getline(buf, term_getcursor(buf)[0]) =~ 'abxde\|456'})
    let lnum = term_getcursor(buf)[0]
    if a:remap
      call assert_match('abxde', term_getline(buf, lnum))
***************
*** 816,827 ****
    endif
  
    let buf = Run_shell_in_terminal({})
!   call term_wait(buf)
  
!   new
!   call setline(1, "\x1b[6n")
!   write! Xescape
!   bwipe
    call term_sendkeys(buf, "cat Xescape\<cr>")
  
    " wait for the response of control sequence from libvterm (and send it to 
tty)
--- 813,821 ----
    endif
  
    let buf = Run_shell_in_terminal({})
!   call WaitFor({-> term_getline(buf, 1) != ""})
  
!   call writefile(["\x1b[6n"], 'Xescape')
    call term_sendkeys(buf, "cat Xescape\<cr>")
  
    " wait for the response of control sequence from libvterm (and send it to 
tty)
***************
*** 909,915 ****
    quit
  endfunc
  
! func Test_terminalopen_autocmd()
    augroup repro
      au!
      au TerminalOpen * let s:called += 1
--- 903,909 ----
    quit
  endfunc
  
! func Test_terminal_open_autocmd()
    augroup repro
      au!
      au TerminalOpen * let s:called += 1
*** ../vim-8.0.1604/src/version.c       2018-03-13 15:43:43.108617291 +0100
--- src/version.c       2018-03-13 17:53:37.494281169 +0100
***************
*** 768,769 ****
--- 768,771 ----
  {   /* Add new patch number below this line */
+ /**/
+     1605,
  /**/

-- 
The goal of science is to build better mousetraps.
The goal of nature is to build better mice.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui