Mercurial > vim
diff src/testdir/test_search.vim @ 19958:0b42b5e50344 v8.2.0535
patch 8.2.0535: regexp patterns not fully tested
Commit: https://github.com/vim/vim/commit/4d23c52824dd2f4577eb980e7d91feed34052755
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 9 18:42:11 2020 +0200
patch 8.2.0535: regexp patterns not fully tested
Problem: Regexp patterns not fully tested.
Solution: Add more regexp tests and others. (Yegappan Lakshmanan,
closes #5901)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 09 Apr 2020 18:45:06 +0200 |
parents | c087099e9163 |
children | b07672d13ff9 |
line wrap: on
line diff
--- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -688,9 +688,7 @@ func Test_search_cmdline8() endfunc " Tests for regexp with various magic settings -func Test_search_regexp() - enew! - +func Run_search_regexp_magic_opt() put ='1 a aa abb abbccc' exe 'normal! /a*b\{2}c\+/e' . "\<CR>" call assert_equal([0, 2, 17, 0], getpos('.')) @@ -725,6 +723,18 @@ func Test_search_regexp() exe 'normal! /\V[ab]\(\[xy]\)\1' . "\<CR>" call assert_equal([0, 9, 7, 0], getpos('.')) + %d +endfunc + +func Test_search_regexp() + enew! + + set regexpengine=1 + call Run_search_regexp_magic_opt() + set regexpengine=2 + call Run_search_regexp_magic_opt() + set regexpengine& + set undolevels=100 put ='9 foobar' put ='' @@ -732,12 +742,12 @@ func Test_search_regexp() normal G exe 'normal! dv?bar?' . "\<CR>" call assert_equal('9 foo', getline('.')) - call assert_equal([0, 10, 5, 0], getpos('.')) - call assert_equal(10, line('$')) + call assert_equal([0, 2, 5, 0], getpos('.')) + call assert_equal(2, line('$')) normal u call assert_equal('9 foobar', getline('.')) - call assert_equal([0, 10, 6, 0], getpos('.')) - call assert_equal(11, line('$')) + call assert_equal([0, 2, 6, 0], getpos('.')) + call assert_equal(3, line('$')) set undolevels& enew! @@ -1547,8 +1557,12 @@ endfunc func Test_invalid_regexp() set regexpengine=1 call assert_fails("call search(repeat('\\(.\\)', 10))", 'E51:') + call assert_fails("call search('\\%(')", 'E53:') + call assert_fails("call search('\\(')", 'E54:') + call assert_fails("call search('\\)')", 'E55:') + call assert_fails("call search('x\\@#')", 'E59:') + call assert_fails('call search(''\v%(%(%(%(%(%(%(%(%(%(%(a){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}'')', 'E60:') call assert_fails("call search('a\\+*')", 'E61:') - call assert_fails("call search('x\\@#')", 'E59:') call assert_fails("call search('\\_m')", 'E63:') call assert_fails("call search('\\+')", 'E64:') call assert_fails("call search('\\1')", 'E65:') @@ -1573,6 +1587,7 @@ func Test_invalid_regexp() call assert_fails("call search('\\)')", 'E55:') call assert_fails("call search('\\z\\(\\)')", 'E66:') call assert_fails("call search('\\%[ab')", 'E69:') + call assert_fails("call search('\\%[]')", 'E70:') call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:') set regexpengine& call assert_fails("call search('\\%#=3ab')", 'E864:')