let s:suite = themis#suite('system')
let s:assert = themis#helper('assert')
function! s:check_ls() abort
if !executable('ls')
call s:assert.skip('ls command is not installed.')
endif
endfunction
function! s:suite.system1() abort
call s:check_ls()
call s:assert.equals(vimproc#system('ls'), system('ls'))
endfunction
function! s:suite.system2() abort
call s:check_ls()
call s:assert.equals(vimproc#system(['ls']), system('ls'))
endfunction
function! s:suite.cmd_system1() abort
call s:check_ls()
call s:assert.equals(vimproc#cmd#system('ls'), system('ls'))
endfunction
function! s:suite.cmd_system2() abort
call s:check_ls()
call s:assert.equals(vimproc#cmd#system(['ls']), system('ls'))
endfunction
function! s:suite.cmd_system3() abort
call s:assert.equals(
\ vimproc#cmd#system(['echo', '"Foo"']),
\ "\"Foo\"\n")
endfunction
function! s:suite.system_passwd1() abort
if vimproc#util#is_windows()
call s:assert.skip('')
endif
call s:assert.equals(
\ vimproc#system_passwd('echo -n test'),
\ system('echo -n test'))
endfunction
function! s:suite.system_passwd2() abort
if vimproc#util#is_windows()
call s:assert.skip('')
endif
call s:assert.equals(
\ vimproc#system_passwd(['echo', '-n', 'test']),
\ system('echo -n test'))
endfunction
function! s:suite.system_and1() abort
if vimproc#util#is_windows()
call s:assert.skip('')
endif
call s:check_ls()
call s:assert.equals(vimproc#system('ls&'), '')
endfunction
function! s:suite.system_and2() abort
if vimproc#util#is_windows()
call s:assert.skip('')
endif
call s:check_ls()
call s:assert.equals(vimproc#system('ls&'),
\ vimproc#system_bg('ls'))
endfunction
function! s:suite.system_bg1() abort
call s:check_ls()
call s:assert.equals(vimproc#system_bg('ls'), '')
endfunction
function! s:suite.system_bg2() abort
call s:check_ls()
call s:assert.equals(vimproc#system_bg(['ls']), '')
endfunction
function! s:suite.password_pattern() abort
call s:assert.match(
\ 'Enter passphrase for key ''.ssh/id_rsa''',
\ g:vimproc_password_pattern)
endfunction
" vim:foldmethod=marker:fen: