Mercurial > vim
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 |