aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-10-17 23:56:39 +0200
committerJustin M. Keyes <justinkz@gmail.com>2016-10-19 01:01:27 +0200
commit16da3a6fe01de74eaebfd4750dabe27b3b7ab068 (patch)
tree3aa10129345e69687239600b66ad25a795a06a59
parent657ba62a84de4ae0fd6dbaa2d3c238de4b372669 (diff)
downloadrneovim-16da3a6fe01de74eaebfd4750dabe27b3b7ab068.tar.gz
rneovim-16da3a6fe01de74eaebfd4750dabe27b3b7ab068.tar.bz2
rneovim-16da3a6fe01de74eaebfd4750dabe27b3b7ab068.zip
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
-rw-r--r--runtime/doc/vim_diff.txt1
-rw-r--r--test/functional/ex_cmds/bang_filter_spec.lua (renamed from test/functional/shell/bang_filter_spec.lua)0
-rw-r--r--test/functional/ex_cmds/dict_notifications_spec.lua (renamed from test/functional/dict_notifications_spec.lua)0
-rw-r--r--test/functional/ex_cmds/viml_system_spec.lua (renamed from test/functional/shell/viml_system_spec.lua)14
4 files changed, 11 insertions, 4 deletions
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index f036b4427e..1598beaaa0 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -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:
diff --git a/test/functional/shell/bang_filter_spec.lua b/test/functional/ex_cmds/bang_filter_spec.lua
index a320e6d018..a320e6d018 100644
--- a/test/functional/shell/bang_filter_spec.lua
+++ b/test/functional/ex_cmds/bang_filter_spec.lua
diff --git a/test/functional/dict_notifications_spec.lua b/test/functional/ex_cmds/dict_notifications_spec.lua
index dc87312911..dc87312911 100644
--- a/test/functional/dict_notifications_spec.lua
+++ b/test/functional/ex_cmds/dict_notifications_spec.lua
diff --git a/test/functional/shell/viml_system_spec.lua b/test/functional/ex_cmds/viml_system_spec.lua
index b8de7cc86f..b8f1f87f30 100644
--- a/test/functional/shell/viml_system_spec.lua
+++ b/test/functional/ex_cmds/viml_system_spec.lua
@@ -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()