Skip to content

Commit f2fad69

Browse files
committed
System.AsyncProcess: Added timeout and stop() tests.
1 parent e165c1d commit f2fad69

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

test/System/AsyncProcess.vimspec

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,71 @@ Describe System.AsyncProcess
6868
Assert Equals(g:out_msg, actual_out_msg)
6969
End
7070
End
71+
72+
Describe .stop()
73+
It stop
74+
let g:out_msg = []
75+
let g:err_msg = []
76+
let g:exit_code = ""
77+
function! s:my_out_cb(out_msg) abort
78+
let g:out_msg = g:out_msg + [a:out_msg]
79+
endfunction
80+
function! s:my_err_cb(err_msg) abort
81+
let g:err_msg = g:err_msg + [a:err_msg]
82+
endfunction
83+
function! s:my_exit_cb(exit_code) abort
84+
let g:exit_code = a:exit_code
85+
endfunction
86+
87+
let args = "ping 0.0.0.0"
88+
let process = AsyncProcess.execute(args, {
89+
\ 'exit_cb': function('s:my_exit_cb'),
90+
\ 'out_cb': function('s:my_out_cb'),
91+
\ 'err_cb': function('s:my_err_cb'),
92+
\ })
93+
94+
call process.stop()
95+
96+
" Wait exit_cb process
97+
call s:wait_until({-> g:exit_code !=# ""}, 1000)
98+
99+
Assert Equals(len(g:out_msg), 0)
100+
Assert Equals(len(g:err_msg), 0)
101+
Assert True(g:exit_code != 0)
102+
103+
End
104+
End
105+
106+
Describe .timeout
107+
It stop
108+
let g:out_msg = []
109+
let g:err_msg = []
110+
let g:exit_code = ""
111+
function! s:my_out_cb(out_msg) abort
112+
let g:out_msg = g:out_msg + [a:out_msg]
113+
endfunction
114+
function! s:my_err_cb(err_msg) abort
115+
let g:err_msg = g:err_msg + [a:err_msg]
116+
endfunction
117+
function! s:my_exit_cb(exit_code) abort
118+
let g:exit_code = a:exit_code
119+
endfunction
120+
121+
let args = "ping 0.0.0.0"
122+
let process = AsyncProcess.execute(args, {
123+
\ 'exit_cb': function('s:my_exit_cb'),
124+
\ 'out_cb': function('s:my_out_cb'),
125+
\ 'err_cb': function('s:my_err_cb'),
126+
\ 'timeout': 1000,
127+
\ })
128+
129+
call s:wait_until({-> g:exit_code !=# ""}, 1000)
130+
131+
Assert True(len(g:out_msg) > 0)
132+
Assert Equals(len(g:err_msg), 0)
133+
Assert True(g:exit_code != 0)
134+
135+
End
136+
End
71137
End
72138

0 commit comments

Comments
 (0)