summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-03-20 22:16:56 +0100
committerBram Moolenaar <Bram@vim.org>2016-03-20 22:16:56 +0100
commit75f7265dd402665b8600fdf21ba33f19db06ac0d (patch)
tree391ccbadffb1fc509c1ef7ec10511186ac8c981d
parent580984e026a46ea0c29789897b701057423b4923 (diff)
downloadvim-git-75f7265dd402665b8600fdf21ba33f19db06ac0d.tar.gz
patch 7.4.1627v7.4.1627
Problem: Channel out_cb and err_cb are not tested. Solution: Add a test.
-rw-r--r--src/testdir/test_channel.vim33
-rw-r--r--src/version.c2
2 files changed, 35 insertions, 0 deletions
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 0fd7de9dd..5b554b531 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -994,6 +994,39 @@ func Test_reuse_channel()
endtry
endfunc
+func Test_out_cb()
+ if !has('job')
+ return
+ endif
+ call ch_log('Test_out_cb()')
+
+ let dict = {'thisis': 'dict: '}
+ func dict.outHandler(chan, msg) dict
+ let s:outmsg = self.thisis . a:msg
+ endfunc
+ func dict.errHandler(chan, msg) dict
+ let s:errmsg = self.thisis . a:msg
+ endfunc
+ let job = job_start(s:python . " test_channel_pipe.py",
+ \ {'out_cb': dict.outHandler,
+ \ 'out_mode': 'json',
+ \ 'err_cb': dict.errHandler,
+ \ 'err_mode': 'json'})
+ call assert_equal("run", job_status(job))
+ try
+ let s:outmsg = ''
+ let s:errmsg = ''
+ call ch_sendraw(job, "echo [0, \"hello\"]\n")
+ call ch_sendraw(job, "echoerr [0, \"there\"]\n")
+ call s:waitFor('s:outmsg != ""')
+ call assert_equal("dict: hello", s:outmsg)
+ call s:waitFor('s:errmsg != ""')
+ call assert_equal("dict: there", s:errmsg)
+ finally
+ call job_stop(job)
+ endtry
+endfunc
+
""""""""""
let s:unletResponse = ''
diff --git a/src/version.c b/src/version.c
index fee3370d2..149bbaf07 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1627,
+/**/
1626,
/**/
1625,