comparison src/testdir/test_channel.vim @ 7916:54602dcac207 v7.4.1254

commit https://github.com/vim/vim/commit/3b05b135e3ee4cfd59983fd63461e8f7642c1713 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Feb 3 23:25:07 2016 +0100 patch 7.4.1254 Problem: Opening a second channel causes a crash. (Ken Takata) Solution: Don't re-allocate the array with channels.
author Christian Brabandt <cb@256bit.org>
date Wed, 03 Feb 2016 23:30:04 +0100
parents 35973ce58c84
children ce5a7a613867
comparison
equal deleted inserted replaced
7915:72085904c404 7916:54602dcac207
14 finish 14 finish
15 endif 15 endif
16 else 16 else
17 finish 17 finish
18 endif 18 endif
19
20 let s:port = -1
19 21
20 func s:start_server() 22 func s:start_server()
21 " The Python program writes the port number in Xportnr. 23 " The Python program writes the port number in Xportnr.
22 call delete("Xportnr") 24 call delete("Xportnr")
23 25
47 " Can't make the connection, give up. 49 " Can't make the connection, give up.
48 call s:kill_server() 50 call s:kill_server()
49 call assert_false(1, "Can't start test_channel.py") 51 call assert_false(1, "Can't start test_channel.py")
50 return -1 52 return -1
51 endif 53 endif
52 let port = l[0] 54 let s:port = l[0]
53 55
54 let handle = ch_open('localhost:' . port, 'json') 56 let handle = ch_open('localhost:' . s:port, 'json')
55 return handle 57 return handle
56 endfunc 58 endfunc
57 59
58 func s:kill_server() 60 func s:kill_server()
59 if has('win32') 61 if has('win32')
92 call ch_sendexpr(handle, '!quit!', 0) 94 call ch_sendexpr(handle, '!quit!', 0)
93 95
94 call s:kill_server() 96 call s:kill_server()
95 endfunc 97 endfunc
96 98
99 " Test that we can open two channels.
100 func Test_two_channels()
101 let handle = s:start_server()
102 if handle < 0
103 return
104 endif
105 call assert_equal('got it', ch_sendexpr(handle, 'hello!'))
106
107 let newhandle = ch_open('localhost:' . s:port, 'json')
108 call assert_equal('got it', ch_sendexpr(newhandle, 'hello!'))
109 call assert_equal('got it', ch_sendexpr(handle, 'hello!'))
110
111 call ch_close(handle)
112 call assert_equal('got it', ch_sendexpr(newhandle, 'hello!'))
113
114 call s:kill_server()
115 endfunc
116
97 " Test that a server crash is handled gracefully. 117 " Test that a server crash is handled gracefully.
98 func Test_server_crash() 118 func Test_server_crash()
99 let handle = s:start_server() 119 let handle = s:start_server()
100 if handle < 0 120 if handle < 0
101 return 121 return