forked from aniani/vim
patch 8.2.0028: searchpairpos() is not tested
Problem: Searchpairpos() is not tested. Solution: Add tests. Also improve searchpair() testing. (Dominique Pelle, closes #5388)
This commit is contained in:
parent
aa2f0ee639
commit
3ba35409a6
@ -57,7 +57,7 @@ func Test_search_cmdline()
|
||||
call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
|
||||
call assert_equal(' 8 them', getline('.'))
|
||||
:1
|
||||
" eigth match
|
||||
" eighth match
|
||||
call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
|
||||
call assert_equal(' 9 these', getline('.'))
|
||||
:1
|
||||
@ -99,7 +99,7 @@ func Test_search_cmdline()
|
||||
call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
|
||||
call assert_equal(' 8 them', getline('.'))
|
||||
:1
|
||||
" eigth match
|
||||
" eighth match
|
||||
call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
|
||||
call assert_equal(' 9 these', getline('.'))
|
||||
:1
|
||||
@ -290,15 +290,84 @@ endfunc
|
||||
|
||||
func Test_searchpair()
|
||||
new
|
||||
call setline(1, ['other code here', '', '[', '" cursor here', ']'])
|
||||
call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
|
||||
|
||||
4
|
||||
let a = searchpair('\[','',']','bW')
|
||||
call assert_equal(3, a)
|
||||
call assert_equal(3, searchpair('\[', '', ']', 'bW'))
|
||||
call assert_equal([0, 3, 2, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal(2, searchpair('\[', '', ']', 'bWr'))
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal(1, searchpair('\[', '', ']', 'bWm'))
|
||||
call assert_equal([0, 3, 2, 0], getpos('.'))
|
||||
4|norm ^
|
||||
call assert_equal(5, searchpair('\[', '', ']', 'Wn'))
|
||||
call assert_equal([0, 4, 2, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal(2, searchpair('\[', '', ']', 'bW',
|
||||
\ 'getline(".") =~ "^\\s*\["'))
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
set nomagic
|
||||
4
|
||||
let a = searchpair('\[','',']','bW')
|
||||
call assert_equal(3, a)
|
||||
call assert_equal(3, searchpair('\[', '', ']', 'bW'))
|
||||
call assert_equal([0, 3, 2, 0], getpos('.'))
|
||||
set magic
|
||||
4|norm ^
|
||||
call assert_equal(0, searchpair('{', '', '}', 'bW'))
|
||||
call assert_equal([0, 4, 2, 0], getpos('.'))
|
||||
|
||||
%d
|
||||
call setline(1, ['if 1', ' if 2', ' else', ' endif 2', 'endif 1'])
|
||||
|
||||
/\<if 1
|
||||
call assert_equal(5, searchpair('\<if\>', '\<else\>', '\<endif\>', 'W'))
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
/\<if 2
|
||||
call assert_equal(3, searchpair('\<if\>', '\<else\>', '\<endif\>', 'W'))
|
||||
call assert_equal([0, 3, 3, 0], getpos('.'))
|
||||
|
||||
q!
|
||||
endfunc
|
||||
|
||||
func Test_searchpairpos()
|
||||
new
|
||||
call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
|
||||
|
||||
4
|
||||
call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
|
||||
call assert_equal([0, 3, 2, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
4|norm ^
|
||||
call assert_equal([5, 2], searchpairpos('\[', '', ']', 'Wn'))
|
||||
call assert_equal([0, 4, 2, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bW',
|
||||
\ 'getline(".") =~ "^\\s*\["'))
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
4
|
||||
call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
set nomagic
|
||||
4
|
||||
call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
|
||||
call assert_equal([0, 3, 2, 0], getpos('.'))
|
||||
set magic
|
||||
4|norm ^
|
||||
call assert_equal([0, 0], searchpairpos('{', '', '}', 'bW'))
|
||||
call assert_equal([0, 4, 2, 0], getpos('.'))
|
||||
|
||||
%d
|
||||
call setline(1, ['if 1', ' if 2', ' else', ' endif 2', 'endif 1'])
|
||||
/\<if 1
|
||||
call assert_equal([5, 1], searchpairpos('\<if\>', '\<else\>', '\<endif\>', 'W'))
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
/\<if 2
|
||||
call assert_equal([3, 3], searchpairpos('\<if\>', '\<else\>', '\<endif\>', 'W'))
|
||||
call assert_equal([0, 3, 3, 0], getpos('.'))
|
||||
|
||||
q!
|
||||
endfunc
|
||||
|
||||
@ -310,6 +379,20 @@ func Test_searchpair_errors()
|
||||
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 0, 99, 100)", 'E475: Invalid argument: 0')
|
||||
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', -99, 100)", 'E475: Invalid argument: -99')
|
||||
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', 99, -100)", 'E475: Invalid argument: -100')
|
||||
call assert_fails("call searchpair('start', 'middle', 'end', 'e')", 'E475: Invalid argument: e')
|
||||
call assert_fails("call searchpair('start', 'middle', 'end', 'sn')", 'E475: Invalid argument: sn')
|
||||
endfunc
|
||||
|
||||
func Test_searchpairpos_errors()
|
||||
call assert_fails("call searchpairpos([0], 'middle', 'end', 'bW', 'skip', 99, 100)", 'E730: using List as a String')
|
||||
call assert_fails("call searchpairpos('start', {-> 0}, 'end', 'bW', 'skip', 99, 100)", 'E729: using Funcref as a String')
|
||||
call assert_fails("call searchpairpos('start', 'middle', {'one': 1}, 'bW', 'skip', 99, 100)", 'E731: using Dictionary as a String')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'flags', 'skip', 99, 100)", 'E475: Invalid argument: flags')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'bW', 0, 99, 100)", 'E475: Invalid argument: 0')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'bW', 'func', -99, 100)", 'E475: Invalid argument: -99')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'bW', 'func', 99, -100)", 'E475: Invalid argument: -100')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'e')", 'E475: Invalid argument: e')
|
||||
call assert_fails("call searchpairpos('start', 'middle', 'end', 'sn')", 'E475: Invalid argument: sn')
|
||||
endfunc
|
||||
|
||||
func Test_searchpair_skip()
|
||||
|
@ -742,6 +742,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
28,
|
||||
/**/
|
||||
27,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user