mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
vim-patch:7.4.1984
Problem: Not all quickfix features are tested.
Solution: Add a few more tests. (Yegappan Lakshmanan)
0fcc7c6dd1
This commit is contained in:
@@ -24,6 +24,11 @@ function! s:setup_commands(cchar)
|
|||||||
command! -nargs=* Xaddbuffer <mods>caddbuffer <args>
|
command! -nargs=* Xaddbuffer <mods>caddbuffer <args>
|
||||||
command! -nargs=* Xrewind <mods>crewind <args>
|
command! -nargs=* Xrewind <mods>crewind <args>
|
||||||
command! -nargs=* -bang Xnext <mods>cnext<bang> <args>
|
command! -nargs=* -bang Xnext <mods>cnext<bang> <args>
|
||||||
|
command! -nargs=* -bang Xprev <mods>cprev<bang> <args>
|
||||||
|
command! -nargs=* -bang Xfirst <mods>cfirst<bang> <args>
|
||||||
|
command! -nargs=* -bang Xlast <mods>clast<bang> <args>
|
||||||
|
command! -nargs=* -bang Xnfile <mods>cnfile<bang> <args>
|
||||||
|
command! -nargs=* -bang Xpfile <mods>cpfile<bang> <args>
|
||||||
command! -nargs=* Xexpr <mods>cexpr <args>
|
command! -nargs=* Xexpr <mods>cexpr <args>
|
||||||
command! -nargs=* Xvimgrep <mods>vimgrep <args>
|
command! -nargs=* Xvimgrep <mods>vimgrep <args>
|
||||||
command! -nargs=* Xgrep <mods> grep <args>
|
command! -nargs=* Xgrep <mods> grep <args>
|
||||||
@@ -48,6 +53,11 @@ function! s:setup_commands(cchar)
|
|||||||
command! -nargs=* Xaddbuffer <mods>laddbuffer <args>
|
command! -nargs=* Xaddbuffer <mods>laddbuffer <args>
|
||||||
command! -nargs=* Xrewind <mods>lrewind <args>
|
command! -nargs=* Xrewind <mods>lrewind <args>
|
||||||
command! -nargs=* -bang Xnext <mods>lnext<bang> <args>
|
command! -nargs=* -bang Xnext <mods>lnext<bang> <args>
|
||||||
|
command! -nargs=* -bang Xprev <mods>lprev<bang> <args>
|
||||||
|
command! -nargs=* -bang Xfirst <mods>lfirst<bang> <args>
|
||||||
|
command! -nargs=* -bang Xlast <mods>llast<bang> <args>
|
||||||
|
command! -nargs=* -bang Xnfile <mods>lnfile<bang> <args>
|
||||||
|
command! -nargs=* -bang Xpfile <mods>lpfile<bang> <args>
|
||||||
command! -nargs=* Xexpr <mods>lexpr <args>
|
command! -nargs=* Xexpr <mods>lexpr <args>
|
||||||
command! -nargs=* Xvimgrep <mods>lvimgrep <args>
|
command! -nargs=* Xvimgrep <mods>lvimgrep <args>
|
||||||
command! -nargs=* Xgrep <mods> lgrep <args>
|
command! -nargs=* Xgrep <mods> lgrep <args>
|
||||||
@@ -310,6 +320,56 @@ function Test_cbuffer()
|
|||||||
call XbufferTests('l')
|
call XbufferTests('l')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function XexprTests(cchar)
|
||||||
|
call s:setup_commands(a:cchar)
|
||||||
|
|
||||||
|
call assert_fails('Xexpr 10', 'E777:')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function Test_cexpr()
|
||||||
|
call XexprTests('c')
|
||||||
|
call XexprTests('l')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Tests for :cnext, :cprev, :cfirst, :clast commands
|
||||||
|
function Xtest_browse(cchar)
|
||||||
|
call s:setup_commands(a:cchar)
|
||||||
|
|
||||||
|
call s:create_test_file('Xqftestfile1')
|
||||||
|
call s:create_test_file('Xqftestfile2')
|
||||||
|
|
||||||
|
Xgetexpr ['Xqftestfile1:5:Line5',
|
||||||
|
\ 'Xqftestfile1:6:Line6',
|
||||||
|
\ 'Xqftestfile2:10:Line10',
|
||||||
|
\ 'Xqftestfile2:11:Line11']
|
||||||
|
|
||||||
|
Xfirst
|
||||||
|
call assert_fails('Xprev', 'E553')
|
||||||
|
call assert_fails('Xpfile', 'E553')
|
||||||
|
Xnfile
|
||||||
|
call assert_equal('Xqftestfile2', bufname('%'))
|
||||||
|
call assert_equal(10, line('.'))
|
||||||
|
Xpfile
|
||||||
|
call assert_equal('Xqftestfile1', bufname('%'))
|
||||||
|
call assert_equal(6, line('.'))
|
||||||
|
Xlast
|
||||||
|
call assert_equal('Xqftestfile2', bufname('%'))
|
||||||
|
call assert_equal(11, line('.'))
|
||||||
|
call assert_fails('Xnext', 'E553')
|
||||||
|
call assert_fails('Xnfile', 'E553')
|
||||||
|
Xrewind
|
||||||
|
call assert_equal('Xqftestfile1', bufname('%'))
|
||||||
|
call assert_equal(5, line('.'))
|
||||||
|
|
||||||
|
call delete('Xqftestfile1')
|
||||||
|
call delete('Xqftestfile2')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function Test_browse()
|
||||||
|
call Xtest_browse('c')
|
||||||
|
call Xtest_browse('l')
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:test_xhelpgrep(cchar)
|
function! s:test_xhelpgrep(cchar)
|
||||||
call s:setup_commands(a:cchar)
|
call s:setup_commands(a:cchar)
|
||||||
Xhelpgrep quickfix
|
Xhelpgrep quickfix
|
||||||
@@ -736,25 +796,61 @@ function! Test_efm_dirstack()
|
|||||||
call delete('habits1.txt')
|
call delete('habits1.txt')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" TODO:
|
" Tests for invalid error format specifies
|
||||||
" Add tests for the following formats in 'errorformat'
|
function Xinvalid_efm_Tests(cchar)
|
||||||
" %n %t %r %+ %- %O
|
call s:setup_commands(a:cchar)
|
||||||
function! Test_efm2()
|
|
||||||
let save_efm = &efm
|
let save_efm = &efm
|
||||||
|
|
||||||
" Test for invalid efm
|
set efm=%f:%l:%m,%f:%f:%l:%m
|
||||||
set efm=%L%M%N
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E372:')
|
||||||
call assert_fails('cexpr "abc.txt:1:Hello world"', 'E376:')
|
|
||||||
call assert_fails('lexpr "abc.txt:1:Hello world"', 'E376:')
|
set efm=%f:%l:%m,%f:%l:%r:%m
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E373:')
|
||||||
|
|
||||||
|
set efm=%f:%l:%m,%O:%f:%l:%m
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E373:')
|
||||||
|
|
||||||
|
set efm=%f:%l:%m,%f:%l:%*[^a-z
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E374:')
|
||||||
|
|
||||||
|
set efm=%f:%l:%m,%f:%l:%*c
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E375:')
|
||||||
|
|
||||||
|
set efm=%f:%l:%m,%L%M%N
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E376:')
|
||||||
|
|
||||||
|
set efm=%f:%l:%m,%f:%l:%m:%R
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E377:')
|
||||||
|
|
||||||
|
set efm=
|
||||||
|
call assert_fails('Xexpr "abc.txt:1:Hello world"', 'E378:')
|
||||||
|
|
||||||
|
set efm=%DEntering\ dir\ abc,%f:%l:%m
|
||||||
|
call assert_fails('Xexpr ["Entering dir abc", "abc.txt:1:Hello world"]', 'E379:')
|
||||||
|
|
||||||
|
let &efm = save_efm
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function Test_invalid_efm()
|
||||||
|
call Xinvalid_efm_Tests('c')
|
||||||
|
call Xinvalid_efm_Tests('l')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" TODO:
|
||||||
|
" Add tests for the following formats in 'errorformat'
|
||||||
|
" %r %O
|
||||||
|
function! Test_efm2()
|
||||||
|
let save_efm = &efm
|
||||||
|
|
||||||
" Test for %s format in efm
|
" Test for %s format in efm
|
||||||
set efm=%f:%s
|
set efm=%f:%s
|
||||||
cexpr 'Xtestfile:Line search text'
|
cexpr 'Xtestfile:Line search text'
|
||||||
|
|
||||||
let l = getqflist()
|
let l = getqflist()
|
||||||
call assert_equal(l[0].pattern, '^\VLine search text\$')
|
call assert_equal(l[0].pattern, '^\VLine search text\$')
|
||||||
call assert_equal(l[0].lnum, 0)
|
call assert_equal(l[0].lnum, 0)
|
||||||
|
|
||||||
|
" Test for %P, %Q and %t format specifiers
|
||||||
let lines=["[Xtestfile1]",
|
let lines=["[Xtestfile1]",
|
||||||
\ "(1,17) error: ';' missing",
|
\ "(1,17) error: ';' missing",
|
||||||
\ "(21,2) warning: variable 'z' not defined",
|
\ "(21,2) warning: variable 'z' not defined",
|
||||||
@@ -776,6 +872,34 @@ function! Test_efm2()
|
|||||||
call assert_equal(9, len(l))
|
call assert_equal(9, len(l))
|
||||||
call assert_equal(21, l[2].lnum)
|
call assert_equal(21, l[2].lnum)
|
||||||
call assert_equal(2, l[2].col)
|
call assert_equal(2, l[2].col)
|
||||||
|
call assert_equal('w', l[2].type)
|
||||||
|
call assert_equal('e', l[3].type)
|
||||||
|
|
||||||
|
" Tests for %E, %C and %Z format specifiers
|
||||||
|
let lines = ["Error 275",
|
||||||
|
\ "line 42",
|
||||||
|
\ "column 3",
|
||||||
|
\ "' ' expected after '--'"
|
||||||
|
\]
|
||||||
|
set efm=%EError\ %n,%Cline\ %l,%Ccolumn\ %c,%Z%m
|
||||||
|
cgetexpr lines
|
||||||
|
let l = getqflist()
|
||||||
|
call assert_equal(275, l[0].nr)
|
||||||
|
call assert_equal(42, l[0].lnum)
|
||||||
|
call assert_equal(3, l[0].col)
|
||||||
|
call assert_equal('E', l[0].type)
|
||||||
|
call assert_equal("\n' ' expected after '--'", l[0].text)
|
||||||
|
|
||||||
|
" Test for %>
|
||||||
|
let lines = ["Error in line 147 of foo.c:",
|
||||||
|
\"unknown variable 'i'"
|
||||||
|
\]
|
||||||
|
set efm=unknown\ variable\ %m,%E%>Error\ in\ line\ %l\ of\ %f:,%Z%m
|
||||||
|
cgetexpr lines
|
||||||
|
let l = getqflist()
|
||||||
|
call assert_equal(147, l[0].lnum)
|
||||||
|
call assert_equal('E', l[0].type)
|
||||||
|
call assert_equal("\nunknown variable 'i'", l[0].text)
|
||||||
|
|
||||||
let &efm = save_efm
|
let &efm = save_efm
|
||||||
endfunction
|
endfunction
|
||||||
|
@@ -456,7 +456,7 @@ static int included_patches[] = {
|
|||||||
// 1987 NA
|
// 1987 NA
|
||||||
// 1986,
|
// 1986,
|
||||||
// 1985 NA
|
// 1985 NA
|
||||||
// 1984,
|
1984,
|
||||||
// 1983 NA
|
// 1983 NA
|
||||||
// 1982 NA
|
// 1982 NA
|
||||||
// 1981,
|
// 1981,
|
||||||
|
Reference in New Issue
Block a user