changeset 21489:c9a1b3b66fb7 v8.2.1295

patch 8.2.1295: tests 44 and 99 are old style Commit: https://github.com/vim/vim/commit/7d40b8a532fa2ce768f200ab118870d17875a7fe Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 26 12:52:59 2020 +0200 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 https://github.com/vim/vim/issues/6536)
author Bram Moolenaar <Bram@vim.org>
date Sun, 26 Jul 2020 13:00:05 +0200
parents d1d66e29c0e9
children 59375f23e24b
files src/Makefile src/testdir/Make_all.mak src/testdir/Make_vms.mms src/testdir/test44.in src/testdir/test44.ok src/testdir/test99.in src/testdir/test99.ok src/testdir/test_regexp_utf8.vim src/version.c
diffstat 9 files changed, 130 insertions(+), 205 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -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.
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -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 = \
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -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:
 #
deleted file mode 100644
--- a/src/testdir/test44.in
+++ /dev/null
@@ -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#œ̄ṣ́m̥̄ᾱ̆́#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 ちカヨは
-c x ¬€x
-d 天使x
-e y
-f z
-g a啷bb
-j 0123❤x
-k combinations
-l äö üᾱ̆́
deleted file mode 100644
--- a/src/testdir/test44.ok
+++ /dev/null
@@ -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(
deleted file mode 100644
--- a/src/testdir/test99.in
+++ /dev/null
@@ -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#œ̄ṣ́m̥̄ᾱ̆́#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 ちカヨは
-c x ¬€x
-d 天使x
-e y
-f z
-g a啷bb
-j 0123❤x
-k combinations
-l äö üᾱ̆́
deleted file mode 100644
--- a/src/testdir/test99.ok
+++ /dev/null
@@ -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 ä ö ü ᾱ̆́

-בג

--- a/src/testdir/test_regexp_utf8.vim
+++ b/src/testdir/test_regexp_utf8.vim
@@ -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 อมx
+    a อมx หม่x
+    b ちカヨは
+    c x ¬€x
+    d 天使x
+    e y
+    f z
+    g a啷bb
+    j 0123❤x
+    k combinations
+    l äö üᾱ̆́
+  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 หม่x อx', getline('.'))
+
+  " search for multi-byte with composing char
+  exe 'normal /ม่' .. "\<CR>x"
+  call assert_equal('a อมx หx', getline('.'))
+
+  " find word by change of word class
+  exe 'normal /ち\<カヨ\>は' .. "\<CR>x"
+  call assert_equal('b カヨは', 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 使x', 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❤', getline('.'))
+  " k
+  let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g'
+  @w
+  call assert_equal('k œ̄ṣ́m̥̄ᾱ̆́', 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 äö üᾱ̆́')
+  s/ \?/ /g
+  call assert_equal(' l ä ö ü ᾱ̆́', getline(1))
+  close!
+endfunc
+
+" Test for matchstr() with multibyte characters
+func Test_matchstr_multibyte()
+  new
+  call assert_equal('ב', matchstr("אבגד", ".", 0, 2))
+  call assert_equal('בג', matchstr("אבגד", "..", 0, 2))
+  call assert_equal('א', matchstr("אבגד", ".", 0, 0))
+  call assert_equal('ג', matchstr("אבגד", ".", 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
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1295,
+/**/
     1294,
 /**/
     1293,