Patch 8.2.1736
Problem: Failure to compile a pattern not tested much.
Solution: Add tests where a pattern fails to compile. (Yegappan Lakshmanan,
closes #7004)
Files: src/testdir/gen_opt_test.vim, src/testdir/test_arglist.vim,
src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
src/testdir/test_checkpath.vim, src/testdir/test_cmdline.vim,
src/testdir/test_debugger.vim, src/testdir/test_functions.vim,
src/testdir/test_history.vim, src/testdir/test_listdict.vim,
src/testdir/test_options.vim, src/testdir/test_search_stat.vim,
src/testdir/test_sort.vim, src/testdir/test_substitute.vim,
src/testdir/test_syntax.vim, src/testdir/test_tagjump.vim,
src/testdir/test_user_func.vim
*** ../vim-8.2.1735/src/testdir/gen_opt_test.vim 2020-06-10 21:46:56.387670023 +0200
--- src/testdir/gen_opt_test.vim 2020-09-23 22:29:29.657383645 +0200
***************
*** 73,79 ****
\ 'buftype': [['', 'help', 'nofile'], ['xxx', 'help,nofile']],
\ 'casemap': [['', 'internal'], ['xxx']],
\ 'cedit': [['', '\<Esc>'], ['xxx', 'f']],
! \ 'clipboard': [['', 'unnamed', 'autoselect,unnamed', 'html', 'exclude:vimdisplay'], ['xxx', '\ze*']],
\ 'colorcolumn': [['', '8', '+2'], ['xxx']],
\ 'comments': [['', 'b:#'], ['xxx']],
\ 'commentstring': [['', '/*%s*/'], ['xxx']],
--- 73,79 ----
\ 'buftype': [['', 'help', 'nofile'], ['xxx', 'help,nofile']],
\ 'casemap': [['', 'internal'], ['xxx']],
\ 'cedit': [['', '\<Esc>'], ['xxx', 'f']],
! \ 'clipboard': [['', 'unnamed', 'autoselect,unnamed', 'html', 'exclude:vimdisplay'], ['xxx', '\ze*', 'exclude:\\%(']],
\ 'colorcolumn': [['', '8', '+2'], ['xxx']],
\ 'comments': [['', 'b:#'], ['xxx']],
\ 'commentstring': [['', '/*%s*/'], ['xxx']],
*** ../vim-8.2.1735/src/testdir/test_arglist.vim 2020-08-17 19:34:06.961427079 +0200
--- src/testdir/test_arglist.vim 2020-09-23 22:29:29.657383645 +0200
***************
*** 425,430 ****
--- 425,431 ----
call assert_equal(['b'], argv())
call assert_fails('argdelete', 'E610:')
call assert_fails('1,100argdelete', 'E16:')
+ call assert_fails('argdel /\)/', 'E55:')
call Reset_arglist()
args a b c d
*** ../vim-8.2.1735/src/testdir/test_autocmd.vim 2020-09-04 21:18:40.480161935 +0200
--- src/testdir/test_autocmd.vim 2020-09-23 22:29:29.657383645 +0200
***************
*** 2520,2525 ****
--- 2520,2526 ----
call assert_fails('doautocmd * BufEnter', 'E217:')
call assert_fails('augroup! x1a2b3', 'E367:')
call assert_fails('autocmd BufNew <buffer=999> pwd', 'E680:')
+ call assert_fails('autocmd BufNew \) set ff=unix', 'E55:')
endfunc
" Test for deep nesting of autocmds
*** ../vim-8.2.1735/src/testdir/test_buffer.vim 2020-07-21 19:44:44.042389584 +0200
--- src/testdir/test_buffer.vim 2020-09-23 22:29:29.657383645 +0200
***************
*** 138,143 ****
--- 138,144 ----
%bwipe!
call assert_fails('bdelete 5', 'E516:')
call assert_fails('1,1bdelete 1 2', 'E488:')
+ call assert_fails('bdelete \)', 'E55:')
" Deleting a unlisted and unloaded buffer
edit Xfile1
*** ../vim-8.2.1735/src/testdir/test_checkpath.vim 2020-08-12 18:50:31.871655841 +0200
--- src/testdir/test_checkpath.vim 2020-09-23 22:29:29.657383645 +0200
***************
*** 103,106 ****
--- 103,121 ----
set includeexpr&
endfunc
+ " Test for invalid regex in 'include' and 'define' options
+ func Test_checkpath_errors()
+ let save_include = &include
+ set include=\\%(
+ call assert_fails('checkpath', 'E53:')
+ let &include = save_include
+
+ let save_define = &define
+ set define=\\%(
+ call assert_fails('dsearch abc', 'E53:')
+ let &define = save_define
+
+ call assert_fails('psearch \%(', 'E53:')
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.1735/src/testdir/test_cmdline.vim 2020-09-07 22:05:24.465609726 +0200
--- src/testdir/test_cmdline.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 185,190 ****
--- 185,192 ----
unmap <Left>
set cpo-=k
+ call assert_fails('call feedkeys(":map \\\\%(\<Tab>\<Home>\"\<CR>", "xt")', 'E53:')
+
unmap <Middle>x
set cpo&vim
endfunc
*** ../vim-8.2.1735/src/testdir/test_debugger.vim 2020-08-22 16:04:49.237415175 +0200
--- src/testdir/test_debugger.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 339,344 ****
--- 339,345 ----
call delete('Xtest.vim')
%bw!
call assert_fails('breakadd here', 'E32:')
+ call assert_fails('breakadd file Xtest.vim /\)/', 'E55:')
endfunc
func Test_Backtrace_Through_Source()
*** ../vim-8.2.1735/src/testdir/test_functions.vim 2020-09-22 21:55:16.214978662 +0200
--- src/testdir/test_functions.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 973,978 ****
--- 973,979 ----
call assert_equal(4, match('testing', 'ing', -1))
call assert_fails("let x=match('testing', 'ing', 0, [])", 'E745:')
call assert_equal(-1, match(test_null_list(), 2))
+ call assert_equal(-1, match('abc', '\\%('))
endfunc
func Test_matchend()
*** ../vim-8.2.1735/src/testdir/test_history.vim 2020-03-02 20:54:19.323757498 +0100
--- src/testdir/test_history.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 95,100 ****
--- 95,101 ----
call assert_fails('call histnr([])', 'E730:')
call assert_fails('history xyz', 'E488:')
call assert_fails('history ,abc', 'E488:')
+ call assert_fails('call histdel(":", "\\%(")', 'E53:')
endfunction
function Test_Search_history_window()
*** ../vim-8.2.1735/src/testdir/test_listdict.vim 2020-09-16 21:08:23.646361178 +0200
--- src/testdir/test_listdict.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 753,758 ****
--- 753,759 ----
call assert_equal(['', 'a', '', 'b', '', 'c', ''], split('abc', '\zs', 1))
call assert_fails("call split('abc', [])", 'E730:')
call assert_fails("call split('abc', 'b', [])", 'E745:')
+ call assert_equal(['abc'], split('abc', '\\%('))
endfunc
" compare recursively linked list and dict
*** ../vim-8.2.1735/src/testdir/test_options.vim 2020-09-12 14:53:45.802973526 +0200
--- src/testdir/test_options.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 411,416 ****
--- 411,417 ----
call assert_fails('set pyxversion=6', 'E474:')
endif
call assert_fails("let &tabstop='ab'", 'E521:')
+ call assert_fails('set spellcapcheck=%\\(', 'E54:')
endfunc
func CheckWasSet(name)
*** ../vim-8.2.1735/src/testdir/test_search_stat.vim 2020-08-12 18:50:31.887655765 +0200
--- src/testdir/test_search_stat.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 260,265 ****
--- 260,273 ----
func Test_searchcount_fails()
call assert_fails('echo searchcount("boo!")', 'E715:')
+ call assert_fails('echo searchcount({"timeout" : []})', 'E745:')
+ call assert_fails('echo searchcount({"maxcount" : []})', 'E745:')
+ call assert_fails('echo searchcount({"pattern" : []})', 'E730:')
+ call assert_fails('echo searchcount({"pos" : 1})', 'E475:')
+ call assert_fails('echo searchcount({"pos" : [1]})', 'E475:')
+ call assert_fails('echo searchcount({"pos" : [[], 2, 3]})', 'E745:')
+ call assert_fails('echo searchcount({"pos" : [1, [], 3]})', 'E745:')
+ call assert_fails('echo searchcount({"pos" : [1, 2, []]})', 'E745:')
endfunc
func Test_searchcount_in_statusline()
*** ../vim-8.2.1735/src/testdir/test_sort.vim 2020-08-12 18:50:31.887655765 +0200
--- src/testdir/test_sort.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 1256,1261 ****
--- 1256,1262 ----
call assert_fails('sort no', 'E474:')
call assert_fails('sort c', 'E475:')
call assert_fails('sort #pat%', 'E654:')
+ call assert_fails('sort /\%(/', 'E53:')
enew!
endfunc
*** ../vim-8.2.1735/src/testdir/test_substitute.vim 2020-09-06 15:14:42.217505521 +0200
--- src/testdir/test_substitute.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 246,251 ****
--- 246,252 ----
call assert_fails("let s=substitute('abcda', [], 'A', 'g')", 'E730:')
call assert_fails("let s=substitute('abcda', 'a', [], 'g')", 'E730:')
call assert_fails("let s=substitute('abcda', 'a', 'A', [])", 'E730:')
+ call assert_fails("let s=substitute('abc', '\\%(', 'A', 'g')", 'E53:')
bwipe!
endfunc
*** ../vim-8.2.1735/src/testdir/test_syntax.vim 2020-09-13 22:37:30.576176018 +0200
--- src/testdir/test_syntax.vim 2020-09-23 22:29:29.661383633 +0200
***************
*** 373,378 ****
--- 373,379 ----
call AssertFails('syntax cluster contains=Abc', 'E400:')
call AssertFails("syntax match Character /'.'", 'E401:')
call AssertFails("syntax match Character /'.'/a", 'E402:')
+ call assert_fails('syntax sync linecont /\%(/', 'E53:')
call assert_fails('syntax sync linecont /pat', 'E404:')
call assert_fails('syntax sync linecont', 'E404:')
call assert_fails('syntax sync linecont /pat1/ linecont /pat2/', 'E403:')
***************
*** 382,387 ****
--- 383,389 ----
call AssertFails('syntax match ccFoo "Foo" nextgroup=ALLBUT,F', 'E407:')
call AssertFails('syntax region Block start="{" contains=F,ALLBUT', 'E408:')
call AssertFails("syntax match Characters contains=a.*x /'.'/", 'E409:')
+ call assert_fails('syntax match Search /abc/ contains=ALLBUT,/\%(/', 'E53:')
endfunc
func Test_syn_sync()
*** ../vim-8.2.1735/src/testdir/test_tagjump.vim 2020-09-04 21:18:40.488161918 +0200
--- src/testdir/test_tagjump.vim 2020-09-23 22:29:29.665383620 +0200
***************
*** 184,189 ****
--- 184,193 ----
call search("start")
exe "normal! 5\<C-W>\<C-I>"
call assert_equal(" start OK if found this line", getline('.'))
+
+ " invalid tag search pattern
+ call assert_fails('tag /\%(/', 'E426:')
+
enew! | only
call delete('Xtestfile')
call delete('Xinclude')
*** ../vim-8.2.1735/src/testdir/test_user_func.vim 2020-09-04 21:18:40.492161906 +0200
--- src/testdir/test_user_func.vim 2020-09-23 22:29:29.665383620 +0200
***************
*** 410,415 ****
--- 410,418 ----
call writefile(['func foo#Bar()', 'return 1', 'endfunc'], 'Xscript')
call assert_fails('source Xscript', 'E746:')
call delete('Xscript')
+
+ " Try to list functions using an invalid search pattern
+ call assert_fails('function /\%(/', 'E53:')
endfunc
" Test for deleting a function
*** ../vim-8.2.1735/src/version.c 2020-09-23 22:27:18.457796736 +0200
--- src/version.c 2020-09-23 22:30:53.749129872 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 1736,
/**/
--
Your company is doomed if your primary product is overhead transparencies.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language --
http://www.Zimbu.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///