Mercurial > vim
diff src/testdir/test_channel.vim @ 8210:b717dae2f26d v7.4.1398
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 23 13:20:22 2016 +0100
patch 7.4.1398
Problem: The close-cb option is not implemented yet.
Solution: Implemente close-cb. (Yasuhiro Matsumoto)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 23 Feb 2016 13:30:07 +0100 |
parents | f2286ff0c102 |
children | 4f0677020a43 |
line wrap: on
line diff
--- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -471,9 +471,9 @@ endfunc """"""""" -let s:job_ret = 'not yet' +let s:job_exit_ret = 'not yet' function MyExitCb(job, status) - let s:job_ret = 'done' + let s:job_exit_ret = 'done' endfunc function s:test_exit_callback(port) @@ -490,6 +490,32 @@ func Test_exit_callback() " calling job_status() triggers the callback call job_status(s:exit_job) - call assert_equal('done', s:job_ret) + call assert_equal('done', s:job_exit_ret) endif endfunc + +""""""""" + +let s:ch_close_ret = 'alive' +function MyCloseCb(ch) + let s:ch_close_ret = 'closed' +endfunc + +function s:test_close_callback(port) + let handle = ch_open('localhost:' . a:port, s:chopt) + if ch_status(handle) == "fail" + call assert_false(1, "Can't open channel") + return + endif + call ch_setoptions(handle, {'close-cb': 'MyCloseCb'}) + + call assert_equal('', ch_sendexpr(handle, 'close me')) + sleep 20m + call assert_equal('closed', s:ch_close_ret) +endfunc + +func Test_close_callback() + call ch_log('Test_close_callback()') + call s:run_server('s:test_close_callback') +endfunc +