summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_channel.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-08-11 19:12:11 +0200
committerBram Moolenaar <Bram@vim.org>2017-08-11 19:12:11 +0200
commit05aafed54b50b602315ae55d83a7d089804cecb0 (patch)
tree5ba15103a30540de184b50ca8d82a7adaa2efd4d /src/testdir/test_channel.vim
parent76ca1b4041db71df899a40d2ab1701af4f19cb2a (diff)
patch 8.0.0902: cannot specify directory or environment for a jobv8.0.0902
Problem: Cannot specify directory or environment for a job. Solution: Add the "cwd" and "env" arguments to job options. (Yasuhiro Matsumoto, closes #1160)
Diffstat (limited to 'src/testdir/test_channel.vim')
-rw-r--r--src/testdir/test_channel.vim39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index c988968bb2..42f0810ee3 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -1664,6 +1664,45 @@ func Test_read_from_terminated_job()
call assert_equal(1, g:linecount)
endfunc
+func Test_env()
+ if !has('job')
+ return
+ endif
+
+ let s:envstr = ''
+ if has('win32')
+ call job_start(['cmd', '/c', 'echo %FOO%'], {'callback': {ch,msg->execute(":let s:envstr .= msg")}, 'env':{'FOO': 'bar'}})
+ else
+ call job_start([&shell, &shellcmdflag, 'echo $FOO'], {'callback': {ch,msg->execute(":let s:envstr .= msg")}, 'env':{'FOO': 'bar'}})
+ endif
+ call WaitFor('"" != s:envstr')
+ call assert_equal("bar", s:envstr)
+ unlet s:envstr
+endfunc
+
+func Test_cwd()
+ if !has('job')
+ return
+ endif
+
+ let s:envstr = ''
+ if has('win32')
+ let expect = $TEMP
+ call job_start(['cmd', '/c', 'echo %CD%'], {'callback': {ch,msg->execute(":let s:envstr .= msg")}, 'cwd': expect})
+ else
+ let expect = $HOME
+ call job_start(['pwd'], {'callback': {ch,msg->execute(":let s:envstr .= msg")}, 'cwd': expect})
+ endif
+ call WaitFor('"" != s:envstr')
+ let expect = substitute(expect, '[/\\]$', '', '')
+ let s:envstr = substitute(s:envstr, '[/\\]$', '', '')
+ if $CI != '' && stridx(s:envstr, '/private/') == 0
+ let s:envstr = s:envstr[8:]
+ endif
+ call assert_equal(expect, s:envstr)
+ unlet s:envstr
+endfunc
+
function Ch_test_close_lambda(port)
let handle = ch_open('localhost:' . a:port, s:chopt)
if ch_status(handle) == "fail"