diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-02-13 17:04:46 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-02-13 17:04:46 +0100 |
commit | 6463ca229cb9412581419497924c85fcbfc854ab (patch) | |
tree | 6c55cc23cf038e6f80ea954e670c691e72dc515a /src/testdir | |
parent | 00af60bbb6cc7e8ccafddb30a1964f891b800bce (diff) |
patch 7.4.1310v7.4.1310
Problem: Jobs don't open a channel.
Solution: Create pipes and add them to the channel. Add ch_logfile().
Only Unix for now.
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_channel.vim | 17 | ||||
-rw-r--r-- | src/testdir/test_channel_pipe.py | 24 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim index af4952539d..7b66099e2e 100644 --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -273,3 +273,20 @@ func Test_connect_waittime() call assert_true(reltimefloat(elapsed) < (has('unix') ? 1.0 : 3.0)) endif endfunc + +func Test_pipe() + if !has('job') || !has('unix') + return + endif + let job = job_start("python test_channel_pipe.py") + call assert_equal("run", job_status(job)) + try + let handle = job_getchannel(job) + call ch_sendraw(handle, "echo something\n", 0) + call assert_equal("something\n", ch_readraw(handle)) + let reply = ch_sendraw(handle, "quit\n") + call assert_equal("Goodbye!\n", reply) + finally + call job_stop(job) + endtry +endfunc diff --git a/src/testdir/test_channel_pipe.py b/src/testdir/test_channel_pipe.py new file mode 100644 index 0000000000..495fa80124 --- /dev/null +++ b/src/testdir/test_channel_pipe.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# +# Server that will communicate over stdin/stderr +# +# This requires Python 2.6 or later. + +from __future__ import print_function +import sys + +if __name__ == "__main__": + + if len(sys.argv) > 1: + print(sys.argv[1]) + + while True: + typed = sys.stdin.readline() + if typed.startswith("quit"): + print("Goodbye!") + sys.stdout.flush() + break + if typed.startswith("echo"): + print(typed[5:-1]) + sys.stdout.flush() + |