mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
test: system(): backgrounded shell command
These tests are essentially affirming a regression vs Vim. In Vim,
:echo system('cat - &', 'foo')
returns "foo", because Vim internally wraps the command with shell-specific
syntax to redirect the streams from /dev/null[1].
That can't work in Nvim because we use pipes directly (instead of temp files)
and don't wrap the command with shell-specific redirection syntax.
References #3529
References #5241
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
This commit is contained in:
@@ -108,6 +108,7 @@ Options:
|
||||
|
||||
Commands:
|
||||
|:CheckHealth|
|
||||
|:drop| is available on all platforms
|
||||
|:Man| is available by default, with many improvements such as completion
|
||||
|
||||
Functions:
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
-- Specs for
|
||||
-- - `system()`
|
||||
-- - `systemlist()`
|
||||
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local eq, clear, eval, feed, nvim =
|
||||
helpers.eq, helpers.clear, helpers.eval, helpers.feed, helpers.nvim
|
||||
@@ -120,12 +116,22 @@ describe('system()', function()
|
||||
it('returns the program output', function()
|
||||
eq("echoed", eval('system("echo -n echoed")'))
|
||||
end)
|
||||
it('to backgrounded command does not crash', function()
|
||||
-- This is indeterminate, just exercise the codepath.
|
||||
eval('system("echo -n echoed &")')
|
||||
eq(2, eval("1+1")) -- Still alive?
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('passing input', function()
|
||||
it('returns the program output', function()
|
||||
eq("input", eval('system("cat -", "input")'))
|
||||
end)
|
||||
it('to backgrounded command does not crash', function()
|
||||
-- This is indeterminate, just exercise the codepath.
|
||||
eval('system("cat - &", "input")')
|
||||
eq(2, eval("1+1")) -- Still alive?
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('passing a lot of input', function()
|
||||
Reference in New Issue
Block a user