aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-11-30 07:15:34 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-11-30 07:32:28 +0800
commit90b213990f02d2a86019ef4058ad86a995931bea (patch)
tree94cd232a41f9d826f79bcf1851ba1b49e1d215e1
parent5ca6c9e04629fee4e9f1f9786e9d36a2f892160c (diff)
downloadrneovim-90b213990f02d2a86019ef4058ad86a995931bea.tar.gz
rneovim-90b213990f02d2a86019ef4058ad86a995931bea.tar.bz2
rneovim-90b213990f02d2a86019ef4058ad86a995931bea.zip
test: :terminal when 'shell' uses backslashes
-rw-r--r--test/functional/terminal/ex_terminal_spec.lua24
1 files changed, 19 insertions, 5 deletions
diff --git a/test/functional/terminal/ex_terminal_spec.lua b/test/functional/terminal/ex_terminal_spec.lua
index bfb8f2136c..bf0aade255 100644
--- a/test/functional/terminal/ex_terminal_spec.lua
+++ b/test/functional/terminal/ex_terminal_spec.lua
@@ -141,15 +141,20 @@ describe(':terminal', function()
end)
end)
-describe(':terminal (with fake shell)', function()
+local function test_terminal_with_fake_shell(backslash)
+ -- shell-test.c is a fake shell that prints its arguments and exits.
+ local shell_path = testprg('shell-test')
+ if backslash then
+ shell_path = shell_path:gsub('/', [[\]])
+ end
+
local screen
before_each(function()
clear()
screen = Screen.new(50, 4)
screen:attach({rgb=false})
- -- shell-test.c is a fake shell that prints its arguments and exits.
- nvim('set_option_value', 'shell', testprg('shell-test'), {})
+ nvim('set_option_value', 'shell', shell_path, {})
nvim('set_option_value', 'shellcmdflag', 'EXE', {})
nvim('set_option_value', 'shellxquote', '', {})
end)
@@ -189,7 +194,7 @@ describe(':terminal (with fake shell)', function()
end)
it("with no argument, but 'shell' has arguments, acts like termopen()", function()
- nvim('set_option_value', 'shell', testprg('shell-test')..' -t jeff', {})
+ nvim('set_option_value', 'shell', shell_path ..' -t jeff', {})
terminal_with_fake_shell()
screen:expect([[
^jeff $ |
@@ -211,7 +216,7 @@ describe(':terminal (with fake shell)', function()
end)
it("executes a given command through the shell, when 'shell' has arguments", function()
- nvim('set_option_value', 'shell', testprg('shell-test')..' -t jeff', {})
+ nvim('set_option_value', 'shell', shell_path ..' -t jeff', {})
command('set shellxquote=') -- win: avoid extra quotes
terminal_with_fake_shell('echo hi')
screen:expect([[
@@ -304,4 +309,13 @@ describe(':terminal (with fake shell)', function()
terminal]])
end
end)
+end
+
+describe(':terminal (with fake shell)', function()
+ test_terminal_with_fake_shell(false)
+ if is_os('win') then
+ describe("when 'shell' uses backslashes", function()
+ test_terminal_with_fake_shell(true)
+ end)
+ end
end)