comparison 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
comparison
equal deleted inserted replaced
19957:6538d2040eb6 19958:0b42b5e50344
686 686
687 bwipe! 687 bwipe!
688 endfunc 688 endfunc
689 689
690 " Tests for regexp with various magic settings 690 " Tests for regexp with various magic settings
691 func Test_search_regexp() 691 func Run_search_regexp_magic_opt()
692 enew!
693
694 put ='1 a aa abb abbccc' 692 put ='1 a aa abb abbccc'
695 exe 'normal! /a*b\{2}c\+/e' . "\<CR>" 693 exe 'normal! /a*b\{2}c\+/e' . "\<CR>"
696 call assert_equal([0, 2, 17, 0], getpos('.')) 694 call assert_equal([0, 2, 17, 0], getpos('.'))
697 695
698 put ='2 d dd dee deefff' 696 put ='2 d dd dee deefff'
722 call assert_equal([0, 8, 14, 0], getpos('.')) 720 call assert_equal([0, 8, 14, 0], getpos('.'))
723 721
724 put ='8 axx [ab]xx' 722 put ='8 axx [ab]xx'
725 exe 'normal! /\V[ab]\(\[xy]\)\1' . "\<CR>" 723 exe 'normal! /\V[ab]\(\[xy]\)\1' . "\<CR>"
726 call assert_equal([0, 9, 7, 0], getpos('.')) 724 call assert_equal([0, 9, 7, 0], getpos('.'))
725
726 %d
727 endfunc
728
729 func Test_search_regexp()
730 enew!
731
732 set regexpengine=1
733 call Run_search_regexp_magic_opt()
734 set regexpengine=2
735 call Run_search_regexp_magic_opt()
736 set regexpengine&
727 737
728 set undolevels=100 738 set undolevels=100
729 put ='9 foobar' 739 put ='9 foobar'
730 put ='' 740 put =''
731 exe "normal! a\<C-G>u\<Esc>" 741 exe "normal! a\<C-G>u\<Esc>"
732 normal G 742 normal G
733 exe 'normal! dv?bar?' . "\<CR>" 743 exe 'normal! dv?bar?' . "\<CR>"
734 call assert_equal('9 foo', getline('.')) 744 call assert_equal('9 foo', getline('.'))
735 call assert_equal([0, 10, 5, 0], getpos('.')) 745 call assert_equal([0, 2, 5, 0], getpos('.'))
736 call assert_equal(10, line('$')) 746 call assert_equal(2, line('$'))
737 normal u 747 normal u
738 call assert_equal('9 foobar', getline('.')) 748 call assert_equal('9 foobar', getline('.'))
739 call assert_equal([0, 10, 6, 0], getpos('.')) 749 call assert_equal([0, 2, 6, 0], getpos('.'))
740 call assert_equal(11, line('$')) 750 call assert_equal(3, line('$'))
741 751
742 set undolevels& 752 set undolevels&
743 enew! 753 enew!
744 endfunc 754 endfunc
745 755
1545 1555
1546 " Test for invalid regular expressions 1556 " Test for invalid regular expressions
1547 func Test_invalid_regexp() 1557 func Test_invalid_regexp()
1548 set regexpengine=1 1558 set regexpengine=1
1549 call assert_fails("call search(repeat('\\(.\\)', 10))", 'E51:') 1559 call assert_fails("call search(repeat('\\(.\\)', 10))", 'E51:')
1560 call assert_fails("call search('\\%(')", 'E53:')
1561 call assert_fails("call search('\\(')", 'E54:')
1562 call assert_fails("call search('\\)')", 'E55:')
1563 call assert_fails("call search('x\\@#')", 'E59:')
1564 call assert_fails('call search(''\v%(%(%(%(%(%(%(%(%(%(%(a){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}'')', 'E60:')
1550 call assert_fails("call search('a\\+*')", 'E61:') 1565 call assert_fails("call search('a\\+*')", 'E61:')
1551 call assert_fails("call search('x\\@#')", 'E59:')
1552 call assert_fails("call search('\\_m')", 'E63:') 1566 call assert_fails("call search('\\_m')", 'E63:')
1553 call assert_fails("call search('\\+')", 'E64:') 1567 call assert_fails("call search('\\+')", 'E64:')
1554 call assert_fails("call search('\\1')", 'E65:') 1568 call assert_fails("call search('\\1')", 'E65:')
1555 call assert_fails("call search('\\z\\(\\)')", 'E66:') 1569 call assert_fails("call search('\\z\\(\\)')", 'E66:')
1556 call assert_fails("call search('\\z2')", 'E67:') 1570 call assert_fails("call search('\\z2')", 'E67:')
1571 call assert_fails("call search('\\%(')", 'E53:') 1585 call assert_fails("call search('\\%(')", 'E53:')
1572 call assert_fails("call search('\\(')", 'E54:') 1586 call assert_fails("call search('\\(')", 'E54:')
1573 call assert_fails("call search('\\)')", 'E55:') 1587 call assert_fails("call search('\\)')", 'E55:')
1574 call assert_fails("call search('\\z\\(\\)')", 'E66:') 1588 call assert_fails("call search('\\z\\(\\)')", 'E66:')
1575 call assert_fails("call search('\\%[ab')", 'E69:') 1589 call assert_fails("call search('\\%[ab')", 'E69:')
1590 call assert_fails("call search('\\%[]')", 'E70:')
1576 call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:') 1591 call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:')
1577 set regexpengine& 1592 set regexpengine&
1578 call assert_fails("call search('\\%#=3ab')", 'E864:') 1593 call assert_fails("call search('\\%#=3ab')", 'E864:')
1579 endfunc 1594 endfunc
1580 1595