Mercurial > vim
annotate src/testdir/test_channel.vim @ 8017:c59a65524084 v7.4.1303
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 11 20:48:34 2016 +0100
patch 7.4.1303
Problem: A Funcref is not accepted as a callback.
Solution: Make a Funcref work. (Damien)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 11 Feb 2016 21:00:09 +0100 |
parents | dfae8bce5920 |
children | 1f0f08c601b7 |
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 |
7929
e44240b5a6da
commit https://github.com/vim/vim/commit/a8343c1808f2f268282f3030ce4adaf22e8ade54
Christian Brabandt <cb@256bit.org>
parents:
7925
diff
changeset
|
16 elseif has('win32') |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
17 " Use Python Launcher for Windows (py.exe). |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
18 if !executable('py') |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
19 finish |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
20 endif |
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
21 else |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
22 " Can't run this test. |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 finish |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 endif |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 |
8005
d65aa95725d3
commit https://github.com/vim/vim/commit/a483326e3b04215b86fe9c582ac96bb9679f0812
Christian Brabandt <cb@256bit.org>
parents:
7988
diff
changeset
|
26 let s:chopt = has('macunix') ? {'waittime' : 1} : {} |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
27 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
28 " Run "testfunc" after sarting the server and stop the server afterwards. |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
29 func s:run_server(testfunc) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
30 " 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
|
31 call delete("Xportnr") |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
32 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
33 try |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
34 if has('job') |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
35 let s:job = job_start("python test_channel.py") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
36 elseif has('win32') |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
37 silent !start cmd /c start "test_channel" py test_channel.py |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
38 else |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
39 silent !python test_channel.py& |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
40 endif |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
42 " 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
|
43 let cnt = 20 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
44 let l = [] |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
45 while cnt > 0 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
46 try |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
47 let l = readfile("Xportnr") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
48 catch |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
49 endtry |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
50 if len(l) >= 1 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
51 break |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
52 endif |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
53 sleep 100m |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
54 let cnt -= 1 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
55 endwhile |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
56 call delete("Xportnr") |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
57 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
58 if len(l) == 0 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
59 " 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
|
60 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
|
61 return -1 |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
63 let port = l[0] |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
65 call call(function(a:testfunc), [port]) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
66 catch |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
67 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
|
68 finally |
7902
f12d6235a753
commit https://github.com/vim/vim/commit/a0f9cd148eaab23b2037d2f543f3b8f5a3a7ad3c
Christian Brabandt <cb@256bit.org>
parents:
7899
diff
changeset
|
69 call s:kill_server() |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
70 endtry |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
71 endfunc |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
72 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
73 func s:kill_server() |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
74 if has('job') |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
75 if exists('s:job') |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
76 call job_stop(s:job) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
77 unlet s:job |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
78 endif |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7939
diff
changeset
|
79 elseif has('win32') |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
80 call system('taskkill /IM py.exe /T /F /FI "WINDOWTITLE eq test_channel"') |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
81 else |
7914
35973ce58c84
commit https://github.com/vim/vim/commit/608a8919cae982cb38e38725a843df47b234dae6
Christian Brabandt <cb@256bit.org>
parents:
7906
diff
changeset
|
82 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
|
83 endif |
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 |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
86 let s:responseHandle = -1 |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
87 let s:responseMsg = '' |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
88 func s:RequestHandler(handle, msg) |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
89 let s:responseHandle = a:handle |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
90 let s:responseMsg = a:msg |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
91 endfunc |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
92 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
93 func s:communicate(port) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
94 let handle = ch_open('localhost:' . a:port, s:chopt) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
95 if handle < 0 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
96 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
|
97 return |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
98 endif |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
99 |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
100 " Simple string request and reply. |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
101 call assert_equal('got it', ch_sendexpr(handle, 'hello!')) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
102 |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
103 " 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
|
104 " 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
|
105 " tiny bit for the commands to get executed. |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
106 call assert_equal('ok', ch_sendexpr(handle, 'make change')) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
107 sleep 10m |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
108 call assert_equal('added1', getline(line('$') - 1)) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
109 call assert_equal('added2', getline('$')) |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
110 |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
111 call assert_equal('ok', ch_sendexpr(handle, 'do normal')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
112 sleep 10m |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
113 call assert_equal('added more', getline('$')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
114 |
7933
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
115 " Send a request with a specific handler. |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
116 call ch_sendexpr(handle, 'hello!', 's:RequestHandler') |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
117 sleep 10m |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
118 call assert_equal(handle, s:responseHandle) |
1f0743f4f88f
commit https://github.com/vim/vim/commit/a07fec9c85d062acd9dd433a2e681770f459ba47
Christian Brabandt <cb@256bit.org>
parents:
7929
diff
changeset
|
119 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
|
120 |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
121 let s:responseHandle = -1 |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
122 let s:responseMsg = '' |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
123 call ch_sendexpr(handle, 'hello!', function('s:RequestHandler')) |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
124 sleep 10m |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
125 call assert_equal(handle, s:responseHandle) |
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
126 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
|
127 |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
128 " Send an eval request that works. |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
129 call assert_equal('ok', ch_sendexpr(handle, 'eval-works')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
130 sleep 10m |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
131 call assert_equal([-1, 'foo123'], ch_sendexpr(handle, 'eval-result')) |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
132 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
133 " Send an eval request that fails. |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
134 call assert_equal('ok', ch_sendexpr(handle, 'eval-fails')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
135 sleep 10m |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
136 call assert_equal([-2, 'ERROR'], ch_sendexpr(handle, 'eval-result')) |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
137 |
7965
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
138 " Send an eval request that works but can't be encoded. |
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
139 call assert_equal('ok', ch_sendexpr(handle, 'eval-error')) |
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
140 sleep 10m |
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
141 call assert_equal([-3, 'ERROR'], ch_sendexpr(handle, 'eval-result')) |
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
142 |
7918
ce5a7a613867
commit https://github.com/vim/vim/commit/66624ff0d9e1de2fc5eb4f95f3a3a2ed70b10138
Christian Brabandt <cb@256bit.org>
parents:
7916
diff
changeset
|
143 " Send a bad eval request. There will be no response. |
ce5a7a613867
commit https://github.com/vim/vim/commit/66624ff0d9e1de2fc5eb4f95f3a3a2ed70b10138
Christian Brabandt <cb@256bit.org>
parents:
7916
diff
changeset
|
144 call assert_equal('ok', ch_sendexpr(handle, 'eval-bad')) |
7925
b724dbb299d5
commit https://github.com/vim/vim/commit/a02b321686d9827ac806353ea8af780676da340d
Christian Brabandt <cb@256bit.org>
parents:
7922
diff
changeset
|
145 sleep 10m |
7965
646d5148fee2
commit https://github.com/vim/vim/commit/55fab439a6f3bba6dbe780ac034b84d5822a1a96
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
146 call assert_equal([-3, 'ERROR'], ch_sendexpr(handle, 'eval-result')) |
7918
ce5a7a613867
commit https://github.com/vim/vim/commit/66624ff0d9e1de2fc5eb4f95f3a3a2ed70b10138
Christian Brabandt <cb@256bit.org>
parents:
7916
diff
changeset
|
147 |
7939
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
148 " Send an expr request |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
149 call assert_equal('ok', ch_sendexpr(handle, 'an expr')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
150 sleep 10m |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
151 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
|
152 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
|
153 call assert_equal('three', getline('$')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
154 |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
155 " Request a redraw, we don't check for the effect. |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
156 call assert_equal('ok', ch_sendexpr(handle, 'redraw')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
157 call assert_equal('ok', ch_sendexpr(handle, 'redraw!')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
158 |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
159 call assert_equal('ok', ch_sendexpr(handle, 'empty-request')) |
dcc0bd6b1574
commit https://github.com/vim/vim/commit/f416086f264c1d998863b2e600f4c14f799d0d99
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
160 |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
161 " make the server quit, can't check if this works, should not hang. |
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
162 call ch_sendexpr(handle, '!quit!', 0) |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
163 endfunc |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
164 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
165 func Test_communicate() |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
166 call s:run_server('s:communicate') |
7899
93c61501c2cf
commit https://github.com/vim/vim/commit/d7ece1008ee6173afda6d173bed486ae79c1c38a
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
167 endfunc |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
168 |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
169 " 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
|
170 func s:two_channels(port) |
8013
dfae8bce5920
commit https://github.com/vim/vim/commit/39b21272d521512b6ecac6cc0f310944f21b7443
Christian Brabandt <cb@256bit.org>
parents:
8009
diff
changeset
|
171 let handle = ch_open('localhost:' . a:port, s:chopt) |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
172 if handle < 0 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
173 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
|
174 return |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
175 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
176 |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
177 call assert_equal('got it', ch_sendexpr(handle, 'hello!')) |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
178 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
179 let newhandle = ch_open('localhost:' . a:port, s:chopt) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
180 if newhandle < 0 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
181 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
|
182 return |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
183 endif |
7916
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
184 call assert_equal('got it', ch_sendexpr(newhandle, 'hello!')) |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
185 call assert_equal('got it', ch_sendexpr(handle, 'hello!')) |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
186 |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
187 call ch_close(handle) |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
188 call assert_equal('got it', ch_sendexpr(newhandle, 'hello!')) |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
189 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
190 call ch_close(newhandle) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
191 endfunc |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
192 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
193 func Test_two_channels() |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
194 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
|
195 endfunc |
54602dcac207
commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713
Christian Brabandt <cb@256bit.org>
parents:
7914
diff
changeset
|
196 |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
197 " 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
|
198 func s:server_crash(port) |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
199 let handle = ch_open('localhost:' . a:port, s:chopt) |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
200 if handle < 0 |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
201 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
|
202 return |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
203 endif |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
204 |
7906
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
205 call ch_sendexpr(handle, '!crash!') |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
206 |
ea1fd8d750a6
commit https://github.com/vim/vim/commit/fcb1e3d16832ce06da0dc38ecb7ab9aaa3ee4383
Christian Brabandt <cb@256bit.org>
parents:
7904
diff
changeset
|
207 sleep 10m |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
208 endfunc |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
209 |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
210 func Test_server_crash() |
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
211 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
|
212 endfunc |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
213 |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
214 let s:reply = "" |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
215 func s:Handler(chan, msg) |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
216 unlet s:reply |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
217 let s:reply = a:msg |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
218 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
219 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
220 func s:channel_handler(port) |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
221 let handle = ch_open('localhost:' . a:port, s:chopt) |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
222 if handle < 0 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
223 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
|
224 return |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
225 endif |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
226 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
227 " Test that it works while waiting on a numbered message. |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
228 call assert_equal('ok', ch_sendexpr(handle, 'call me')) |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
229 sleep 10m |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
230 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
|
231 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
232 " Test that it works while not waiting on a numbered message. |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
233 call ch_sendexpr(handle, 'call me again', 0) |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
234 sleep 10m |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
235 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
|
236 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
237 |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
238 func Test_channel_handler() |
8017
c59a65524084
commit https://github.com/vim/vim/commit/b6a4fee37ebbb0c76f2fbda7d06cbf48a3a07e8d
Christian Brabandt <cb@256bit.org>
parents:
8013
diff
changeset
|
239 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
|
240 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
|
241 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
|
242 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
|
243 unlet s:chopt.callback |
8009
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
244 endfunc |
b2cfa3416ba0
commit https://github.com/vim/vim/commit/f6157284de71d8881f3b89fbd79d1ecbf842929f
Christian Brabandt <cb@256bit.org>
parents:
8007
diff
changeset
|
245 |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
246 " 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
|
247 func Test_connect_waittime() |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
248 let start = reltime() |
8005
d65aa95725d3
commit https://github.com/vim/vim/commit/a483326e3b04215b86fe9c582ac96bb9679f0812
Christian Brabandt <cb@256bit.org>
parents:
7988
diff
changeset
|
249 let handle = ch_open('localhost:9876', s:chopt) |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
250 if handle >= 0 |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
251 " Oops, port does exists. |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
252 call ch_close(handle) |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
253 else |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
254 let elapsed = reltime(start) |
7984
c166ff6797cb
commit https://github.com/vim/vim/commit/74f5e65bcc3d77ab879f56eb977f5038edccbcf8
Christian Brabandt <cb@256bit.org>
parents:
7982
diff
changeset
|
255 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
|
256 endif |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
257 |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
258 let start = reltime() |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
259 let handle = ch_open('localhost:9867', {'waittime': 2000}) |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
260 if handle >= 0 |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
261 " Oops, port does exists. |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
262 call ch_close(handle) |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
263 else |
7988
d3fed9a639db
commit https://github.com/vim/vim/commit/0fa98e7b85b52c63611b2fe8e370f0aa1c8f6dc9
Christian Brabandt <cb@256bit.org>
parents:
7984
diff
changeset
|
264 " Failed connection doesn't wait the full time on Unix. |
8007
ac78cba9e72b
commit https://github.com/vim/vim/commit/d6a8d48587b2ff43c343fa365898576cc1e235ea
Christian Brabandt <cb@256bit.org>
parents:
8005
diff
changeset
|
265 " TODO: why is MS-Windows different? |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
266 let elapsed = reltime(start) |
7988
d3fed9a639db
commit https://github.com/vim/vim/commit/0fa98e7b85b52c63611b2fe8e370f0aa1c8f6dc9
Christian Brabandt <cb@256bit.org>
parents:
7984
diff
changeset
|
267 call assert_true(reltimefloat(elapsed) < (has('unix') ? 1.0 : 3.0)) |
7982
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
268 endif |
5c30ba57aaea
commit https://github.com/vim/vim/commit/7a84dbe6be0ef0e1ffbb7148cfe4ab50b9ba8f41
Christian Brabandt <cb@256bit.org>
parents:
7965
diff
changeset
|
269 endfunc |