aboutsummaryrefslogtreecommitdiff
path: root/test/functional/vimscript
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/vimscript')
-rw-r--r--test/functional/vimscript/executable_spec.lua15
-rw-r--r--test/functional/vimscript/let_spec.lua3
-rw-r--r--test/functional/vimscript/system_spec.lua23
3 files changed, 32 insertions, 9 deletions
diff --git a/test/functional/vimscript/executable_spec.lua b/test/functional/vimscript/executable_spec.lua
index 048a65188d..b4162b2336 100644
--- a/test/functional/vimscript/executable_spec.lua
+++ b/test/functional/vimscript/executable_spec.lua
@@ -17,6 +17,21 @@ describe('executable()', function()
eq(1, call('executable', 'false'))
end)
+ if iswin() then
+ it('exepath respects shellslash', function()
+ command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
+ eq([[test\functional\fixtures\bin\null.CMD]], call('fnamemodify', call('exepath', 'null'), ':.'))
+ command('set shellslash')
+ eq('test/functional/fixtures/bin/null.CMD', call('fnamemodify', call('exepath', 'null'), ':.'))
+ end)
+
+ it('stdpath respects shellslash', function()
+ eq([[build\Xtest_xdg\share\nvim-data]], call('fnamemodify', call('stdpath', 'data'), ':.'))
+ command('set shellslash')
+ eq('build/Xtest_xdg/share/nvim-data', call('fnamemodify', call('stdpath', 'data'), ':.'))
+ end)
+ end
+
it('fails for invalid values', function()
for _, input in ipairs({'v:null', 'v:true', 'v:false', '{}', '[]'}) do
eq('Vim(call):E928: String required', exc_exec('call executable('..input..')'))
diff --git a/test/functional/vimscript/let_spec.lua b/test/functional/vimscript/let_spec.lua
index ca1b5e8907..86905199a8 100644
--- a/test/functional/vimscript/let_spec.lua
+++ b/test/functional/vimscript/let_spec.lua
@@ -7,6 +7,7 @@ local eval = helpers.eval
local meths = helpers.meths
local exec = helpers.exec
local exec_capture = helpers.exec_capture
+local expect_exit = helpers.expect_exit
local source = helpers.source
local testprg = helpers.testprg
@@ -28,7 +29,7 @@ describe(':let', function()
it(":unlet self-referencing node in a List graph #6070", function()
-- :unlet-ing a self-referencing List must not allow GC on indirectly
-- referenced in-scope Lists. Before #6070 this caused use-after-free.
- source([=[
+ expect_exit(100, source, [=[
let [l1, l2] = [[], []]
echo 'l1:' . id(l1)
echo 'l2:' . id(l2)
diff --git a/test/functional/vimscript/system_spec.lua b/test/functional/vimscript/system_spec.lua
index c915556c57..a778e2f435 100644
--- a/test/functional/vimscript/system_spec.lua
+++ b/test/functional/vimscript/system_spec.lua
@@ -630,7 +630,7 @@ end)
describe('shell :!', function()
before_each(clear)
- it(':{range}! with powershell filter/redirect #16271', function()
+ it(':{range}! with powershell filter/redirect #16271 #19250', function()
local screen = Screen.new(500, 8)
screen:attach()
local found = helpers.set_shell_powershell(true)
@@ -639,18 +639,25 @@ describe('shell :!', function()
1
4
2]])
- feed(':4verbose %!sort<cr>')
- screen:expect{
- any=[[Executing command: .?Start%-Process sort %-RedirectStandardInput .* %-RedirectStandardOutput .* %-NoNewWindow %-Wait]]
- }
+ if iswin() then
+ feed(':4verbose %!sort /R<cr>')
+ screen:expect{
+ any=[[Executing command: .?Start%-Process sort %-ArgumentList "/R" %-RedirectStandardInput .* %-RedirectStandardOutput .* %-NoNewWindow %-Wait]]
+ }
+ else
+ feed(':4verbose %!sort -r<cr>')
+ screen:expect{
+ any=[[Executing command: .?Start%-Process sort %-ArgumentList "%-r" %-RedirectStandardInput .* %-RedirectStandardOutput .* %-NoNewWindow %-Wait]]
+ }
+ end
feed('<CR>')
if found then
-- Not using fake powershell, so we can test the result.
expect([[
- 1
- 2
+ 4
3
- 4]])
+ 2
+ 1]])
end
end)
end)