To: vim_dev@googlegroups.com Subject: Patch 8.2.1736 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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': [['', '\'], ['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': [['', '\'], ['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 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 set cpo-=k + call assert_fails('call feedkeys(":map \\\\%(\\\"\", "xt")', 'E53:') + unmap 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\\" 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 -- Bram@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 ///