mirror of
https://github.com/neovim/neovim.git
synced 2026-01-07 05:43:14 +00:00
Merge pull request #13347 from janlazo/vim-8.1.0650
vim-patch:8.1.0650,8.2.{1216,1217}
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
source shared.vim
|
||||
source screendump.vim
|
||||
source term_util.vim
|
||||
source check.vim
|
||||
|
||||
" Check that loading startup.vim works.
|
||||
func Test_startup_script()
|
||||
@@ -278,6 +280,68 @@ func Test_V_arg()
|
||||
" call assert_match("sourcing \"$VIMRUNTIME[\\/]defaults\.vim\"\r\nline 1: \" The default vimrc file\..* verbose=15\n", out)
|
||||
endfunc
|
||||
|
||||
" Test the '-q [errorfile]' argument.
|
||||
func Test_q_arg()
|
||||
CheckFeature quickfix
|
||||
|
||||
let lines =<< trim END
|
||||
/* some file with an error */
|
||||
main() {
|
||||
functionCall(arg; arg, arg);
|
||||
return 666
|
||||
}
|
||||
END
|
||||
call writefile(lines, 'Xbadfile.c')
|
||||
|
||||
let after =<< trim [CODE]
|
||||
call writefile([&errorfile, string(getpos("."))], "Xtestout")
|
||||
copen
|
||||
w >> Xtestout
|
||||
qall
|
||||
[CODE]
|
||||
|
||||
" Test with default argument '-q'.
|
||||
call assert_equal('errors.err', &errorfile)
|
||||
call writefile(["Xbadfile.c:4:12: error: expected ';' before '}' token"], 'errors.err')
|
||||
if RunVim([], after, '-q')
|
||||
let lines = readfile('Xtestout')
|
||||
call assert_equal(['errors.err',
|
||||
\ '[0, 4, 12, 0]',
|
||||
\ "Xbadfile.c|4 col 12| error: expected ';' before '}' token"],
|
||||
\ lines)
|
||||
endif
|
||||
call delete('Xtestout')
|
||||
call delete('errors.err')
|
||||
|
||||
" Test with explicit argument '-q Xerrors' (with space).
|
||||
call writefile(["Xbadfile.c:4:12: error: expected ';' before '}' token"], 'Xerrors')
|
||||
if RunVim([], after, '-q Xerrors')
|
||||
let lines = readfile('Xtestout')
|
||||
call assert_equal(['Xerrors',
|
||||
\ '[0, 4, 12, 0]',
|
||||
\ "Xbadfile.c|4 col 12| error: expected ';' before '}' token"],
|
||||
\ lines)
|
||||
endif
|
||||
call delete('Xtestout')
|
||||
|
||||
" Test with explicit argument '-qXerrors' (without space).
|
||||
if RunVim([], after, '-qXerrors')
|
||||
let lines = readfile('Xtestout')
|
||||
call assert_equal(['Xerrors',
|
||||
\ '[0, 4, 12, 0]',
|
||||
\ "Xbadfile.c|4 col 12| error: expected ';' before '}' token"],
|
||||
\ lines)
|
||||
endif
|
||||
|
||||
" Test with a non-existing error file (exits with value 3)
|
||||
let out = system(GetVimCommand() .. ' -q xyz.err')
|
||||
call assert_equal(3, v:shell_error)
|
||||
|
||||
call delete('Xbadfile.c')
|
||||
call delete('Xtestout')
|
||||
call delete('Xerrors')
|
||||
endfunc
|
||||
|
||||
" Test the -V[N]{filename} argument to set the 'verbose' option to N
|
||||
" and set 'verbosefile' to filename.
|
||||
func Test_V_file_arg()
|
||||
@@ -408,13 +472,15 @@ func Test_invalid_args()
|
||||
let out = split(system(GetVimCommand() .. ' - xxx -cq'), "\n")
|
||||
call assert_equal(0, v:shell_error)
|
||||
|
||||
" Detect invalid repeated arguments '-t foo -t foo", '-q foo -q foo'.
|
||||
for opt in ['-t', '-q']
|
||||
let out = split(system(GetVimCommand() .. repeat(' ' .. opt .. ' foo', 2)), "\n")
|
||||
call assert_equal(1, v:shell_error)
|
||||
call assert_equal('nvim: Too many edit arguments: "' .. opt .. '"', out[0])
|
||||
call assert_equal('More info with "nvim -h"', out[1])
|
||||
endfor
|
||||
if has('quickfix')
|
||||
" Detect invalid repeated arguments '-t foo -t foo", '-q foo -q foo'.
|
||||
for opt in ['-t', '-q']
|
||||
let out = split(system(GetVimCommand() .. repeat(' ' .. opt .. ' foo', 2)), "\n")
|
||||
call assert_equal(1, v:shell_error)
|
||||
call assert_equal('nvim: Too many edit arguments: "' .. opt .. '"', out[0])
|
||||
call assert_equal('More info with "nvim -h"', out[1])
|
||||
endfor
|
||||
endif
|
||||
|
||||
for opt in [' -cq', ' --cmd q', ' +', ' -S foo']
|
||||
let out = split(system(GetVimCommand() .. repeat(opt, 11)), "\n")
|
||||
|
||||
Reference in New Issue
Block a user