aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/output_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ui/output_spec.lua')
-rw-r--r--test/functional/ui/output_spec.lua28
1 files changed, 23 insertions, 5 deletions
diff --git a/test/functional/ui/output_spec.lua b/test/functional/ui/output_spec.lua
index c028f44b44..d7dde6345f 100644
--- a/test/functional/ui/output_spec.lua
+++ b/test/functional/ui/output_spec.lua
@@ -10,6 +10,8 @@ local iswin = helpers.iswin
local clear = helpers.clear
local command = helpers.command
local nvim_dir = helpers.nvim_dir
+local has_powershell = helpers.has_powershell
+local set_shell_powershell = helpers.set_shell_powershell
describe("shell command :!", function()
local screen
@@ -30,7 +32,6 @@ describe("shell command :!", function()
after_each(function()
child_session.feed_data("\3") -- Ctrl-C
- screen:detach()
end)
it("displays output without LF/EOF. #4646 #4569 #3772", function()
@@ -51,8 +52,7 @@ describe("shell command :!", function()
it("throttles shell-command output greater than ~10KB", function()
if 'openbsd' == helpers.uname() then
- pending('FIXME #10804', function() end)
- return
+ pending('FIXME #10804')
end
child_session.feed_data(":!"..nvim_dir.."/shell-test REP 30001 foo\n")
@@ -96,8 +96,7 @@ describe("shell command :!", function()
it('handles control codes', function()
if iswin() then
- pending('missing printf', function() end)
- return
+ pending('missing printf')
end
local screen = Screen.new(50, 4)
screen:attach()
@@ -230,4 +229,23 @@ describe("shell command :!", function()
]])
end)
end)
+ if has_powershell() then
+ it('powershell supports literal strings', function()
+ set_shell_powershell()
+ local screen = Screen.new(30, 4)
+ screen:attach()
+ feed_command([[!'Write-Output $a']])
+ screen:expect{any='\nWrite%-Output %$a', timeout=10000}
+ feed_command([[!$a = 1; Write-Output '$a']])
+ screen:expect{any='\n%$a', timeout=10000}
+ feed_command([[!"Write-Output $a"]])
+ screen:expect{any='\nWrite%-Output', timeout=10000}
+ feed_command([[!$a = 1; Write-Output "$a"]])
+ screen:expect{any='\n1', timeout=10000}
+ feed_command(iswin()
+ and [[!& 'C:\\Windows\\system32\\cmd.exe' /c 'echo $a']]
+ or [[!& '/bin/sh' -c 'echo ''$a''']])
+ screen:expect{any='\n%$a', timeout=10000}
+ end)
+ end
end)