Patch 8.0.1221
Problem: Still too many old style tests.
Solution: Convert a few more tests to new style. (Yegappan Lakshmanan,
closes #2256)
Files: src/Makefile, src/testdir/Make_all.mak,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
src/testdir/main.aap, src/testdir/test19.in,
src/testdir/test19.ok, src/testdir/test20.in,
src/testdir/test20.ok, src/testdir/test25.in,
src/testdir/test25.ok, src/testdir/test28.in,
src/testdir/test28.ok, src/testdir/test32.in,
src/testdir/test32.ok, src/testdir/test38.in,
src/testdir/test38.ok, src/testdir/test66.in,
src/testdir/test66.ok, src/testdir/test79.in,
src/testdir/test79.ok, src/testdir/test_ins_complete.vim,
src/testdir/test_source_utf8.vim, src/testdir/test_substitute.vim,
src/testdir/test_tab.vim, src/testdir/test_tagjump.vim,
src/testdir/test_undo.vim, src/testdir/test_visual.vim
*** ../vim-8.0.1220/src/Makefile 2017-10-22 14:23:40.120199236 +0200
--- src/Makefile 2017-10-26 20:01:41.557329760 +0200
***************
*** 2100,2112 ****
test_listchars \
test_search_mbyte \
test_wordcount \
! test3 test11 test12 test14 test15 test17 test19 \
! test20 test25 test28 test29 \
! test30 test32 test36 test37 test38 test39 \
test40 test42 test44 test45 test48 test49 \
test50 test52 test55 test59 \
! test64 test66 test68 test69 \
! test70 test72 test73 test77 test79 \
test83 test85 test86 test87 test88 \
test94 test95 test99 test108:
cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected]
VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
--- 2101,2112 ----
test_listchars \
test_search_mbyte \
test_wordcount \
! test3 test11 test12 test14 test15 test17 \
! test29 test30 test36 test37 test39 \
test40 test42 test44 test45 test48 test49 \
test50 test52 test55 test59 \
! test64 test68 test69 \
! test70 test72 test73 test77 \
test83 test85 test86 test87 test88 \
test94 test95 test99 test108:
cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected]
VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
*** ../vim-8.0.1220/src/testdir/Make_all.mak 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/Make_all.mak 2017-10-26 19:57:28.171059301 +0200
***************
*** 16,28 ****
test3.out \
test14.out \
test15.out \
- test19.out \
- test20.out \
- test28.out \
test29.out \
test36.out \
test37.out \
- test38.out \
test39.out \
test40.out \
test42.out \
--- 16,24 ----
***************
*** 31,42 ****
test48.out \
test55.out \
test64.out \
- test66.out \
test68.out \
test69.out \
test70.out \
test73.out \
- test79.out \
test88.out \
test94.out \
test95.out \
--- 27,36 ----
***************
*** 65,71 ****
# Tests that run on most systems, but not on Amiga and DOS/Windows.
SCRIPTS_MORE2 = \
test12.out \
- test25.out \
test49.out
--- 59,64 ----
***************
*** 73,79 ****
SCRIPTS_MORE4 = \
test17.out \
test30.out \
- test32.out \
test59.out \
test72.out \
test83.out
--- 66,71 ----
***************
*** 129,134 ****
--- 121,127 ----
test_hlsearch.res \
test_increment.res \
test_increment_dbcs.res \
+ test_ins_complete.res \
test_job_fails.res \
test_json.res \
test_langmap.res \
***************
*** 173,178 ****
--- 166,172 ----
test_substitute.res \
test_syntax.res \
test_system.res \
+ test_tab.res \
test_tcl.res \
test_terminal.res \
test_terminal_fail.res \
*** ../vim-8.0.1220/src/testdir/Make_amiga.mak 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/Make_amiga.mak 2017-10-26 19:57:28.171059301 +0200
***************
*** 14,20 ****
# test10 'errorformat' is different
# test11 "cat" doesn't work properly
# test12 can't unlink a swap file
- # test25 uses symbolic link
# test52 only for Win32
# test85 no Lua interface
# test86, 87 no Python interface
--- 14,19 ----
*** ../vim-8.0.1220/src/testdir/Make_dos.mak 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/Make_dos.mak 2017-10-26 19:57:28.171059301 +0200
***************
*** 13,19 ****
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
# test12 can't unlink a swap file
- # test25 uses symbolic link
# test49 fails in various ways
# test97 \{ and \$ are not escaped characters.
--- 13,18 ----
*** ../vim-8.0.1220/src/testdir/Make_ming.mak 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/Make_ming.mak 2017-10-26 19:57:28.171059301 +0200
***************
*** 32,38 ****
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
# test12 can't unlink a swap file
- # test25 uses symbolic link
# test97 \{ and \$ are not escaped characters
SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4) $(SCRIPTS_WIN32)
--- 32,37 ----
*** ../vim-8.0.1220/src/testdir/Make_vms.mms 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/Make_vms.mms 2017-10-26 19:57:28.171059301 +0200
***************
*** 75,95 ****
SCRIPT = test1.out test3.out \
test14.out test15.out \
! test19.out test20.out \
! test28.out test29.out test30.out test32.out \
! test36.out test37.out \
! test38.out test39.out test40.out test42.out \
! test44.out test45.out \
! test48.out test49.out \
! test55.out \
! test64.out \
! test66.out test68.out test69.out \
! test72.out \
! test77a.out test79.out \
! test88.out \
! test94.out \
! test95.out test99.out \
! test108.out\
test_autocmd_option.out \
test_breakindent.out \
test_changelist.out \
--- 75,87 ----
SCRIPT = test1.out test3.out \
test14.out test15.out \
! test29.out test30.out \
! test36.out test37.out test39.out \
! test40.out test42.out test44.out test45.out \
! test48.out test49.out test55.out \
! test64.out test68.out test69.out \
! test72.out test77a.out test88.out \
! test94.out test95.out test99.out test108.out\
test_autocmd_option.out \
test_breakindent.out \
test_changelist.out \
***************
*** 110,119 ****
#
# test30: bug, most probably - a problem around mac format
#
- # test32: VMS is not case sensitive and all filenames are lowercase within Vim
- # (this should be changed in order to preserve the original filename) - should
- # be fixed. VMS allows just one dot in the filename
- #
# test59: Failed/Hangs - VMS does not support spell files (file names
# with too many dots).
#
--- 102,107 ----
***************
*** 131,137 ****
.ENDIF
.IFDEF WANT_UNIX
! SCRIPT_UNIX = test10.out test12.out test17.out test25.out test27.out
test49.out test73.out
.ENDIF
.IFDEF WANT_WIN
--- 119,125 ----
.ENDIF
.IFDEF WANT_UNIX
! SCRIPT_UNIX = test10.out test12.out test17.out test27.out test49.out
test73.out
.ENDIF
.IFDEF WANT_WIN
*** ../vim-8.0.1220/src/testdir/main.aap 2017-10-22 14:23:40.120199236
+0200
--- src/testdir/main.aap 2017-10-26 19:57:28.171059301 +0200
***************
*** 7,17 ****
Scripts = test1.out test2.out test3.out test6.out
test11.out
test12.out test13.out test14.out test15.out test17.out
! test18.out test19.out test20.out test21.out
! test25.out test27.out
! test28.out test29.out test30.out test32.out
test36.out test37.out
! test38.out test39.out test40.out test42.out
test44.out test45.out test46.out test47.out
test48.out test49.out test74.out
--- 7,16 ----
Scripts = test1.out test2.out test3.out test6.out
test11.out
test12.out test13.out test14.out test15.out test17.out
! test18.out test21.out
! test27.out test29.out test30.out
test36.out test37.out
! test39.out test40.out test42.out
test44.out test45.out test46.out test47.out
test48.out test49.out test74.out
*** ../vim-8.0.1220/src/testdir/test19.in 2012-12-12 17:19:36.000000000
+0100
--- src/testdir/test19.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,33 ****
- Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
- Also test that dv_ works correctly
-
- STARTTEST
- :so small.vim
- :set smarttab expandtab ts=8 sw=4
- :" make sure that backspace works, no matter what termcap is used
- :set t_kD= x7f t_kb= x08
- /some
- r :set noexpandtab
- /other
- r
- :" Test replacing with Tabs and then backspacing to undo it
- 0wR
- :" Test replacing with Tabs
- 0wR
- :" Test that copyindent works with expandtab set
- :set expandtab smartindent copyindent ts=8 sw=8 sts=8
- o{
- x :set nosol
- /Second line/
- fwdv_:?^start?,$w! test.out
- :qa!
- ENDTEST
-
- start text
- some test text
- test text
- other test text
- a cde
- f ghi
- test text
- Second line beginning with whitespace
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test19.ok 2012-12-12 17:19:36.000000000
+0100
--- src/testdir/test19.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,10 ****
- start text
- ome test text
- test text
- ther test text
- a cde
- hi
- test text
- {
- x
- with whitespace
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test20.in 2013-09-22 15:11:37.000000000
+0200
--- src/testdir/test20.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,28 ****
- Tests Blockwise Visual when there are TABs before the text.
- First test for undo working properly when executing commands from a register.
- Also test this in an empty buffer.
-
- STARTTEST
- :so tiny.vim
- G0"ay$k@au
- :new
- @auY:quit!
- GP
- /start here$
- "by$ jjlld
- /456$
- jj"bP
- :/56$/,$-1w! test.out
- :qa!
- ENDTEST
-
- 123456
- 234567
- 345678
-
- test text test tex start here
- some text
- test text
- test text
-
- Ox jAy kdd
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test20.ok 2013-09-22 15:11:37.000000000
+0200
--- src/testdir/test20.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,10 ****
- 123start here56
- 234start here67
- 345start here78
-
- test text test tex rt here
- somext
- tesext
- test text
-
-
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test25.in 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test25.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,31 ****
- Test for jumping to a tag with 'hidden' set, with symbolic link in path of
tag.
- This only works for Unix, because of the symbolic link.
-
- STARTTEST
- :so small.vim
- :set hidden
- :" Create a link from test25.dir to the current directory.
- :!rm -f test25.dir
- :!ln -s . test25.dir
- :" Create tags.text, with the current directory name inserted.
- /tags line
- :r !pwd
- d$/test
- hP:.w! tags.test
- :" Try jumping to a tag in the current file, but with a path that contains a
- :" symbolic link. When wrong, this will give the ATTENTION message. The next
- :" space will then be eaten by hit-return, instead of moving the cursor to
'd'.
- :set tags=tags.test
- G x:.w! test.out
- :!rm -f test25.dir tags.test
- :qa!
- ENDTEST
-
- tags line:
- SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$/
-
- /*tx.c*/
- #define SECTION_OFF 3
- #define NUM_SECTIONS 3
-
- SECTION_OFF
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test25.ok 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test25.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1 ****
- #efine SECTION_OFF 3
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test28.in 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test28.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,23 ****
- Test for sourcing a file with CTRL-V's at the end of the line
-
- STARTTEST
- :/firstline/+1,/lastline/-1w! Xtestfile
- :so Xtestfile
- Gmm__1 __2 __3 __4 __5 :'m,$s/- map __5 afifth
- map __1 asd
- map __2 asd
- map __3 asd
- map __4 asd
- map __5 asd
- lastline
-
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test28.ok 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test28.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,2 ****
- sd
- map __2 asd secondsd sd0map __5 asd0fifth
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test32.in 2017-03-08 22:55:14.914181221
+0100
--- src/testdir/test32.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,61 ****
- Test for insert expansion
-
- :se cpt=.,w
- * add-expands (word from next line) from other window
- * add-expands (current buffer first)
- * Local expansion, ends in an empty line (unless it becomes a global
expansion)
- * starts Local and switches to global add-expansion
- :se cpt=.,w,i
- * i-add-expands and switches to local
- * add-expands lines (it would end in an empty line if it didn't ignored it
self)
- :se cpt=kXtestfile
- * checks k-expansion, and file expansion (use Xtest11 instead of test11,
- * because TEST11.OUT may match first on DOS)
- :se cpt=w
- * checks make_cyclic in other window
- :se cpt=u nohid
- * checks unloaded buffer expansion
- * checks adding mode abortion
- :se cpt=t,d
- * tag expansion, define add-expansion interrupted
- * t-expansion
-
- STARTTEST
- :so small.vim
- :se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
- :set belloff=all
- :se cot=
- nO#include "Xtestfile"
- ru
- O
-
-
- :se cpt=.,w,i
- kOM
-
- :se cpt=kXtestfile
- :w Xtest11.one
- :w Xtest11.two
- O IX A
- :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
- :" CTRL-X CTRL-F again to verify this doesn't cause trouble.
- OX ddk
- :se cpt=w
- OST
- :se cpt=u nohid
- oOEN
- unl
- :se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
- O
- a
- :wq! test.out
- ENDTEST
-
- start of testfile
- run1
- run2
- end of testfile
-
- test11 36Gepeto /Tag/
- asd test11file 36G
- Makefile to run
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test32.ok 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test32.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,15 ****
- #include "Xtestfile"
- run1 run3
- run3 run3
-
- Makefile to run3
- Makefile to run3
- Makefile to run3
- Xtest11.two
- STARTTEST
- ENDTEST
- unless
- test11file 36Gepeto /Tag/ asd
- asd
- run1 run2
-
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test38.in 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test38.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,35 ****
-
- Test Virtual replace mode.
-
- STARTTEST
- :so small.vim
- :" make sure that backspace works, no matter what termcap is used
- :set t_kD= x7f t_kb= x08
- ggdGa
- abcdefghi
- jk lmn
- opq rst
- uvwxyz
- gg:set ai
- :set bs=2
- gR0 1
- A
- BCDEFGHIJ
- KL
- MNO
- PQR G:ka
- o0
- abcdefghi
- jk lmn
- opq rst
- uvwxyz
- 'ajgR0 1
- A
- BCDEFGHIJ
- KL
- MNO
- PQR :$
- iab cdefghi jkl 0gRAB......CDEFGHI.J o :
- iabcdefghijklmnopqrst 0gRAB IJKLMNO QR :wq! test.out
- ENDTEST
-
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test38.ok 2010-05-15 13:04:10.000000000
+0200
--- src/testdir/test38.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,13 ****
- 1
- A
- BCDEFGHIJ
- KL
- MNO
- PQR
- 1
- abcdefghi
- jk lmn
- opq rst
- uvwxyz
- AB......CDEFGHI.Jkl
- AB IJKLMNO QRst
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test66.in 2013-03-13 18:42:46.000000000
+0100
--- src/testdir/test66.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,33 ****
-
- Test for visual block shift and tab characters.
-
- STARTTEST
- :so small.vim
- /^one
- fe 4jR ugvr1:'<,'>w! test.out
- /^abcdefgh
- 4jI j<<11|D
- 7|a
- 7|a
- 7|a 4k13| 4j<
- :$-5,$w >> test.out
- :$-4,$s/\s\+//g
- 4kI j<<
- 7|a
- 7|a
- 7|a 4k13| 4j3<
- :$-4,$w >> test.out
- :qa!
- ENDTEST
-
- one two three
- one two three
- one two three
- one two three
- one two three
-
- abcdefghijklmnopqrstuvwxyz
- abcdefghijklmnopqrstuvwxyz
- abcdefghijklmnopqrstuvwxyz
- abcdefghijklmnopqrstuvwxyz
- abcdefghijklmnopqrstuvwxyz
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test66.ok 2013-03-13 18:42:46.000000000
+0100
--- src/testdir/test66.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,16 ****
- on1 two three
- on1 two three
- on1 two three
- on1 two three
- on1 two three
-
- abcdefghijklmnopqrstuvwxyz
- abcdefghij
- abc defghijklmnopqrstuvwxyz
- abc defghijklmnopqrstuvwxyz
- abc defghijklmnopqrstuvwxyz
- abcdefghijklmnopqrstuvwxyz
- abcdefghij
- abc defghijklmnopqrstuvwxyz
- abc defghijklmnopqrstuvwxyz
- abc defghijklmnopqrstuvwxyz
--- 0 ----
*** ../vim-8.0.1220/src/testdir/test79.in 2014-04-23 18:36:29.000000000
+0200
--- src/testdir/test79.in 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,255 ****
- Test for *sub-replace-special* and *sub-replace-expression* on :substitute.
- Test for submatch() on :substitue.
- Test for *:s%* on :substitute.
- Test for :s replacing \n with line break.
-
- STARTTEST
- :so small.vim
- ENDTEST
-
- Results of test71:
-
- STARTTEST
- :set magic
- :set cpo&
- /^TEST/
- j:s/A/&&/
- j:s/B/\&/
- j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
- j:s/D/d/
- j:s/E/~/
- j:s/F/\~/
- j:s/G/\ugg/
- j:s/H/\Uh\Eh/
- j:s/I/\lII/
- j:s/J/\LJ\EJ/
- j:s/K/\Uk\ek/
- j:s/L/
/
- j:s/M/\r/
- j:s/N/\
/
- j:s/O/\n/
- j:s/P/\b/
- j:s/Q/\t/
- j:s/R/\\/
- j:s/S/\c/
- j:s/T/ bmatch(0)/
- j:s/C./\=strtrans(string(submatch(0, 1)))/
- j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
- j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
- /^Q$
- :s/Q[^\n]Q/\=submatch(0)."foobar"/
- :" Avoid :s error breaks dotest map on Windows.
- ENDTEST
-
- TEST_7:
- A
A
- B<BS>\<C-X>\<C-F>"
+ call assert_equal('Xtest11.one', getline('.'))
+ normal ddk
+
+ set cpt=w
+ " checks make_cyclic in other window
+ exe "normal oST\<C-N>\<C-P>\<C-P>\<C-P>\<C-P>"
+ call assert_equal('STARTTEST', getline('.'))
+
+ set cpt=u nohid
+ " checks unloaded buffer expansion
+ only
+ exe "normal oEN\<C-N>"
+ call assert_equal('ENDTEST', getline('.'))
+ " checks adding mode abortion
+ exe "normal ounl\<C-N>\<C-X>\<C-X>\<C-P>"
+ call assert_equal('unless', getline('.'))
+
+ set cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
+ " tag expansion, define add-expansion interrupted
+ exe "normal
o\<C-X>\<C-]>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>\<C-X>\<C-D>"
+ call assert_equal('test11file 36Gepeto /Tag/ asd',
getline('.'))
+ " t-expansion
+ exe "normal oa\<C-N>\<Esc>"
+ call assert_equal('asd', getline('.'))
+
+ %bw!
+ call delete('Xtestfile')
+ call delete('Xtest11.one')
+ call delete('Xtest11.two')
+ call delete('Xtestdata')
+ set cpt& cot& def& tags& tagbsearch& hidden&
+ endfunc
*** ../vim-8.0.1220/src/testdir/test_source_utf8.vim 2016-08-17
21:28:17.000000000 +0200
--- src/testdir/test_source_utf8.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 31,33 ****
--- 31,63 ----
bwipe!
call delete('Xscript')
endfunc
+
+ " Test for sourcing a file with CTRL-V's at the end of the line
+ func Test_source_ctrl_v()
+ call writefile(['map __1 afirst',
+ \ 'map __2 asecond',
+ \ 'map __3 athird',
+ \ 'map __4 afourth',
+ \ 'map __5 afifth',
+ \ "map __1 asd\<C-V>",
+ \ "map __2 asd\<C-V>\<C-V>",
+ \ "map __3 asd\<C-V>\<C-V>",
+ \ "map __4 asd\<C-V>\<C-V>\<C-V>",
+ \ "map __5 asd\<C-V>\<C-V>\<C-V>",
+ \ ], 'Xtestfile')
+ source Xtestfile
+ enew!
+ exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
+ exe "%s/\<C-J>/0/g"
+ call assert_equal(['sd',
+ \ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
+ \ getline(1, 2))
+
+ enew!
+ call delete('Xtestfile')
+ unmap __1
+ unmap __2
+ unmap __3
+ unmap __4
+ unmap __5
+ endfunc
*** ../vim-8.0.1220/src/testdir/test_substitute.vim 2017-08-30
20:21:54.254963240 +0200
--- src/testdir/test_substitute.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 294,296 ****
--- 294,502 ----
call assert_equal('aa2a3a', substitute('123', '1\|\ze', 'a', 'g'))
call assert_equal('1aaa', substitute('123', '1\zs\|[23]', 'a', 'g'))
endfunc
+
+ " Tests for *sub-replace-special* and *sub-replace-expression* on :substitute.
+
+ " Execute a list of :substitute command tests
+ func Run_SubCmd_Tests(tests)
+ enew!
+ for t in a:tests
+ let start = line('.') + 1
+ let end = start + len(t[2]) - 1
+ exe "normal o" . t[0]
+ call cursor(start, 1)
+ exe t[1]
+ call assert_equal(t[2], getline(start, end), t[1])
+ endfor
+ enew!
+ endfunc
+
+ func Test_sub_cmd_1()
+ set magic
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [['A', 's/A/&&/', ['AA']],
+ \ ['B', 's/B/\&/', ['&']],
+ \ ['C123456789',
's/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/',
['C123456789987654321']],
+ \ ['D', 's/D/d/', ['d']],
+ \ ['E', 's/E/~/', ['d']],
+ \ ['F', 's/F/\~/', ['~']],
+ \ ['G', 's/G/\ugg/', ['Gg']],
+ \ ['H', 's/H/\Uh\Eh/', ['Hh']],
+ \ ['I', 's/I/\lII/', ['iI']],
+ \ ['J', 's/J/\LJ\EJ/', ['jJ']],
+ \ ['K', 's/K/\Uk\ek/', ['Kk']],
+ \ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
+ \ ['mMm', 's/M/\r/', ['m', 'm']],
+ \ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
+ \ ['oOo', 's/O/\n/', ["o\no"]],
+ \ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
+ \ ['qQq', 's/Q/\t/', ["q\tq"]],
+ \ ['rRr', 's/R/\\/', ['r\r']],
+ \ ['sSs', 's/S/\c/', ['scs']],
+ \ ['tTt', "s/T/\<C-V>\<C-J>/", ["t\<C-V>\<C-J>t"]],
+ \ ['U', 's/U/\L\uuUu\l\EU/', ['UuuU']],
+ \ ['V', 's/V/\U\lVvV\u\Ev/', ['vVVv']]
+ \ ]
+ call Run_SubCmd_Tests(tests)
+ endfunc
+
+ func Test_sub_cmd_2()
+ set nomagic
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [['A', 's/A/&&/', ['&&']],
+ \ ['B', 's/B/\&/', ['B']],
+ \ ['C123456789',
's/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/',
['C123456789987654321']],
+ \ ['D', 's/D/d/', ['d']],
+ \ ['E', 's/E/~/', ['~']],
+ \ ['F', 's/F/\~/', ['~']],
+ \ ['G', 's/G/\ugg/', ['Gg']],
+ \ ['H', 's/H/\Uh\Eh/', ['Hh']],
+ \ ['I', 's/I/\lII/', ['iI']],
+ \ ['J', 's/J/\LJ\EJ/', ['jJ']],
+ \ ['K', 's/K/\Uk\ek/', ['Kk']],
+ \ ['lLl', "s/L/\<C-V>\<C-M>/", ["l\<C-V>", 'l']],
+ \ ['mMm', 's/M/\r/', ['m', 'm']],
+ \ ['nNn', "s/N/\\\<C-V>\<C-M>/", ["n\<C-V>", 'n']],
+ \ ['oOo', 's/O/\n/', ["o\no"]],
+ \ ['pPp', 's/P/\b/', ["p\<C-H>p"]],
+ \ ['qQq', 's/Q/\t/', ["q\tq"]],
+ \ ['rRr', 's/R/\\/', ['r\r']],
+ \ ['sSs', 's/S/\c/', ['scs']],
+ \ ['tTt', "s/T/\<C-V>\<C-J>/", ["t\<C-V>\<C-J>t"]],
+ \ ['U', 's/U/\L\uuUu\l\EU/', ['UuuU']],
+ \ ['V', 's/V/\U\lVvV\u\Ev/', ['vVVv']]
+ \ ]
+ call Run_SubCmd_Tests(tests)
+ endfunc
+
+ func Test_sub_cmd_3()
+ set nomagic
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [['aAa', "s/A/\\='\\'/", ['a\a']],
+ \ ['bBb', "s/B/\\='\\\\'/", ['b\\b']],
+ \ ['cCc', "s/C/\\='\<C-V>\<C-M>'/", ["c\<C-V>", 'c']],
+ \ ['dDd', "s/D/\\='\\\<C-V>\<C-M>'/", ["d\\\<C-V>", 'd']],
+ \ ['eEe', "s/E/\\='\\\\\<C-V>\<C-M>'/", ["e\\\\\<C-V>", 'e']],
+ \ ['fFf', "s/F/\\='\r'/", ['f', 'f']],
+ \ ['gGg', "s/G/\\='\<C-V>\<C-J>'/", ["g\<C-V>", 'g']],
+ \ ['hHh', "s/H/\\='\\\<C-V>\<C-J>'/", ["h\\\<C-V>", 'h']],
+ \ ['iIi', "s/I/\\='\\\\\<C-V>\<C-J>'/", ["i\\\\\<C-V>", 'i']],
+ \ ['jJj', "s/J/\\='\n'/", ['j', 'j']],
+ \ ['kKk', 's/K/\="\r"/', ['k', 'k']],
+ \ ['lLl', 's/L/\="\n"/', ['l', 'l']]
+ \ ]
+ call Run_SubCmd_Tests(tests)
+ endfunc
+
+ " Test for submatch() on :substitue.
+ func Test_sub_cmd_4()
+ set magic&
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
+ \ ['a\a']],
+ \ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
+ \ ['b\b']],
+ \ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>',
'')/",
+ \ ["c\<C-V>", 'c']],
+ \ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>',
'')/",
+ \ ["d\<C-V>", 'd']],
+ \ ['eEe', "s/E/\\=substitute(submatch(0), '.',
'\\\\\<C-V>\<C-M>', '')/",
+ \ ["e\\\<C-V>", 'e']],
+ \ ['fFf', "s/F/\\=substitute(submatch(0), '.', '\\r', '')/",
+ \ ['f', 'f']],
+ \ ['gGg', 's/G/\=substitute(submatch(0), ".", "\<C-V>\<C-J>",
"")/',
+ \ ["g\<C-V>", 'g']],
+ \ ['hHh', 's/H/\=substitute(submatch(0), ".", "\\\<C-V>\<C-J>",
"")/',
+ \ ["h\<C-V>", 'h']],
+ \ ['iIi', 's/I/\=substitute(submatch(0), ".", "\\\\\<C-V>\<C-J>",
"")/',
+ \ ["i\\\<C-V>", 'i']],
+ \ ['jJj', "s/J/\\=substitute(submatch(0), '.', '\\n', '')/",
+ \ ['j', 'j']],
+ \ ['kKk', "s/K/\\=substitute(submatch(0), '.', '\\r', '')/",
+ \ ['k', 'k']],
+ \ ['lLl', "s/L/\\=substitute(submatch(0), '.', '\\n', '')/",
+ \ ['l', 'l']],
+ \ ]
+ call Run_SubCmd_Tests(tests)
+ endfunc
+
+ func Test_sub_cmd_5()
+ set magic&
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [ ['A123456789',
's/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .
submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) .
submatch(3) . submatch(2) . submatch(1)/', ['A123456789987654321']],
+ \ ['B123456789',
's/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1),
submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1),
submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/',
["[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'],
['1']]"]],
+ \ ]
+ call Run_SubCmd_Tests(tests)
+ endfunc
+
+ " Test for *:s%* on :substitute.
+ func Test_sub_cmd_6()
+ set magic&
+ set cpo+=/
+
+ " List entry format: [input, cmd, output]
+ let tests = [ ['A', 's/A/a/', ['a']],
+ \ ['B', 's/B/%/', ['a']],
+ \ ]
+ call Run_SubCmd_Tests(tests)
+
+ set cpo-=/
+ let tests = [ ['C', 's/C/c/', ['c']],
+ \ ['D', 's/D/%/', ['%']],
+ \ ]
+ call Run_SubCmd_Tests(tests)
+
+ set cpo&
+ endfunc
+
+ " Test for :s replacing \n with line break.
+ func Test_sub_cmd_7()
+ set magic&
+ set cpo&
+
+ " List entry format: [input, cmd, output]
+ let tests = [ ["A\<C-V>\<C-M>A", 's/A./\=submatch(0)/', ['A', 'A']],
+ \ ["B\<C-V>\<C-J>B", 's/B./\=submatch(0)/', ['B', 'B']],
+ \ ["C\<C-V>\<C-J>C", 's/C./\=strtrans(string(submatch(0, 1)))/',
[strtrans("['C\<C-J>']C")]],
+ \ ["D\<C-V>\<C-J>\nD", 's/D.\nD/\=strtrans(string(submatch(0,
1)))/', [strtrans("['D\<C-J>', 'D']")]],
+ \
["E\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>\n\<C-V>\<C-J>E",
's/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/', [strtrans("['E\<C-J>',
'\<C-J>', '\<C-J>', '\<C-J>', '\<C-J>E']")]],
+ \ ]
+ call Run_SubCmd_Tests(tests)
+
+ exe "normal oQ\nQ\<Esc>k"
+ call assert_fails('s/Q[^\n]Q/\=submatch(0)."foobar"/', 'E486')
+ enew!
+ endfunc
+
+ func TitleString()
+ let check = 'foo' =~ 'bar'
+ return ""
+ endfunc
+
+ func Test_sub_cmd_8()
+ set titlestring=%{TitleString()}
+
+ enew!
+ call append(0, ['', 'test_one', 'test_two'])
+ call cursor(1,1)
+ /^test_one/s/.*/\="foo\nbar"/
+ call assert_equal('foo', getline(2))
+ call assert_equal('bar', getline(3))
+ call feedkeys(':/^test_two/s/.*/\="foo\nbar"/c', "t")
+ call feedkeys("\<CR>y", "xt")
+ call assert_equal('foo', getline(4))
+ call assert_equal('bar', getline(5))
+
+ enew!
+ set titlestring&
+ endfunc
*** ../vim-8.0.1220/src/testdir/test_tab.vim 2017-10-26 20:19:52.441837610
+0200
--- src/testdir/test_tab.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 0 ****
--- 1,45 ----
+
+ " Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+ " Also test that dv_ works correctly
+ func Test_smarttab()
+ enew!
+ set smarttab expandtab ts=8 sw=4
+ " make sure that backspace works, no matter what termcap is used
+ exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
+ call append(0, ['start text',
+ \ "\t\tsome test text",
+ \ 'test text',
+ \ "\t\tother test text",
+ \ ' a cde',
+ \ ' f ghi',
+ \ 'test text',
+ \ ' Second line beginning with whitespace'
+ \ ])
+ call cursor(1, 1)
+ exe "normal /some\<CR>"
+ exe "normal r\t"
+ call assert_equal("\t\t ome test text", getline('.'))
+ set noexpandtab
+ exe "normal /other\<CR>"
+ exe "normal r\t"
+ call assert_equal("\t\t ther test text", getline('.'))
+
+ " Test replacing with Tabs and then backspacing to undo it
+ exe "normal j0wR\t\t\t\<BS>\<BS>\<BS>"
+ call assert_equal(" a cde", getline('.'))
+ " Test replacing with Tabs
+ exe "normal j0wR\t\t\t"
+ call assert_equal(" \t\thi", getline('.'))
+
+ " Test that copyindent works with expandtab set
+ set expandtab smartindent copyindent ts=8 sw=8 sts=8
+ exe "normal jo{\<CR>x"
+ call assert_equal('{', getline(line('.') - 1))
+ call assert_equal(' x', getline('.'))
+ set nosol
+ exe "normal /Second line/\<CR>"
+ exe "normal fwdv_"
+ call assert_equal(' with whitespace', getline('.'))
+ enew!
+ set expandtab& smartindent& copyindent& ts& sw& sts&
+ endfunc
*** ../vim-8.0.1220/src/testdir/test_tagjump.vim 2017-06-05
16:01:53.913848249 +0200
--- src/testdir/test_tagjump.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 137,140 ****
--- 137,177 ----
call delete('Xinclude')
endfunction
+ " Test for jumping to a tag with 'hidden' set, with symbolic link in path of
+ " tag. This only works for Unix, because of the symbolic link.
+ func Test_tag_symbolic()
+ if !has('unix')
+ return
+ endif
+ set hidden
+ call delete("Xtest.dir", "rf")
+ call system("ln -s . Xtest.dir")
+ " Create a tags file with the current directory name inserted.
+ call writefile([
+ \ "SECTION_OFF " . getcwd() . "/Xtest.dir/Xtest.c
/^#define SECTION_OFF 3$/",
+ \ '',
+ \ ], 'Xtags')
+ call writefile(['#define SECTION_OFF 3',
+ \ '#define NUM_SECTIONS 3'], 'Xtest.c')
+
+ " Try jumping to a tag, but with a path that contains a symbolic link. When
+ " wrong, this will give the ATTENTION message. The next space will then be
+ " eaten by hit-return, instead of moving the cursor to 'd'.
+ set tags=Xtags
+ enew!
+ call append(0, 'SECTION_OFF')
+ call cursor(1,1)
+ exe "normal \<C-]> "
+ call assert_equal('Xtest.c', expand('%:t'))
+ call assert_equal(2, col('.'))
+
+ set hidden&
+ set tags&
+ enew!
+ call delete('Xtags')
+ call delete('Xtest.c')
+ call delete("Xtest.dir", "rf")
+ %bwipe!
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.0.1220/src/testdir/test_undo.vim 2017-10-15 22:07:35.211683156
+0200
--- src/testdir/test_undo.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 273,275 ****
--- 273,291 ----
call delete('Xfile')
call delete('Xundofile')
endfunc
+
+ " Test for undo working properly when executing commands from a register.
+ " Also test this in an empty buffer.
+ func Test_cmd_in_reg_undo()
+ enew!
+ let @a="Ox\<Esc>jAy\<Esc>kdd"
+ edit +/^$ test_undo.vim
+ normal @au
+ call assert_equal(0, &modified)
+ return
+ new
+ normal @au
+ call assert_equal(0, &modified)
+ only!
+ let @a=''
+ endfunc
*** ../vim-8.0.1220/src/testdir/test_visual.vim 2017-10-15 22:07:35.211683156
+0200
--- src/testdir/test_visual.vim 2017-10-26 19:57:28.175059273 +0200
***************
*** 89,91 ****
--- 89,189 ----
endfunc
+ " Test for visual block shift and tab characters.
+ func Test_block_shift_tab()
+ enew!
+ call append(0, repeat(['one two three'], 5))
+ call cursor(1,1)
+ exe "normal i\<C-G>u"
+ exe "normal fe\<C-V>4jR\<Esc>ugvr1"
+ call assert_equal('on1 two three', getline(1))
+ call assert_equal('on1 two three', getline(2))
+ call assert_equal('on1 two three', getline(5))
+
+ enew!
+ call append(0, repeat(['abcdefghijklmnopqrstuvwxyz'], 5))
+ call cursor(1,1)
+ exe "normal \<C-V>4jI \<Esc>j<<11|D"
+ exe "normal j7|a\<Tab>\<Tab>"
+ exe "normal j7|a\<Tab>\<Tab> "
+ exe "normal j7|a\<Tab> \<Tab>\<Esc>4k13|\<C-V>4j<"
+ call assert_equal(' abcdefghijklmnopqrstuvwxyz', getline(1))
+ call assert_equal('abcdefghij', getline(2))
+ call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(3))
+ call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(4))
+ call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(5))
+
+ %s/\s\+//g
+ call cursor(1,1)
+ exe "normal \<C-V>4jI \<Esc>j<<"
+ exe "normal j7|a\<Tab>\<Tab>"
+ exe "normal j7|a\<Tab>\<Tab>\<Tab>\<Tab>\<Tab>"
+ exe "normal j7|a\<Tab> \<Tab>\<Tab>\<Esc>4k13|\<C-V>4j3<"
+ call assert_equal(' abcdefghijklmnopqrstuvwxyz', getline(1))
+ call assert_equal('abcdefghij', getline(2))
+ call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(3))
+ call assert_equal(" abc\<Tab>\<Tab>defghijklmnopqrstuvwxyz", getline(4))
+ call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(5))
+
+ enew!
+ endfunc
+
+ " Tests Blockwise Visual when there are TABs before the text.
+ func Test_blockwise_visual()
+ enew!
+ call append(0, ['123456',
+ \ '234567',
+ \ '345678',
+ \ '',
+ \ 'test text test tex start here',
+ \ "\t\tsome text",
+ \ "\t\ttest text",
+ \ 'test text'])
+ call cursor(1,1)
+ exe "normal /start here$\<CR>"
+ exe 'normal "by$' . "\<C-V>jjlld"
+ exe "normal /456$\<CR>"
+ exe "normal \<C-V>jj" . '"bP'
+ call assert_equal(['123start here56',
+ \ '234start here67',
+ \ '345start here78',
+ \ '',
+ \ 'test text test tex rt here',
+ \ "\t\tsomext",
+ \ "\t\ttesext"], getline(1, 7))
+
+ enew!
+ endfunc
+
+ " Test Virtual replace mode.
+ func Test_virtual_replace()
+ exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
+ enew!
+ exe "normal a\nabcdefghi\njk\tlmn\n opq rst\n\<C-D>uvwxyz"
+ call cursor(1,1)
+ set ai bs=2
+ exe "normal gR0\<C-D> 1\nA\nBCDEFGHIJ\n\tKL\nMNO\nPQR"
+ call assert_equal([' 1',
+ \ ' A',
+ \ ' BCDEFGHIJ',
+ \ ' KL',
+ \ ' MNO',
+ \ ' PQR',
+ \ ], getline(1, 6))
+ normal G
+ mark a
+ exe "normal o0\<C-D>\nabcdefghi\njk\tlmn\n opq\trst\n\<C-D>uvwxyz\n"
+ exe "normal 'ajgR0\<C-D> 1\nA\nBCDEFGHIJ\n\tKL\nMNO\nPQR" . repeat("\<BS>",
29)
+ call assert_equal([' 1',
+ \ 'abcdefghi',
+ \ 'jk lmn',
+ \ ' opq rst',
+ \ 'uvwxyz'], getline(7, 11))
+ normal G
+ exe "normal iab\tcdefghi\tjkl"
+ exe "normal 0gRAB......CDEFGHI.J\<Esc>o"
+ exe "normal iabcdefghijklmnopqrst\<Esc>0gRAB\tIJKLMNO\tQR"
+ call assert_equal(['AB......CDEFGHI.Jkl',
+ \ 'AB IJKLMNO QRst'], getline(12, 13))
+ enew!
+ endfunc
*** ../vim-8.0.1220/src/testdir/test79.ok 2014-04-23 18:35:30.000000000
+0200
--- src/testdir/test79.ok 1970-01-01 01:00:00.000000000 +0100
***************
*** 1,134 ****
- Results of test71:
-
-
- TEST_1:
- AA
- &
- C123456789987654321
- d
- d
- ~
- Gg
- Hh
- iI
- jJ
- Kk
- l
- l
- m
- m
- n
n
- o"/
- j:s/L/\="\n"/
- ENDTEST
-
- TEST_3:
- aAa
- bBb
- cCc
- dDd
- eEe
- fFf
- gGg
- hHh
- iIi
- jJj
- kKk
- lLl
-
- STARTTEST
- :set magic&
- :set cpo&
- /^TEST/
- j:s/A/\=substitute(submatch(0), '.', '\', '')/
- j:s/B/\=substitute(submatch(0), '.', '\\', '')/
- j:s/C/\=substitute(submatch(0), '.', '
', '')/
- j:s/D/\=substitute(submatch(0), '.', '\
', '')/
- j:s/E/\=substitute(submatch(0), '.', '\\
', '')/
- j:s/F/\=substitute(submatch(0), '.', '\r', '')/
- j:s/G/\=substitute(submatch(0), '.', '
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.