Skip to content

Commit 2dd345e

Browse files
committed
System.AsyncProcess: Fixed test for windows.
1 parent 81bfbce commit 2dd345e

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

test/System/AsyncProcess.vimspec

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,45 @@ let s:scriptfile = s:Path.realpath(
66
\ 'autoload/vital/__vital__/System/AsyncProcess.vim'
77
\)
88

9+
let s:is_windows = has('win32')
10+
11+
function! s:wait_until(cond, timeout) abort
12+
let start = reltime()
13+
while 1
14+
if a:cond()
15+
return 1
16+
endif
17+
if reltimefloat(reltime(start)) * 1000 > a:timeout
18+
return 0
19+
endif
20+
sleep 10m
21+
endwhile
22+
endfunction
23+
924
Describe System.AsyncProcess
1025
Before
1126
let AsyncProcess = s:V.import('System.AsyncProcess')
27+
let g:exit_code = ""
28+
let g:out_msg = ""
29+
let g:err_msg = ""
1230
End
1331

1432
After
33+
unlet g:exit_code
34+
unlet g:out_msg
35+
unlet g:err_msg
1536
End
1637

1738
Describe .execute({args}, {options})
1839
It uses a String item
19-
let exit_code = ""
20-
let out_msg = ""
21-
let err_msg = ""
2240
function! s:my_out_cb(out_msg) abort
23-
let out_msg = out_msg . a:out_msg
41+
let g:out_msg = g:out_msg . a:out_msg
2442
endfunction
2543
function! s:my_err_cb(err_msg) abort
26-
let err_msg = err_msg . a:err_msg
44+
let g:err_msg = g:err_msg . a:err_msg
2745
endfunction
2846
function! s:my_exit_cb(exit_code) abort
29-
let exit_code = a:exit_code
30-
Assert Equals(l:exit_code, 0)
31-
Assert Equals(l:out_msg, "abcdefg\n")
32-
Assert Equals(l:err_msg, "")
47+
let g:exit_code = a:exit_code
3348
endfunction
3449

3550
let args = 'echo "abcdefg"'
@@ -38,6 +53,20 @@ Describe System.AsyncProcess
3853
\ 'out_cb': function('s:my_out_cb'),
3954
\ 'err_cb': function('s:my_err_cb'),
4055
\ })
56+
57+
call s:wait_until({-> g:exit_code !=# ""}, 2000)
58+
59+
Assert Equals(g:exit_code, 0)
60+
Assert Equals(g:err_msg, "")
61+
62+
if s:is_windows
63+
let actual_out_msg = '\"abcdefg\"'
64+
else
65+
let actual_out_msg = "abcdefg"
66+
endif
67+
68+
Assert Equals(g:out_msg, actual_out_msg)
4169
End
4270
End
4371
End
72+

0 commit comments

Comments
 (0)