Mercurial > vim
diff src/testdir/test_channel.vim @ 8447:6f26b680c243 v7.4.1514
commit https://github.com/vim/vim/commit/e98d12105213975f37b8d653bd909bd787a2cda9
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Mar 8 15:37:41 2016 +0100
patch 7.4.1514
Problem: Channel output to file not implemented yet.
Solution: Implement it for Unix.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 08 Mar 2016 15:45:05 +0100 |
parents | 6c421014a0b3 |
children | 3d567b5839c5 |
line wrap: on
line diff
--- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -555,6 +555,97 @@ func Test_nl_read_file() endtry endfunc +func Test_nl_write_out_file() + if !has('job') + return + endif + " TODO: make this work for MS-Windows + if !has('unix') + return + endif + call ch_log('Test_nl_write_out_file()') + let job = job_start(s:python . " test_channel_pipe.py", + \ {'out-io': 'file', 'out-name': 'Xoutput'}) + call assert_equal("run", job_status(job)) + try + let handle = job_getchannel(job) + call ch_sendraw(handle, "echo line one\n") + call ch_sendraw(handle, "echo line two\n") + call ch_sendraw(handle, "double this\n") + for i in range(50) + sleep 10m + if len(readfile('Xoutput')) > 2 + break + endif + endfor + call assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput')) + finally + call job_stop(job) + call delete('Xoutput') + endtry +endfunc + +func Test_nl_write_err_file() + if !has('job') + return + endif + " TODO: make this work for MS-Windows + if !has('unix') + return + endif + call ch_log('Test_nl_write_err_file()') + let job = job_start(s:python . " test_channel_pipe.py", + \ {'err-io': 'file', 'err-name': 'Xoutput'}) + call assert_equal("run", job_status(job)) + try + let handle = job_getchannel(job) + call ch_sendraw(handle, "echoerr line one\n") + call ch_sendraw(handle, "echoerr line two\n") + call ch_sendraw(handle, "doubleerr this\n") + for i in range(50) + sleep 10m + if len(readfile('Xoutput')) > 2 + break + endif + endfor + call assert_equal(['line one', 'line two', 'this', 'AND this'], readfile('Xoutput')) + finally + call job_stop(job) + call delete('Xoutput') + endtry +endfunc + +func Test_nl_write_both_file() + if !has('job') + return + endif + " TODO: make this work for MS-Windows + if !has('unix') + return + endif + call ch_log('Test_nl_write_both_file()') + let job = job_start(s:python . " test_channel_pipe.py", + \ {'out-io': 'file', 'out-name': 'Xoutput', 'err-io': 'out'}) + call assert_equal("run", job_status(job)) + try + let handle = job_getchannel(job) + call ch_sendraw(handle, "echoerr line one\n") + call ch_sendraw(handle, "echo line two\n") + call ch_sendraw(handle, "double this\n") + call ch_sendraw(handle, "doubleerr that\n") + for i in range(50) + sleep 10m + if len(readfile('Xoutput')) > 5 + break + endif + endfor + call assert_equal(['line one', 'line two', 'this', 'AND this', 'that', 'AND that'], readfile('Xoutput')) + finally + call job_stop(job) + call delete('Xoutput') + endtry +endfunc + func Test_pipe_to_buffer() if !has('job') return