spacevim/bundle/vimproc.vim/test/popen.vim
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

123 lines
2.6 KiB
VimL

let s:suite = themis#suite('popen')
let s:assert = themis#helper('assert')
function! s:suite.popen2() abort
if !vimproc#util#is_windows() && !executable('ls')
call s:assert.skip('ls command is not installed.')
return
endif
if vimproc#util#is_windows()
let cmd = ['cmd', '/c', 'DIR', '/B']
else
let cmd = ['ls']
endif
let sub = vimproc#popen2(cmd)
let res = ''
while !sub.stdout.eof
let res .= sub.stdout.read()
endwhile
" Newline conversion.
let res = substitute(res, '\r\n', '\n', 'g')
call s:assert.true(sub.is_valid)
let [cond, status] = sub.waitpid()
call s:assert.equals(cond, 'exit')
call s:assert.equals(status, 0)
call s:assert.false(sub.is_valid)
call s:assert.equals(res, system(join(cmd)))
unlet cmd
unlet sub
if vimproc#util#is_windows()
let cmd = ['cmd', '/c', 'DIR', '/B', '/A']
else
let cmd = ['ls', '-la']
endif
let sub = vimproc#popen2(cmd)
let res = ''
while !sub.stdout.eof
let res .= sub.stdout.read()
endwhile
" Newline conversion.
let res = substitute(res, '\r\n', '\n', 'g')
call s:assert.true(sub.is_valid)
let [cond, status] = sub.waitpid()
call s:assert.equals(cond, 'exit')
call s:assert.equals(status, 0)
call s:assert.false(sub.is_valid)
call s:assert.equals(res, system(join(cmd)))
unlet cmd
unlet sub
endfunction
function! s:suite.popen3() abort
if vimproc#util#is_windows()
let cmd = ['cmd', '/c', 'DIR', '/B']
else
let cmd = ['ls']
endif
let sub = vimproc#popen3(cmd)
let res = ''
while !sub.stdout.eof
let res .= sub.stdout.read()
endwhile
" Newline conversion.
let res = substitute(res, '\r\n', '\n', 'g')
call s:assert.true(sub.is_valid)
let [cond, status] = sub.waitpid()
call s:assert.equals(cond, 'exit')
call s:assert.equals(status, 0)
call s:assert.false(sub.is_valid)
call s:assert.equals(res, system(join(cmd)))
unlet cmd
unlet sub
endfunction
function! s:suite.redirection1() abort
let output = vimproc#system('echo "foo" > test.txt | echo "bar"')
call s:assert.equals(output, "bar\n")
sleep 3
call s:assert.equals(readfile('test.txt'), ['foo'])
if filereadable('test.txt')
call delete('test.txt')
endif
endfunction
function! s:suite.redirection2() abort
let sub = vimproc#ptyopen('echo "foo" > test.txt | echo "bar"')
let res = ''
while !sub.stdout.eof
let res .= sub.stdout.read()
endwhile
" Newline conversion.
let res = substitute(res, '\r\n', '\n', 'g')
sleep 3
call s:assert.equals(readfile('test.txt'), ['foo'])
if filereadable('test.txt')
call delete('test.txt')
endif
endfunction
" vim:foldmethod=marker:fen: