test: verify that v:shell_error is set by system()/systemlist()

This commit is contained in:
Thiago de Arruda
2014-10-22 07:15:55 -03:00
parent b49460f930
commit f7fab4af86

View File

@@ -23,6 +23,15 @@ end
describe('system()', function() describe('system()', function()
before_each(clear) before_each(clear)
it('sets the v:shell_error variable', function()
eval([[system("sh -c 'exit'")]])
eq(0, eval('v:shell_error'))
eval([[system("sh -c 'exit 1'")]])
eq(1, eval('v:shell_error'))
eval([[system("sh -c 'exit 5'")]])
eq(5, eval('v:shell_error'))
end)
describe('passing no input', function() describe('passing no input', function()
it('returns the program output', function() it('returns the program output', function()
eq("echoed", eval('system("echo -n echoed")')) eq("echoed", eval('system("echo -n echoed")'))
@@ -83,6 +92,15 @@ describe('systemlist()', function()
-- string. -- string.
before_each(clear) before_each(clear)
it('sets the v:shell_error variable', function()
eval([[systemlist("sh -c 'exit'")]])
eq(0, eval('v:shell_error'))
eval([[systemlist("sh -c 'exit 1'")]])
eq(1, eval('v:shell_error'))
eval([[systemlist("sh -c 'exit 5'")]])
eq(5, eval('v:shell_error'))
end)
describe('passing string with linefeed characters as input', function() describe('passing string with linefeed characters as input', function()
it('splits the output on linefeed characters', function() it('splits the output on linefeed characters', function()
eq({'abc', 'def', 'ghi'}, eval([[systemlist("cat -", "abc\ndef\nghi")]])) eq({'abc', 'def', 'ghi'}, eval([[systemlist("cat -", "abc\ndef\nghi")]]))