1
0
forked from aniani/vim

patch 8.2.1295: tests 44 and 99 are old style

Problem:    Tests 44 and 99 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #6536)
This commit is contained in:
Bram Moolenaar
2020-07-26 12:52:59 +02:00
parent 37394ff752
commit 7d40b8a532
9 changed files with 130 additions and 205 deletions

View File

@@ -2311,10 +2311,9 @@ test_libvterm:
# Run individual OLD style test.
# These do not depend on the executable, compile it when needed.
test1 \
test42 test44 test49 \
test42 test49 \
test52 test59 \
test70 \
test99:
test70:
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
# Run individual NEW style test.

View File

@@ -14,9 +14,7 @@ SCRIPTS_FIRST = \
# Tests that run on all systems.
SCRIPTS_ALL = \
test42.out \
test44.out \
test70.out \
test99.out
test70.out
# Tests that run on most systems, but not on Amiga.
SCRIPTS_MORE1 = \

View File

@@ -74,7 +74,7 @@ VIMPROG = <->vim.exe
.SUFFIXES : .out .in
SCRIPT = test1.out \
test42.out test44.out test49.out test77a.out test99.out
test42.out test49.out test77a.out
# Known problems:
#

View File

@@ -1,81 +0,0 @@
Tests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test99 for exactly the same test with re=2.
STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=1
/^1
/a*b\{2}c\+/e
x/\Md\*e\{2}f\+/e
x:set nomagic
/g\*h\{2}i\+/e
x/\mj*k\{2}l\+/e
x/\vm*n{2}o+/e
x/\V^aa$
x:set magic
/\v(a)(b)\2\1\1/e
x/\V[ab]\(\[xy]\)\1
x:" Now search for multi-byte without composing char
/ม
x:" Now search for multi-byte with composing char
/ม่
x:" find word by change of word class
<>¡\<カヨ\>ã<>¯
x:" Test \%u, [\u] and friends
:" c
/\%u20ac
x:" d
/[\u4f7f\u5929]\+
x:" e
/\%U12345678
x:" f
/[\U1234abcd\u1234\uabcd]
x:" g
/\%d21879b
x:" j Test backwards search from a multi-byte char
/x
x?.
x:" k
:let @w=':%s#comb[i]nations#œ̄ṣÌ<C2A3>m̥̄ᾱ̆Ì<E280A0>#g'
:@w
:"
:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"×<>××ד\", \".\", 0, 2) " ×
:put =matchstr(\"×<>××ד\", \"..\", 0, 2) " ××
:put =matchstr(\"×<>××ד\", \".\", 0, 0) " ×<>
:put =matchstr(\"×<>××ד\", \".\", 4, -1) " ×
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
:w!
:qa!
ENDTEST
1 a aa abb abbccc
2 d dd dee deefff
3 g gg ghh ghhiii
4 j jj jkk jkklll
5 m mm mnn mnnooo
6 x ^aa$ x
7 (a)(b) abbaa
8 axx [ab]xx
9 หม่x อมx
a อมx หม่x
b ã<>¡ã«ãƒ¨ã<C2A8>¯
c x ¬â¬x
d 天使x
e ü<C3BC>…™¸y
f ü<C3BC>Н<C5A0>z
g aå•·bb
j 0123â<33>¤x
k combinations
l äö üᾱ̆Ì<E280A0>

View File

@@ -1,25 +0,0 @@
1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
6 x aa$ x
7 (a)(b) abba
8 axx ab]xx
9 หม่x อx
a อมx หx
b カヨは
c x ¬x
d 使x
e y
f z
g abb
j 012❤
k œ̄ṣ́m̥̄ᾱ̆́
l ä ö ü ᾱ̆́
ב
בג
א
ג
a
cat(

View File

@@ -1,69 +0,0 @@
Tests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.
STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^1
/a*b\{2}c\+/e
x/\Md\*e\{2}f\+/e
x:set nomagic
/g\*h\{2}i\+/e
x/\mj*k\{2}l\+/e
x/\vm*n{2}o+/e
x/\V^aa$
x:set magic
/\v(a)(b)\2\1\1/e
x/\V[ab]\(\[xy]\)\1
x:" Now search for multi-byte without composing char
/ม
x:" Now search for multi-byte with composing char
/ม่
x:" find word by change of word class
<>¡\<カヨ\>ã<>¯
x:" Test \%u, [\u] and friends
/\%u20ac
x/[\u4f7f\u5929]\+
x/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b
x:" Test backwards search from a multi-byte char
/x
x?.
x:let @w=':%s#comb[i]nations#œ̄ṣÌ<C2A3>m̥̄ᾱ̆Ì<E280A0>#g'
:@w
:"
:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"×<>××ד\", \".\", 0, 2) " ×
:put =matchstr(\"×<>××ד\", \"..\", 0, 2) " ××
:put =matchstr(\"×<>××ד\", \".\", 0, 0) " ×<>
:put =matchstr(\"×<>××ד\", \".\", 4, -1) " ×
:w!
:qa!
ENDTEST
1 a aa abb abbccc
2 d dd dee deefff
3 g gg ghh ghhiii
4 j jj jkk jkklll
5 m mm mnn mnnooo
6 x ^aa$ x
7 (a)(b) abbaa
8 axx [ab]xx
9 หม่x อมx
a อมx หม่x
b ã<>¡ã«ãƒ¨ã<C2A8>¯
c x ¬â¬x
d 天使x
e ü<C3BC>…™¸y
f ü<C3BC>Н<C5A0>z
g aå•·bb
j 0123â<33>¤x
k combinations
l äö üᾱ̆Ì<E280A0>

View File

@@ -1,23 +0,0 @@
1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
6 x aa$ x
7 (a)(b) abba
8 axx ab]xx
9 หม่x อx
a อมx หx
b カヨは
c x ¬x
d 使x
e y
f z
g abb
j 012❤
k œ̄ṣ́m̥̄ᾱ̆́
l ä ö ü ᾱ̆́
ב
בג
א
ג

View File

@@ -377,4 +377,128 @@ func Test_regexp_ignore_case()
set regexpengine&
endfunc
" Tests for regexp with multi-byte encoding and various magic settings
func Run_regexp_multibyte_magic()
let text =<< trim END
1 a aa abb abbccc
2 d dd dee deefff
3 g gg ghh ghhiii
4 j jj jkk jkklll
5 m mm mnn mnnooo
6 x ^aa$ x
7 (a)(b) abbaa
8 axx [ab]xx
9 鉊徇腹鉆ū 鉊冢腹x
a 鉊冢腹x 鉊徇腹鉆ū
b <20><EFBFBD><EFBD9E><EFBFBD>
c x <EFBFBD>
d 憭拐蝙x
e <20><>烵y
f <20><><EFBFBD>z
g a<EFBFBD>搓b
j 0123<EFBFBD>
k combinations
l 瓣繹 羹帢<EFBFBD><EFBFBD><EFBFBD>
END
new
call setline(1, text)
exe 'normal /a*b\{2}c\+/e' .. "\<CR>x"
call assert_equal('1 a aa abb abbcc', getline('.'))
exe 'normal /\Md\*e\{2}f\+/e' .. "\<CR>x"
call assert_equal('2 d dd dee deeff', getline('.'))
set nomagic
exe 'normal /g\*h\{2}i\+/e' .. "\<CR>x"
call assert_equal('3 g gg ghh ghhii', getline('.'))
exe 'normal /\mj*k\{2}l\+/e' .. "\<CR>x"
call assert_equal('4 j jj jkk jkkll', getline('.'))
exe 'normal /\vm*n{2}o+/e' .. "\<CR>x"
call assert_equal('5 m mm mnn mnnoo', getline('.'))
exe 'normal /\V^aa$/' .. "\<CR>x"
call assert_equal('6 x aa$ x', getline('.'))
set magic
exe 'normal /\v(a)(b)\2\1\1/e' .. "\<CR>x"
call assert_equal('7 (a)(b) abba', getline('.'))
exe 'normal /\V[ab]\(\[xy]\)\1' .. "\<CR>x"
call assert_equal('8 axx ab]xx', getline('.'))
" search for multi-byte without composing char
exe 'normal /鉊<>' .. "\<CR>x"
call assert_equal('9 鉊徇腹鉆ū 鉊軍', getline('.'))
" search for multi-byte with composing char
exe 'normal /鉊﹤<E9898A>' .. "\<CR>x"
call assert_equal('a 鉊冢腹x 鉊咦', getline('.'))
" find word by change of word class
exe 'normal /<2F><<3C><EFBFBD>\><3E><>' .. "\<CR>x"
call assert_equal('b <20><EFBFBD><E68092><EFBFBD>', getline('.'))
" Test \%u, [\u] and friends
" c
exe 'normal /\%u20ac' .. "\<CR>x"
call assert_equal('c x 竅x', getline('.'))
" d
exe 'normal /[\u4f7f\u5929]\+' .. "\<CR>x"
call assert_equal('d 雿篛', getline('.'))
" e
exe 'normal /\%U12345678' .. "\<CR>x"
call assert_equal('e y', getline('.'))
" f
exe 'normal /[\U1234abcd\u1234\uabcd]' .. "\<CR>x"
call assert_equal('f z', getline('.'))
" g
exe 'normal /\%d21879b' .. "\<CR>x"
call assert_equal('g abb', getline('.'))
" j Test backwards search from a multi-byte char
exe "normal /x\<CR>x?.\<CR>x"
call assert_equal('j 012<31><32>', getline('.'))
" k
let @w=':%s#comb[i]nations#<23><>廜␌<E5BB9C><EFBFBD><EFBFBD><E5B8A2><EFBFBD>#g'
@w
call assert_equal('k <20><>廜␌<E5BB9C><EFBFBD><EFBFBD><E5B8A2><EFBFBD>', getline(18))
close!
endfunc
func Test_regexp_multibyte_magic()
set regexpengine=1
call Run_regexp_multibyte_magic()
set regexpengine=2
call Run_regexp_multibyte_magic()
set regexpengine&
endfunc
" Test for 7.3.192
" command ":s/ \?/ /g" splits multi-byte characters into bytes
func Test_split_multibyte_to_bytes()
new
call setline(1, 'l 瓣繹 羹帢<E7BEB9><E5B8A2><EFBFBD>')
s/ \?/ /g
call assert_equal(' l 瓣 繹 羹 帢<><E5B8A2><EFBFBD>', getline(1))
close!
endfunc
" Test for matchstr() with multibyte characters
func Test_matchstr_multibyte()
new
call assert_equal('<27>', matchstr("<22><><EFBFBD><EFBFBD>", ".", 0, 2))
call assert_equal('<27><>', matchstr("<22><><EFBFBD><EFBFBD>", "..", 0, 2))
call assert_equal('<27>', matchstr("<22><><EFBFBD><EFBFBD>", ".", 0, 0))
call assert_equal('<27>', matchstr("<22><><EFBFBD><EFBFBD>", ".", 4, -1))
close!
endfunc
" Test for 7.4.636
" A search with end offset gets stuck at end of file.
func Test_search_with_end_offset()
new
call setline(1, ['', 'dog(a', 'cat('])
exe "normal /(/e+" .. "\<CR>"
normal "ayn
call assert_equal("a\ncat(", @a)
close!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1295,
/**/
1294,
/**/