aboutsummaryrefslogtreecommitdiff
path: root/test/functional/core/main_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/core/main_spec.lua')
-rw-r--r--test/functional/core/main_spec.lua167
1 files changed, 110 insertions, 57 deletions
diff --git a/test/functional/core/main_spec.lua b/test/functional/core/main_spec.lua
index 19c7a93730..9d8d64c82d 100644
--- a/test/functional/core/main_spec.lua
+++ b/test/functional/core/main_spec.lua
@@ -1,4 +1,4 @@
-local luv = require('luv')
+local uv = vim.uv
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
@@ -7,7 +7,7 @@ local matches = helpers.matches
local feed = helpers.feed
local eval = helpers.eval
local clear = helpers.clear
-local funcs = helpers.funcs
+local fn = helpers.fn
local nvim_prog_abs = helpers.nvim_prog_abs
local write_file = helpers.write_file
local is_os = helpers.is_os
@@ -32,28 +32,57 @@ describe('command-line option', function()
end)
it('treats - as stdin', function()
- eq(nil, luv.fs_stat(fname))
- funcs.system(
- {nvim_prog_abs(), '-u', 'NONE', '-i', 'NONE', '--headless',
- '--cmd', 'set noswapfile shortmess+=IFW fileformats=unix',
- '-s', '-', fname},
- {':call setline(1, "42")', ':wqall!', ''})
+ eq(nil, uv.fs_stat(fname))
+ fn.system({
+ nvim_prog_abs(),
+ '-u',
+ 'NONE',
+ '-i',
+ 'NONE',
+ '--headless',
+ '--cmd',
+ 'set noswapfile shortmess+=IFW fileformats=unix',
+ '-s',
+ '-',
+ fname,
+ }, { ':call setline(1, "42")', ':wqall!', '' })
eq(0, eval('v:shell_error'))
- local attrs = luv.fs_stat(fname)
- eq(#('42\n'), attrs.size)
+ local attrs = uv.fs_stat(fname)
+ eq(#'42\n', attrs.size)
end)
it('does not expand $VAR', function()
- eq(nil, luv.fs_stat(fname))
+ eq(nil, uv.fs_stat(fname))
eq(true, not not dollar_fname:find('%$%w+'))
write_file(dollar_fname, ':call setline(1, "100500")\n:wqall!\n')
- funcs.system(
- {nvim_prog_abs(), '-u', 'NONE', '-i', 'NONE', '--headless',
- '--cmd', 'set noswapfile shortmess+=IFW fileformats=unix',
- '-s', dollar_fname, fname})
+ fn.system({
+ nvim_prog_abs(),
+ '-u',
+ 'NONE',
+ '-i',
+ 'NONE',
+ '--headless',
+ '--cmd',
+ 'set noswapfile shortmess+=IFW fileformats=unix',
+ '-s',
+ dollar_fname,
+ fname,
+ })
+ eq(0, eval('v:shell_error'))
+ local attrs = uv.fs_stat(fname)
+ eq(#'100500\n', attrs.size)
+ end)
+
+ it('does not crash when run completion in ex mode', function()
+ fn.system({
+ nvim_prog_abs(),
+ '--clean',
+ '-e',
+ '-s',
+ '--cmd',
+ 'exe "norm! i\\<C-X>\\<C-V>"',
+ })
eq(0, eval('v:shell_error'))
- local attrs = luv.fs_stat(fname)
- eq(#('100500\n'), attrs.size)
end)
it('does not crash after reading from stdin in non-headless mode', function()
@@ -61,36 +90,38 @@ describe('command-line option', function()
local screen = Screen.new(40, 8)
screen:attach()
local args = {
- nvim_prog_abs(), '-u', 'NONE', '-i', 'NONE',
- '--cmd', '"set noswapfile shortmess+=IFW fileformats=unix"',
- '-s', '-'
+ nvim_prog_abs(),
+ '-u',
+ 'NONE',
+ '-i',
+ 'NONE',
+ '--cmd',
+ '"set noswapfile shortmess+=IFW fileformats=unix notermguicolors"',
+ '-s',
+ '-',
}
-- Need to explicitly pipe to stdin so that the embedded Nvim instance doesn't try to read
-- data from the terminal #18181
- funcs.termopen(string.format([[echo "" | %s]], table.concat(args, " ")))
- screen:expect([[
- ^ |
- {1:~ }|
- {1:~ }|
- {1:~ }|
- {1:~ }|
- {2:[No Name] 0,0-1 All}|
- |
- |
- ]], {
- [1] = {foreground = tonumber('0x4040ff'), fg_indexed=true},
- [2] = {bold = true, reverse = true}
+ fn.termopen(string.format([[echo "" | %s]], table.concat(args, ' ')), {
+ env = { VIMRUNTIME = os.getenv('VIMRUNTIME') },
})
+ screen:expect(
+ [[
+ ^ |
+ ~ |*4
+ {1:[No Name] 0,0-1 All}|
+ |*2
+ ]],
+ {
+ [1] = { reverse = true },
+ }
+ )
feed('i:cq<CR>')
screen:expect([[
|
[Process exited 1] |
- |
- |
- |
- |
- |
+ |*5
-- TERMINAL -- |
]])
--[=[ Example of incorrect output:
@@ -101,20 +132,29 @@ describe('command-line option', function()
LENO' failed. |
|
[Process exited 6] |
- |
- |
+ |*2
]])
]=]
end)
it('errors out when trying to use nonexistent file with -s', function()
eq(
- 'Cannot open for reading: "'..nonexistent_fname..'": no such file or directory\n',
- funcs.system(
- {nvim_prog_abs(), '-u', 'NONE', '-i', 'NONE', '--headless',
- '--cmd', 'set noswapfile shortmess+=IFW fileformats=unix',
- '--cmd', 'language C',
- '-s', nonexistent_fname}))
+ 'Cannot open for reading: "' .. nonexistent_fname .. '": no such file or directory\n',
+ fn.system({
+ nvim_prog_abs(),
+ '-u',
+ 'NONE',
+ '-i',
+ 'NONE',
+ '--headless',
+ '--cmd',
+ 'set noswapfile shortmess+=IFW fileformats=unix',
+ '--cmd',
+ 'language C',
+ '-s',
+ nonexistent_fname,
+ })
+ )
eq(2, eval('v:shell_error'))
end)
@@ -122,21 +162,34 @@ describe('command-line option', function()
write_file(fname, ':call setline(1, "1")\n:wqall!\n')
write_file(dollar_fname, ':call setline(1, "2")\n:wqall!\n')
eq(
- 'Attempt to open script file again: "-s '..dollar_fname..'"\n',
- funcs.system(
- {nvim_prog_abs(), '-u', 'NONE', '-i', 'NONE', '--headless',
- '--cmd', 'set noswapfile shortmess+=IFW fileformats=unix',
- '--cmd', 'language C',
- '-s', fname, '-s', dollar_fname, fname_2}))
+ 'Attempt to open script file again: "-s ' .. dollar_fname .. '"\n',
+ fn.system({
+ nvim_prog_abs(),
+ '-u',
+ 'NONE',
+ '-i',
+ 'NONE',
+ '--headless',
+ '--cmd',
+ 'set noswapfile shortmess+=IFW fileformats=unix',
+ '--cmd',
+ 'language C',
+ '-s',
+ fname,
+ '-s',
+ dollar_fname,
+ fname_2,
+ })
+ )
eq(2, eval('v:shell_error'))
- eq(nil, luv.fs_stat(fname_2))
+ eq(nil, uv.fs_stat(fname_2))
end)
end)
it('nvim -v, :version', function()
- matches('Run ":verbose version"', funcs.execute(':version'))
- matches('Compilation: .*Run :checkhealth', funcs.execute(':verbose version'))
- matches('Run "nvim %-V1 %-v"', funcs.system({nvim_prog_abs(), '-v'}))
- matches('Compilation: .*Run :checkhealth', funcs.system({nvim_prog_abs(), '-V1', '-v'}))
+ matches('Run ":verbose version"', fn.execute(':version'))
+ matches('Compilation: .*Run :checkhealth', fn.execute(':verbose version'))
+ matches('Run "nvim %-V1 %-v"', fn.system({ nvim_prog_abs(), '-v' }))
+ matches('Compilation: .*Run :checkhealth', fn.system({ nvim_prog_abs(), '-V1', '-v' }))
end)
end)