Mercurial > vim
annotate src/testdir/test_channel.vim @ 8399:7d1c42e3ce11 v7.4.1491
commit https://github.com/vim/vim/commit/20b4f463f4ab50fa9bcc9838aa94101fa5698125
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 5 17:25:39 2016 +0100
patch 7.4.1491
Problem: Visual-block shift breaks multi-byte characters.
Solution: Compute column differently. (Yasuhiro Matsumoto) Add a test.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 05 Mar 2016 17:30:05 +0100 |
parents | 3b9a306724ec |
children | 8894d595b786 |
rev | line source |
---|---|
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Test for channel functions. |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 scriptencoding utf-8 |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 |
7922
14540239601d
commit https://github.com/vim/vim/commit/e24692573a266f5060c06dd80bde264092c90dd5
Christian Brabandt <cb@256bit.org>
parents:
7918
diff
changeset
|
4 if !has('channel') |
14540239601d
commit https://github.com/vim/vim/commit/e24692573a266f5060c06dd80bde264092c90dd5
Christian Brabandt <cb@256bit.org>
parents:
7918
diff
changeset
|
5 finish |
14540239601d
commit https://github.com/vim/vim/commit/e24692573a266f5060c06dd80bde264092c90dd5
Christian Brabandt <cb@256bit.org>
parents:
7918
diff
changeset
|
6 endif |
14540239601d
commit https://github.com/vim/vim/commit/e24692573a266f5060c06dd80bde264092c90dd5
Christian Brabandt <cb@256bit.org>
parents:
7918
diff
changeset
|
7 |
14540239601d
commit https://github.com/vim/vim/commit/e24692573a266f5060c06dd80bde264092c90dd5
Christian Brabandt <cb@256bit.org>
parents:
7918
diff
changeset
|
8 " This test requires the Python command to run the test server. |
7929
e44240b5a6da
commit https://github.com/vim/vim/commit/a8343c1808f2f268282f3030ce4adaf22e8ade54
Christian Brabandt <cb@256bit.org>
parents:
7925
diff
changeset
|
9 " This most likely only works on Unix and Windows. |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
10 if has('unix') |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
11 " We also need the job feature or the pkill command to make sure the server |
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
12 " can be stopped. |
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
13 if !(executable('python') && (has('job') || executable('pkill'))) |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
14 finish |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
15 endif |
8066
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
16 let s:python = 'python' |
7929
e44240b5a6da
commit https://github.com/vim/vim/commit/a8343c1808f2f268282f3030ce4adaf22e8ade54
Christian Brabandt <cb@256bit.org>
parents:
7925
diff
changeset
|
17 elseif has('win32') |
8066
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
18 " Use Python Launcher for Windows (py.exe) if available. |
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
19 if executable('py.exe') |
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
20 let s:python = 'py.exe' |
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
21 elseif executable('python.exe') |
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
22 let s:python = 'python.exe' |
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
23 else |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
24 finish |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
25 endif |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
26 else |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
27 " Can't run this test. |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 finish |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 endif |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 |
8096
882ba5080c5c
commit https://github.com/vim/vim/commit/e74e8e7d758e9312165a931f176185f07a64231a
Christian Brabandt <cb@256bit.org>
parents:
8094
diff
changeset
|
31 let s:chopt = {} |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
32 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
33 " Run "testfunc" after sarting the server and stop the server afterwards. |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
34 func s:run_server(testfunc, ...) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
35 " The Python program writes the port number in Xportnr. |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
36 call delete("Xportnr") |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
37 |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
38 if a:0 == 1 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
39 let arg = ' ' . a:1 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
40 else |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
41 let arg = '' |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
42 endif |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
43 let cmd = s:python . " test_channel.py" . arg |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
44 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
45 try |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
46 if has('job') |
8170
a0ffb1f3dedc
commit https://github.com/vim/vim/commit/65edff8f51e9e54f85407bdb9156ae8e3e1b76a1
Christian Brabandt <cb@256bit.org>
parents:
8168
diff
changeset
|
47 let s:job = job_start(cmd, {"stoponexit": "hup"}) |
a0ffb1f3dedc
commit https://github.com/vim/vim/commit/65edff8f51e9e54f85407bdb9156ae8e3e1b76a1
Christian Brabandt <cb@256bit.org>
parents:
8168
diff
changeset
|
48 call job_setoptions(s:job, {"stoponexit": "kill"}) |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
49 elseif has('win32') |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
50 exe 'silent !start cmd /c start "test_channel" ' . cmd |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
51 else |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
52 exe 'silent !' . cmd . '&' |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
53 endif |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
55 " Wait for up to 2 seconds for the port number to be there. |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
56 let cnt = 20 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
57 let l = [] |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
58 while cnt > 0 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
59 try |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
60 let l = readfile("Xportnr") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
61 catch |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
62 endtry |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
63 if len(l) >= 1 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
64 break |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
65 endif |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
66 sleep 100m |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
67 let cnt -= 1 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
68 endwhile |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
69 call delete("Xportnr") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
70 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
71 if len(l) == 0 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
72 " Can't make the connection, give up. |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
73 call assert_false(1, "Can't start test_channel.py") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
74 return -1 |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
76 let port = l[0] |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
77 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
78 call call(function(a:testfunc), [port]) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
79 catch |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
80 call assert_false(1, "Caught exception: " . v:exception) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
81 finally |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
82 call s:kill_server() |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
83 endtry |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
84 endfunc |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
85 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
86 func s:kill_server() |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
87 if has('job') |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
88 if exists('s:job') |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
89 call job_stop(s:job) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
90 unlet s:job |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
91 endif |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
92 elseif has('win32') |
8066
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
93 call system('taskkill /IM ' . s:python . ' /T /F /FI "WINDOWTITLE eq test_channel"') |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
94 else |
7914
35973ce58c84
commit https://github.com/vim/vim/commit/608a8919cae982cb38e38725a843df47b234dae6
Christian Brabandt <cb@256bit.org>
parents:
7906
diff
changeset
|
95 call system("pkill -f test_channel.py") |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
96 endif |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
97 endfunc |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
98 |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
99 let s:responseMsg = '' |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
100 func s:RequestHandler(handle, msg) |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
101 let s:responseHandle = a:handle |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
102 let s:responseMsg = a:msg |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
103 endfunc |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
104 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
105 func s:communicate(port) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
106 let handle = ch_open('localhost:' . a:port, s:chopt) |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
107 if ch_status(handle) == "fail" |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
108 call assert_false(1, "Can't open channel") |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
109 return |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
110 endif |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
111 |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
112 " Simple string request and reply. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
113 call assert_equal('got it', ch_evalexpr(handle, 'hello!')) |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
114 |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
115 " Request that triggers sending two ex commands. These will usually be |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
116 " handled before getting the response, but it's not guaranteed, thus wait a |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
117 " tiny bit for the commands to get executed. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
118 call assert_equal('ok', ch_evalexpr(handle, 'make change')) |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
119 sleep 10m |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
120 call assert_equal('added1', getline(line('$') - 1)) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
121 call assert_equal('added2', getline('$')) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
122 |
8380
892d7dcf17ec
commit https://github.com/vim/vim/commit/da94fdf2588b3910d38e477a755748ce2c6d2e66
Christian Brabandt <cb@256bit.org>
parents:
8346
diff
changeset
|
123 call assert_equal('ok', ch_evalexpr(handle, 'do normal', {'timeout': 100})) |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
124 sleep 10m |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
125 call assert_equal('added more', getline('$')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
126 |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
127 " Send a request with a specific handler. |
8094
18a3f0f05244
commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents:
8084
diff
changeset
|
128 call ch_sendexpr(handle, 'hello!', {'callback': 's:RequestHandler'}) |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
129 sleep 10m |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
130 if !exists('s:responseHandle') |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
131 call assert_false(1, 's:responseHandle was not set') |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
132 else |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
133 call assert_equal(handle, s:responseHandle) |
8222
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
134 unlet s:responseHandle |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
135 endif |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
136 call assert_equal('got it', s:responseMsg) |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
137 |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
138 let s:responseMsg = '' |
8094
18a3f0f05244
commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents:
8084
diff
changeset
|
139 call ch_sendexpr(handle, 'hello!', {'callback': function('s:RequestHandler')}) |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
140 sleep 10m |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
141 if !exists('s:responseHandle') |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
142 call assert_false(1, 's:responseHandle was not set') |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
143 else |
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
144 call assert_equal(handle, s:responseHandle) |
8222
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
145 unlet s:responseHandle |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
146 endif |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
147 call assert_equal('got it', s:responseMsg) |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
148 |
8124
310dd635e8c9
commit https://github.com/vim/vim/commit/40ea1da14ba196a23309789852e1b663fd92e3a8
Christian Brabandt <cb@256bit.org>
parents:
8118
diff
changeset
|
149 " check setting options (without testing the effect) |
310dd635e8c9
commit https://github.com/vim/vim/commit/40ea1da14ba196a23309789852e1b663fd92e3a8
Christian Brabandt <cb@256bit.org>
parents:
8118
diff
changeset
|
150 call ch_setoptions(handle, {'callback': 's:NotUsed'}) |
8130
3462f9cfedf8
commit https://github.com/vim/vim/commit/1f6ef66254c1e25ef1c7972aa9a0ba119ebc17e4
Christian Brabandt <cb@256bit.org>
parents:
8124
diff
changeset
|
151 call ch_setoptions(handle, {'timeout': 1111}) |
8165
973686665238
commit https://github.com/vim/vim/commit/b6b5252bcde68b296858bc090cb424493635dfec
Christian Brabandt <cb@256bit.org>
parents:
8161
diff
changeset
|
152 call ch_setoptions(handle, {'mode': 'json'}) |
8124
310dd635e8c9
commit https://github.com/vim/vim/commit/40ea1da14ba196a23309789852e1b663fd92e3a8
Christian Brabandt <cb@256bit.org>
parents:
8118
diff
changeset
|
153 call assert_fails("call ch_setoptions(handle, {'waittime': 111})", "E475") |
8132
f96536c291d8
commit https://github.com/vim/vim/commit/0ba75a9714884895b2ac09733158c47544a8dfb9
Christian Brabandt <cb@256bit.org>
parents:
8130
diff
changeset
|
154 call ch_setoptions(handle, {'callback': ''}) |
8124
310dd635e8c9
commit https://github.com/vim/vim/commit/40ea1da14ba196a23309789852e1b663fd92e3a8
Christian Brabandt <cb@256bit.org>
parents:
8118
diff
changeset
|
155 |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
156 " Send an eval request that works. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
157 call assert_equal('ok', ch_evalexpr(handle, 'eval-works')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
158 sleep 10m |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
159 call assert_equal([-1, 'foo123'], ch_evalexpr(handle, 'eval-result')) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
160 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
161 " Send an eval request that fails. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
162 call assert_equal('ok', ch_evalexpr(handle, 'eval-fails')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
163 sleep 10m |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
164 call assert_equal([-2, 'ERROR'], ch_evalexpr(handle, 'eval-result')) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
165 |
7965
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
166 " Send an eval request that works but can't be encoded. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
167 call assert_equal('ok', ch_evalexpr(handle, 'eval-error')) |
7965
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
168 sleep 10m |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
169 call assert_equal([-3, 'ERROR'], ch_evalexpr(handle, 'eval-result')) |
7965
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
170 |
7918
ce5a7a613867
commit https://github.com/vim/vim/commit/66624ff0d9e1de2fc5eb4f95f3a3a2ed70b10138
Christian Brabandt <cb@256bit.org>
parents:
7916
diff
changeset
|
171 " Send a bad eval request. There will be no response. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
172 call assert_equal('ok', ch_evalexpr(handle, 'eval-bad')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
173 sleep 10m |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
174 call assert_equal([-3, 'ERROR'], ch_evalexpr(handle, 'eval-result')) |
7918
ce5a7a613867
commit https://github.com/vim/vim/commit/66624ff0d9e1de2fc5eb4f95f3a3a2ed70b10138
Christian Brabandt <cb@256bit.org>
parents:
7916
diff
changeset
|
175 |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
176 " Send an expr request |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
177 call assert_equal('ok', ch_evalexpr(handle, 'an expr')) |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
178 sleep 10m |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
179 call assert_equal('one', getline(line('$') - 2)) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
180 call assert_equal('two', getline(line('$') - 1)) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
181 call assert_equal('three', getline('$')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
182 |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
183 " Request a redraw, we don't check for the effect. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
184 call assert_equal('ok', ch_evalexpr(handle, 'redraw')) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
185 call assert_equal('ok', ch_evalexpr(handle, 'redraw!')) |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
186 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
187 call assert_equal('ok', ch_evalexpr(handle, 'empty-request')) |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
188 |
8157
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
189 " Reading while there is nothing available. |
8222
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
190 call assert_equal(v:none, ch_read(handle, {'timeout': 0})) |
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
191 let start = reltime() |
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
192 call assert_equal(v:none, ch_read(handle, {'timeout': 333})) |
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
193 let elapsed = reltime(start) |
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
194 call assert_true(reltimefloat(elapsed) > 0.3) |
4f0677020a43
commit https://github.com/vim/vim/commit/9186a276222ea8a7c88f4092ac5b4201381f4e20
Christian Brabandt <cb@256bit.org>
parents:
8210
diff
changeset
|
195 call assert_true(reltimefloat(elapsed) < 0.6) |
8157
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
196 |
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
197 " Send without waiting for a response, then wait for a response. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
198 call ch_sendexpr(handle, 'wait a bit') |
8157
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
199 let resp = ch_read(handle) |
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
200 call assert_equal(type([]), type(resp)) |
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
201 call assert_equal(type(11), type(resp[0])) |
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
202 call assert_equal('waited', resp[1]) |
74b44d06d3c7
commit https://github.com/vim/vim/commit/6f3a544228c1faf92211cbaf8bbedb1dff883f90
Christian Brabandt <cb@256bit.org>
parents:
8132
diff
changeset
|
203 |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
204 " make the server quit, can't check if this works, should not hang. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
205 call ch_sendexpr(handle, '!quit!') |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
206 endfunc |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
207 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
208 func Test_communicate() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
209 call ch_log('Test_communicate()') |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
210 call s:run_server('s:communicate') |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
211 endfunc |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
212 |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
213 " Test that we can open two channels. |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
214 func s:two_channels(port) |
8013
dfae8bce5920
commit https://github.com/vim/vim/commit/39b21272d521512b6ecac6cc0f310944f21b7443
Christian Brabandt <cb@256bit.org>
parents:
8009
diff
changeset
|
215 let handle = ch_open('localhost:' . a:port, s:chopt) |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
216 if ch_status(handle) == "fail" |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
217 call assert_false(1, "Can't open channel") |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
218 return |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
219 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
220 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
221 call assert_equal('got it', ch_evalexpr(handle, 'hello!')) |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
222 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
223 let newhandle = ch_open('localhost:' . a:port, s:chopt) |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
224 if ch_status(newhandle) == "fail" |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
225 call assert_false(1, "Can't open second channel") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
226 return |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
227 endif |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
228 call assert_equal('got it', ch_evalexpr(newhandle, 'hello!')) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
229 call assert_equal('got it', ch_evalexpr(handle, 'hello!')) |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
230 |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
231 call ch_close(handle) |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
232 call assert_equal('got it', ch_evalexpr(newhandle, 'hello!')) |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
233 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
234 call ch_close(newhandle) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
235 endfunc |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
236 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
237 func Test_two_channels() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
238 call ch_log('Test_two_channels()') |
8037
9dea1571b352
commit https://github.com/vim/vim/commit/bfa1ffca8bcce92c030d8366036a316954f1ee69
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
239 call s:run_server('s:two_channels') |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
240 endfunc |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
241 |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
242 " Test that a server crash is handled gracefully. |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
243 func s:server_crash(port) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
244 let handle = ch_open('localhost:' . a:port, s:chopt) |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
245 if ch_status(handle) == "fail" |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
246 call assert_false(1, "Can't open channel") |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
247 return |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
248 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
249 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
250 call ch_evalexpr(handle, '!crash!') |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
251 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
252 sleep 10m |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
253 endfunc |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
254 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
255 func Test_server_crash() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
256 call ch_log('Test_server_crash()') |
8037
9dea1571b352
commit https://github.com/vim/vim/commit/bfa1ffca8bcce92c030d8366036a316954f1ee69
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
257 call s:run_server('s:server_crash') |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
258 endfunc |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
259 |
8382
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
260 """"""""" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
261 |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
262 let s:reply = "" |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
263 func s:Handler(chan, msg) |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
264 unlet s:reply |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
265 let s:reply = a:msg |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
266 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
267 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
268 func s:channel_handler(port) |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
269 let handle = ch_open('localhost:' . a:port, s:chopt) |
8041
c6443e78cf2d
commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents:
8037
diff
changeset
|
270 if ch_status(handle) == "fail" |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
271 call assert_false(1, "Can't open channel") |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
272 return |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
273 endif |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
274 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
275 " Test that it works while waiting on a numbered message. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
276 call assert_equal('ok', ch_evalexpr(handle, 'call me')) |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
277 sleep 10m |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
278 call assert_equal('we called you', s:reply) |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
279 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
280 " Test that it works while not waiting on a numbered message. |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
281 call ch_sendexpr(handle, 'call me again') |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
282 sleep 10m |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
283 call assert_equal('we did call you', s:reply) |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
284 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
285 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
286 func Test_channel_handler() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
287 call ch_log('Test_channel_handler()') |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
288 let s:chopt.callback = 's:Handler' |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
289 call s:run_server('s:channel_handler') |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
290 let s:chopt.callback = function('s:Handler') |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
291 call s:run_server('s:channel_handler') |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
292 unlet s:chopt.callback |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
293 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
294 |
8382
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
295 """"""""" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
296 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
297 let s:reply1 = "" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
298 func s:HandleRaw1(chan, msg) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
299 unlet s:reply1 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
300 let s:reply1 = a:msg |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
301 endfunc |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
302 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
303 let s:reply2 = "" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
304 func s:HandleRaw2(chan, msg) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
305 unlet s:reply2 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
306 let s:reply2 = a:msg |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
307 endfunc |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
308 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
309 let s:reply3 = "" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
310 func s:HandleRaw3(chan, msg) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
311 unlet s:reply3 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
312 let s:reply3 = a:msg |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
313 endfunc |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
314 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
315 func s:raw_one_time_callback(port) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
316 let handle = ch_open('localhost:' . a:port, s:chopt) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
317 if ch_status(handle) == "fail" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
318 call assert_false(1, "Can't open channel") |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
319 return |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
320 endif |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
321 call ch_setoptions(handle, {'mode': 'raw'}) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
322 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
323 " The message are sent raw, we do our own JSON strings here. |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
324 call ch_sendraw(handle, "[1, \"hello!\"]", {'callback': 's:HandleRaw1'}) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
325 sleep 10m |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
326 call assert_equal("[1, \"got it\"]", s:reply1) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
327 call ch_sendraw(handle, "[2, \"echo something\"]", {'callback': 's:HandleRaw2'}) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
328 call ch_sendraw(handle, "[3, \"wait a bit\"]", {'callback': 's:HandleRaw3'}) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
329 sleep 10m |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
330 call assert_equal("[2, \"something\"]", s:reply2) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
331 " wait for up to 500 msec for the 200 msec delayed reply |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
332 for i in range(50) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
333 sleep 10m |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
334 if s:reply3 != '' |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
335 break |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
336 endif |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
337 endfor |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
338 call assert_equal("[3, \"waited\"]", s:reply3) |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
339 endfunc |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
340 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
341 func Test_raw_one_time_callback() |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
342 call ch_log('Test_raw_one_time_callback()') |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
343 call s:run_server('s:raw_one_time_callback') |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
344 endfunc |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
345 |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
346 """"""""" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
347 |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
348 " Test that trying to connect to a non-existing port fails quickly. |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
349 func Test_connect_waittime() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
350 call ch_log('Test_connect_waittime()') |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
351 let start = reltime() |
8005
d65aa95725d3
commit https://github.com/vim/vim/commit/a483326e3b04215b86fe9c582ac96bb9679f0812
Christian Brabandt <cb@256bit.org>
parents:
7988
diff
changeset
|
352 let handle = ch_open('localhost:9876', s:chopt) |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
353 if ch_status(handle) != "fail" |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
354 " Oops, port does exists. |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
355 call ch_close(handle) |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
356 else |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
357 let elapsed = reltime(start) |
7984
c166ff6797cb
commit https://github.com/vim/vim/commit/74f5e65bcc3d77ab879f56eb977f5038edccbcf8
Christian Brabandt <cb@256bit.org>
parents:
7982
diff
changeset
|
358 call assert_true(reltimefloat(elapsed) < 1.0) |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
359 endif |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
360 |
8168
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
361 " We intend to use a socket that doesn't exist and wait for half a second |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
362 " before giving up. If the socket does exist it can fail in various ways. |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
363 " Check for "Connection reset by peer" to avoid flakyness. |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
364 let start = reltime() |
8168
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
365 try |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
366 let handle = ch_open('localhost:9867', {'waittime': 500}) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
367 if ch_status(handle) != "fail" |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
368 " Oops, port does exists. |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
369 call ch_close(handle) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
370 else |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
371 " Failed connection should wait about 500 msec. |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
372 let elapsed = reltime(start) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
373 call assert_true(reltimefloat(elapsed) > 0.3) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
374 call assert_true(reltimefloat(elapsed) < 1.0) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
375 endif |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
376 catch |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
377 if v:exception !~ 'Connection reset by peer' |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
378 call assert_false(1, "Caught exception: " . v:exception) |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
379 endif |
454a30a7590e
commit https://github.com/vim/vim/commit/08298fa1d3e32c2af476582792fc4f70cd57a59a
Christian Brabandt <cb@256bit.org>
parents:
8165
diff
changeset
|
380 endtry |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
381 endfunc |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
382 |
8382
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
383 """"""""" |
3dbe93a240d8
commit https://github.com/vim/vim/commit/d6547fc6471d9084f942bdc4ae3aedb39361751d
Christian Brabandt <cb@256bit.org>
parents:
8380
diff
changeset
|
384 |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
385 func Test_raw_pipe() |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
386 if !has('job') |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
387 return |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
388 endif |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
389 call ch_log('Test_raw_pipe()') |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
390 let job = job_start(s:python . " test_channel_pipe.py", {'mode': 'raw'}) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
391 call assert_equal("run", job_status(job)) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
392 try |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
393 let handle = job_getchannel(job) |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
394 call ch_sendraw(handle, "echo something\n") |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
395 let msg = ch_readraw(handle) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
396 call assert_equal("something\n", substitute(msg, "\r", "", 'g')) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
397 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
398 call ch_sendraw(handle, "double this\n") |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
399 let msg = ch_readraw(handle) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
400 call assert_equal("this\nAND this\n", substitute(msg, "\r", "", 'g')) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
401 |
8380
892d7dcf17ec
commit https://github.com/vim/vim/commit/da94fdf2588b3910d38e477a755748ce2c6d2e66
Christian Brabandt <cb@256bit.org>
parents:
8346
diff
changeset
|
402 let reply = ch_evalraw(handle, "quit\n", {'timeout': 100}) |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
403 call assert_equal("Goodbye!\n", substitute(reply, "\r", "", 'g')) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
404 finally |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
405 call job_stop(job) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
406 endtry |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
407 endfunc |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
408 |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
409 func Test_nl_pipe() |
8059
19304db153bc
commit https://github.com/vim/vim/commit/d807036d10615b960c814ef3890ecad335b57f56
Christian Brabandt <cb@256bit.org>
parents:
8055
diff
changeset
|
410 if !has('job') |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
411 return |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
412 endif |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
413 call ch_log('Test_nl_pipe()') |
8066
1aa8ed4ee48b
commit https://github.com/vim/vim/commit/b6a7737938e7e7b34f862f58aa5498e6f652e33d
Christian Brabandt <cb@256bit.org>
parents:
8059
diff
changeset
|
414 let job = job_start(s:python . " test_channel_pipe.py") |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
415 call assert_equal("run", job_status(job)) |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
416 try |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
417 let handle = job_getchannel(job) |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
418 call ch_sendraw(handle, "echo something\n") |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
419 call assert_equal("something", ch_readraw(handle)) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
420 |
8384
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
421 call ch_sendraw(handle, "echoerr wrong\n") |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
422 call assert_equal("wrong", ch_readraw(handle, {'part': 'err'})) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
423 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
424 call ch_sendraw(handle, "double this\n") |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
425 call assert_equal("this", ch_readraw(handle)) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
426 call assert_equal("AND this", ch_readraw(handle)) |
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
427 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
428 let reply = ch_evalraw(handle, "quit\n") |
8084
3ea56a74077f
commit https://github.com/vim/vim/commit/9a6e33a19b18f20c25b73392cd2faa3ec4890c8c
Christian Brabandt <cb@256bit.org>
parents:
8078
diff
changeset
|
429 call assert_equal("Goodbye!", reply) |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
430 finally |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
431 call job_stop(job) |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
432 endtry |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8027
diff
changeset
|
433 endfunc |
8055
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
434 |
8384
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
435 func Test_nl_err_to_out_pipe() |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
436 if !has('job') |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
437 return |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
438 endif |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
439 call ch_log('Test_nl_err_to_out_pipe()') |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
440 let job = job_start(s:python . " test_channel_pipe.py", {'err-io': 'out'}) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
441 call assert_equal("run", job_status(job)) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
442 try |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
443 let handle = job_getchannel(job) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
444 call ch_sendraw(handle, "echo something\n") |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
445 call assert_equal("something", ch_readraw(handle)) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
446 |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
447 call ch_sendraw(handle, "echoerr wrong\n") |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
448 call assert_equal("wrong", ch_readraw(handle)) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
449 finally |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
450 call job_stop(job) |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
451 endtry |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
452 endfunc |
764dba33605c
commit https://github.com/vim/vim/commit/c25558bff4ed10d2642e6f5c016701641c494916
Christian Brabandt <cb@256bit.org>
parents:
8382
diff
changeset
|
453 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
454 func Test_pipe_to_buffer() |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
455 if !has('job') |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
456 return |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
457 endif |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
458 call ch_log('Test_pipe_to_buffer()') |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
459 let job = job_start(s:python . " test_channel_pipe.py", |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
460 \ {'out-io': 'buffer', 'out-name': 'pipe-output'}) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
461 call assert_equal("run", job_status(job)) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
462 try |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
463 let handle = job_getchannel(job) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
464 call ch_sendraw(handle, "echo line one\n") |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
465 call ch_sendraw(handle, "echo line two\n") |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
466 call ch_sendraw(handle, "double this\n") |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
467 call ch_sendraw(handle, "quit\n") |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
468 sp pipe-output |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
469 for i in range(100) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
470 sleep 10m |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
471 if line('$') >= 6 |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
472 break |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
473 endif |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
474 endfor |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
475 call assert_equal(['Reading from channel output...', 'line one', 'line two', 'this', 'AND this', 'Goodbye!'], getline(1, '$')) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
476 bwipe! |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
477 finally |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
478 call job_stop(job) |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
479 endtry |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
480 endfunc |
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
481 |
8386
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
482 func Test_pipe_from_buffer() |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
483 if !has('job') |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
484 return |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
485 endif |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
486 call ch_logfile('channellog', 'w') |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
487 call ch_log('Test_pipe_from_buffer()') |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
488 |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
489 sp pipe-input |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
490 call setline(1, ['echo one', 'echo two', 'echo three']) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
491 |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
492 let job = job_start(s:python . " test_channel_pipe.py", |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
493 \ {'in-io': 'buffer', 'in-name': 'pipe-input'}) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
494 call assert_equal("run", job_status(job)) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
495 try |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
496 let handle = job_getchannel(job) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
497 call assert_equal('one', ch_read(handle)) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
498 call assert_equal('two', ch_read(handle)) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
499 call assert_equal('three', ch_read(handle)) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
500 bwipe! |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
501 finally |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
502 call job_stop(job) |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
503 endtry |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
504 call ch_logfile('') |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
505 endfunc |
3b9a306724ec
commit https://github.com/vim/vim/commit/014069a7ac51557e531eb3c8b94e36f2193f6c21
Christian Brabandt <cb@256bit.org>
parents:
8384
diff
changeset
|
506 |
8291
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
507 func Test_pipe_to_nameless_buffer() |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
508 if !has('job') |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
509 return |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
510 endif |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
511 call ch_log('Test_pipe_to_nameless_buffer()') |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
512 let job = job_start(s:python . " test_channel_pipe.py", |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
513 \ {'out-io': 'buffer'}) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
514 call assert_equal("run", job_status(job)) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
515 try |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
516 let handle = job_getchannel(job) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
517 call ch_sendraw(handle, "echo line one\n") |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
518 call ch_sendraw(handle, "echo line two\n") |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
519 exe ch_getbufnr(handle, "out") . 'sbuf' |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
520 for i in range(100) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
521 sleep 10m |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
522 if line('$') >= 3 |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
523 break |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
524 endif |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
525 endfor |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
526 call assert_equal(['Reading from channel output...', 'line one', 'line two'], getline(1, '$')) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
527 bwipe! |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
528 finally |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
529 call job_stop(job) |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
530 endtry |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
531 endfunc |
ac0c43e7af20
commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents:
8285
diff
changeset
|
532 |
8346
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
533 func Test_pipe_to_buffer_json() |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
534 if !has('job') |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
535 return |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
536 endif |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
537 call ch_log('Test_pipe_to_buffer_json()') |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
538 let job = job_start(s:python . " test_channel_pipe.py", |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
539 \ {'out-io': 'buffer', 'out-mode': 'json'}) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
540 call assert_equal("run", job_status(job)) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
541 try |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
542 let handle = job_getchannel(job) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
543 call ch_sendraw(handle, "echo [0, \"hello\"]\n") |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
544 call ch_sendraw(handle, "echo [-2, 12.34]\n") |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
545 exe ch_getbufnr(handle, "out") . 'sbuf' |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
546 for i in range(100) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
547 sleep 10m |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
548 if line('$') >= 3 |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
549 break |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
550 endif |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
551 endfor |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
552 call assert_equal(['Reading from channel output...', '[0,"hello"]', '[-2,12.34]'], getline(1, '$')) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
553 bwipe! |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
554 finally |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
555 call job_stop(job) |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
556 endtry |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
557 endfunc |
8fa75a4c39bd
commit https://github.com/vim/vim/commit/cc7f8be3e0e6c4d902b02052a862e21c3a3fbe22
Christian Brabandt <cb@256bit.org>
parents:
8324
diff
changeset
|
558 |
8074
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
559 """""""""" |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
560 |
8055
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
561 let s:unletResponse = '' |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
562 func s:UnletHandler(handle, msg) |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
563 let s:unletResponse = a:msg |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
564 unlet s:channelfd |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
565 endfunc |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
566 |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
567 " Test that "unlet handle" in a handler doesn't crash Vim. |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
568 func s:unlet_handle(port) |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
569 let s:channelfd = ch_open('localhost:' . a:port, s:chopt) |
8094
18a3f0f05244
commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents:
8084
diff
changeset
|
570 call ch_sendexpr(s:channelfd, "test", {'callback': function('s:UnletHandler')}) |
8055
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
571 sleep 10m |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
572 call assert_equal('what?', s:unletResponse) |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
573 endfunc |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
574 |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
575 func Test_unlet_handle() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
576 call ch_log('Test_unlet_handle()') |
8055
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
577 call s:run_server('s:unlet_handle') |
6db4b1c863ec
commit https://github.com/vim/vim/commit/3bece9fee9c02934d3e295b29d253e13d4ef26a7
Christian Brabandt <cb@256bit.org>
parents:
8045
diff
changeset
|
578 endfunc |
8070
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
579 |
8074
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
580 """""""""" |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
581 |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
582 let s:unletResponse = '' |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
583 func s:CloseHandler(handle, msg) |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
584 let s:unletResponse = a:msg |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
585 call ch_close(s:channelfd) |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
586 endfunc |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
587 |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
588 " Test that "unlet handle" in a handler doesn't crash Vim. |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
589 func s:close_handle(port) |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
590 let s:channelfd = ch_open('localhost:' . a:port, s:chopt) |
8094
18a3f0f05244
commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents:
8084
diff
changeset
|
591 call ch_sendexpr(s:channelfd, "test", {'callback': function('s:CloseHandler')}) |
8074
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
592 sleep 10m |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
593 call assert_equal('what?', s:unletResponse) |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
594 endfunc |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
595 |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
596 func Test_close_handle() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
597 call ch_log('Test_close_handle()') |
8074
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
598 call s:run_server('s:close_handle') |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
599 endfunc |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
600 |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
601 """""""""" |
dc32c8026899
commit https://github.com/vim/vim/commit/d46ae142aa9452e99576b5e923de974704e3c896
Christian Brabandt <cb@256bit.org>
parents:
8070
diff
changeset
|
602 |
8070
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
603 func Test_open_fail() |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
604 call ch_log('Test_open_fail()') |
8070
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
605 silent! let ch = ch_open("noserver") |
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
606 echo ch |
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
607 let d = ch |
e4c3f6720b03
commit https://github.com/vim/vim/commit/5cefd4098204b4677387511b586673649f2fab48
Christian Brabandt <cb@256bit.org>
parents:
8066
diff
changeset
|
608 endfunc |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
609 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
610 """""""""" |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
611 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
612 func s:open_delay(port) |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
613 " Wait up to a second for the port to open. |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
614 let s:chopt.waittime = 1000 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
615 let channel = ch_open('localhost:' . a:port, s:chopt) |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
616 unlet s:chopt.waittime |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
617 if ch_status(channel) == "fail" |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
618 call assert_false(1, "Can't open channel") |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
619 return |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
620 endif |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
621 call assert_equal('got it', ch_evalexpr(channel, 'hello!')) |
8114
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
622 call ch_close(channel) |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
623 endfunc |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
624 |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
625 func Test_open_delay() |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
626 call ch_log('Test_open_delay()') |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
627 " The server will wait half a second before creating the port. |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
628 call s:run_server('s:open_delay', 'delay') |
4aea0b0aa714
commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents:
8096
diff
changeset
|
629 endfunc |
8159
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
630 |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
631 """"""""" |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
632 |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
633 function MyFunction(a,b,c) |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
634 let s:call_ret = [a:a, a:b, a:c] |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
635 endfunc |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
636 |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
637 function s:test_call(port) |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
638 let handle = ch_open('localhost:' . a:port, s:chopt) |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
639 if ch_status(handle) == "fail" |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
640 call assert_false(1, "Can't open channel") |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
641 return |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
642 endif |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
643 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
644 call assert_equal('ok', ch_evalexpr(handle, 'call-func')) |
8159
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
645 sleep 20m |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
646 call assert_equal([1, 2, 3], s:call_ret) |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
647 endfunc |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
648 |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
649 func Test_call() |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
650 call ch_log('Test_call()') |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
651 call s:run_server('s:test_call') |
d0958e22d9ff
commit https://github.com/vim/vim/commit/ece61b06ef4726515177c9b293e1c20d2122a73f
Christian Brabandt <cb@256bit.org>
parents:
8157
diff
changeset
|
652 endfunc |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
653 |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
654 """"""""" |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
655 |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
656 let s:job_exit_ret = 'not yet' |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
657 function MyExitCb(job, status) |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
658 let s:job_exit_ret = 'done' |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
659 endfunc |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
660 |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
661 function s:test_exit_callback(port) |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
662 call job_setoptions(s:job, {'exit-cb': 'MyExitCb'}) |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
663 let s:exit_job = s:job |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
664 endfunc |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
665 |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
666 func Test_exit_callback() |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
667 if has('job') |
8324
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
668 call ch_log('Test_exit_callback()') |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
669 call s:run_server('s:test_exit_callback') |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
670 |
8324
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
671 " wait up to a second for the job to exit |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
672 for i in range(100) |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
673 if s:job_exit_ret == 'done' |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
674 break |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
675 endif |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
676 sleep 10m |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
677 " calling job_status() triggers the callback |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
678 call job_status(s:exit_job) |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
679 endfor |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
680 |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
681 call assert_equal('done', s:job_exit_ret) |
8324
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
682 unlet s:exit_job |
8174
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
683 endif |
f2286ff0c102
commit https://github.com/vim/vim/commit/ee1cffc07a42441924c5353af7fd7ab6e97e5aae
Christian Brabandt <cb@256bit.org>
parents:
8170
diff
changeset
|
684 endfunc |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
685 |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
686 """"""""" |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
687 |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
688 let s:ch_close_ret = 'alive' |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
689 function MyCloseCb(ch) |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
690 let s:ch_close_ret = 'closed' |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
691 endfunc |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
692 |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
693 function s:test_close_callback(port) |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
694 let handle = ch_open('localhost:' . a:port, s:chopt) |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
695 if ch_status(handle) == "fail" |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
696 call assert_false(1, "Can't open channel") |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
697 return |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
698 endif |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
699 call ch_setoptions(handle, {'close-cb': 'MyCloseCb'}) |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
700 |
8285
e05e28dcb590
commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents:
8222
diff
changeset
|
701 call assert_equal('', ch_evalexpr(handle, 'close me')) |
8210
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
702 sleep 20m |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
703 call assert_equal('closed', s:ch_close_ret) |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
704 endfunc |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
705 |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
706 func Test_close_callback() |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
707 call ch_log('Test_close_callback()') |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
708 call s:run_server('s:test_close_callback') |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
709 endfunc |
b717dae2f26d
commit https://github.com/vim/vim/commit/4e221c99e85ed40c98892068a01270b9e7492d98
Christian Brabandt <cb@256bit.org>
parents:
8174
diff
changeset
|
710 |
8324
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
711 " Uncomment this to see what happens, output is in src/testdir/channellog. |
5e88bd55b789
commit https://github.com/vim/vim/commit/9730f74a0b2acb490943393a203a24ab8fab923a
Christian Brabandt <cb@256bit.org>
parents:
8291
diff
changeset
|
712 " call ch_logfile('channellog', 'w') |