diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-11-30 07:15:34 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-11-30 07:32:28 +0800 |
commit | 90b213990f02d2a86019ef4058ad86a995931bea (patch) | |
tree | 94cd232a41f9d826f79bcf1851ba1b49e1d215e1 /test/functional/terminal/ex_terminal_spec.lua | |
parent | 5ca6c9e04629fee4e9f1f9786e9d36a2f892160c (diff) | |
download | rneovim-90b213990f02d2a86019ef4058ad86a995931bea.tar.gz rneovim-90b213990f02d2a86019ef4058ad86a995931bea.tar.bz2 rneovim-90b213990f02d2a86019ef4058ad86a995931bea.zip |
test: :terminal when 'shell' uses backslashes
Diffstat (limited to 'test/functional/terminal/ex_terminal_spec.lua')
-rw-r--r-- | test/functional/terminal/ex_terminal_spec.lua | 24 |
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) |