changeset 9806:108b62925cb0 v7.4.2178

commit https://github.com/vim/vim/commit/3a938383396d4ab352bbb4d806938302debdae2c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 7 16:36:40 2016 +0200 patch 7.4.2178 Problem: No test for reading from stdin. Solution: Add a test.
author Christian Brabandt <cb@256bit.org>
date Sun, 07 Aug 2016 16:45:05 +0200
parents 33d5778e0ec0
children c5a8f37bb077
files src/testdir/shared.vim src/testdir/test_startup.vim src/version.c
diffstat 3 files changed, 27 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -122,11 +122,15 @@ func WaitFor(expr)
 endfunc
 
 " Run Vim, using the "vimcmd" file and "-u NORC".
-" "before" is a list of commands to be executed before loading plugins.
-" "after" is a list of commands to be executed after loading plugins.
+" "before" is a list of Vim commands to be executed before loading plugins.
+" "after" is a list of Vim commands to be executed after loading plugins.
 " Plugins are not loaded, unless 'loadplugins' is set in "before".
 " Return 1 if Vim could be executed.
 func RunVim(before, after, arguments)
+  call RunVimPiped(a:before, a:after, a:arguments, '')
+endfunc
+
+func RunVimPiped(before, after, arguments, pipecmd)
   if !filereadable('vimcmd')
     return 0
   endif
@@ -145,7 +149,13 @@ func RunVim(before, after, arguments)
   if cmd !~ '-u NONE'
     let cmd = cmd . ' -u NONE'
   endif
-  exe "silent !" . cmd . args . ' ' . a:arguments
+
+  " With pipecmd we can't set VIMRUNTIME.
+  if a:pipecmd != ''
+    let cmd = substitute(cmd, 'VIMRUNTIME=.*VIMRUNTIME;', '', '')
+  endif
+
+  exe "silent !" . a:pipecmd . cmd . args . ' ' . a:arguments
 
   if len(a:before) > 0
     call delete('Xbefore.vim')
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -169,3 +169,15 @@ func Test_startuptime()
   endif
   call delete('Xtestout')
 endfunc
+
+func Test_read_stdin()
+  let after = [
+	\ 'write Xtestout',
+	\ 'quit!',
+	\ ]
+  if RunVimPiped([], after, '-', 'echo something | ')
+    let lines = readfile('Xtestout')
+    call assert_equal('something', lines[0])
+  endif
+  call delete('Xtestout')
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2178,
+/**/
     2177,
 /**/
     2176,