To: vim_dev@googlegroups.com Subject: Patch 8.2.1439 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1439 Problem: Tiny and small builds have no test coverage. Solution: Restore tests that do not depend on the +eval feature. (Ken Takata, closes #6696) Files: .travis.yml, Filelist, Makefile, runtime/doc/testing.txt, src/Make_mvc.mak, 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/Makefile, src/testdir/runtest.vim, src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in, src/testdir/test20.ok, src/testdir/test21.in, src/testdir/test21.ok, src/testdir/test22.in, src/testdir/test22.ok, src/testdir/test23.in, src/testdir/test23.ok, src/testdir/test24.in, src/testdir/test24.ok, src/testdir/test25.in, src/testdir/test25.ok, src/testdir/test26.in, src/testdir/test26.ok, src/testdir/test27.in, src/testdir/test27.ok, src/testdir/test_options.vim *** ../vim-8.2.1438/.travis.yml 2020-08-09 14:07:49.120759380 +0200 --- .travis.yml 2020-08-13 18:21:29.515663441 +0200 *************** *** 7,17 **** _anchors: envs: - &tiny-nogui ! FEATURES=tiny CONFOPT="--disable-gui" - &tiny ! FEATURES=tiny - &small ! FEATURES=small - &normal FEATURES=normal - &linux-huge --- 7,17 ---- _anchors: envs: - &tiny-nogui ! FEATURES=tiny TEST=testtiny CONFOPT="--disable-gui" - &tiny ! FEATURES=tiny TEST=testtiny - &small ! FEATURES=small TEST=testtiny - &normal FEATURES=normal - &linux-huge *** ../vim-8.2.1438/Filelist 2020-08-11 21:58:12.573968305 +0200 --- Filelist 2020-08-13 18:50:05.927211912 +0200 *************** *** 158,166 **** src/testdir/gen_opt_test.vim \ src/testdir/README.txt \ src/testdir/Make_all.mak \ ! src/testdir/dotest.in \ ! src/testdir/test1.in \ ! src/testdir/test77a.in \ src/testdir/*.py \ src/testdir/lsan-suppress.txt \ src/testdir/sautest/autoload/*.vim \ --- 158,164 ---- src/testdir/gen_opt_test.vim \ src/testdir/README.txt \ src/testdir/Make_all.mak \ ! src/testdir/*.in \ src/testdir/*.py \ src/testdir/lsan-suppress.txt \ src/testdir/sautest/autoload/*.vim \ *************** *** 179,185 **** src/testdir/summarize.vim \ src/testdir/term_util.vim \ src/testdir/view_util.vim \ ! - src/testdir/test1.ok \ src/testdir/test77a.ok \ src/testdir/test83-tags? \ src/testdir/test77a.com \ --- 177,183 ---- src/testdir/summarize.vim \ src/testdir/term_util.vim \ src/testdir/view_util.vim \ ! src/testdir/test[0-9]*.ok \ src/testdir/test77a.ok \ src/testdir/test83-tags? \ src/testdir/test77a.com \ *** ../vim-8.2.1438/Makefile 2020-01-26 21:59:25.616718180 +0100 --- Makefile 2020-08-13 18:21:29.515663441 +0200 *************** *** 32,38 **** # Some make programs use the last target for the $@ default; put the other # targets separately to always let $@ expand to "first" by default. ! all install uninstall tools config configure reconfig proto depend lint tags types test scripttests test_libvterm unittests testclean clean distclean: @if test ! -f src/auto/config.mk; then \ cp src/config.mk.dist src/auto/config.mk; \ fi --- 32,38 ---- # Some make programs use the last target for the $@ default; put the other # targets separately to always let $@ expand to "first" by default. ! all install uninstall tools config configure reconfig proto depend lint tags types test scripttests testtiny test_libvterm unittests testclean clean distclean: @if test ! -f src/auto/config.mk; then \ cp src/config.mk.dist src/auto/config.mk; \ fi *** ../vim-8.2.1438/runtime/doc/testing.txt 2020-08-11 20:42:15.462616344 +0200 --- runtime/doc/testing.txt 2020-08-13 18:21:29.515663441 +0200 *************** *** 1,4 **** ! *testing.txt* For Vim version 8.2. Last change: 2019 Sep 08 VIM REFERENCE MANUAL by Bram Moolenaar --- 1,4 ---- ! *testing.txt* For Vim version 8.2. Last change: 2020 Jul 11 VIM REFERENCE MANUAL by Bram Moolenaar *************** *** 20,30 **** --- 20,36 ---- Vim can be tested after building it, usually with "make test". The tests are located in the directory "src/testdir". + There are two types of tests added over time: + test20.in oldest, only for tiny and small builds + test_something.vim new style tests + *new-style-testing* New tests should be added as new style tests. The test scripts are named test_.vim (replace with the feature under test). These use functions such as |assert_equal()| to keep the test commands and the expected result in one place. + *old-style-testing* + These tests are used only for testing Vim without the |+eval| feature. Find more information in the file src/testdir/README.txt. *************** *** 100,106 **** test_null_function() *test_null_function()* ! Return a |FuncRef| that is null. Only useful for testing. test_null_job() *test_null_job()* --- 106,112 ---- test_null_function() *test_null_function()* ! Return a |Funcref| that is null. Only useful for testing. test_null_job() *test_null_job()* *************** *** 257,263 **** < Will result in a string to be added to |v:errors|: test.vim line 12: Expected 'foo' but got 'bar' ~ ! Can also be used as a |method|: > mylist->assert_equal([1, 2, 3]) < *assert_equalfile()* --- 263,270 ---- < Will result in a string to be added to |v:errors|: test.vim line 12: Expected 'foo' but got 'bar' ~ ! Can also be used as a |method|, the base is passed as the ! second argument: > mylist->assert_equal([1, 2, 3]) < *assert_equalfile()* *** ../vim-8.2.1438/src/Make_mvc.mak 2020-08-11 20:42:15.462616344 +0200 --- src/Make_mvc.mak 2020-08-13 18:21:29.519663425 +0200 *************** *** 1464,1475 **** test: cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak win32 cd .. testgvim: cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\gvim win32 cd .. testclean: --- 1464,1485 ---- test: cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak cd .. testgvim: cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\gvim ! cd .. ! ! testtiny: ! cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak tiny ! cd .. ! ! testgvimtiny: ! cd testdir ! $(MAKE) /NOLOGO -f Make_dos.mak tiny VIMPROG=..\gvim cd .. testclean: *************** *** 1477,1485 **** $(MAKE) /NOLOGO -f Make_dos.mak clean cd .. ! # Run test1 to bootstrap tests # These do not depend on the executable, compile it when needed. ! $(SCRIPTS_FIRST:.out=): cd testdir - if exist $@.out del $@.out $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\$(VIMTESTTARGET) nolog --- 1487,1495 ---- $(MAKE) /NOLOGO -f Make_dos.mak clean cd .. ! # Run individual OLD style test. # These do not depend on the executable, compile it when needed. ! $(SCRIPTS_TINY): cd testdir - if exist $@.out del $@.out $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\$(VIMTESTTARGET) nolog *** ../vim-8.2.1438/src/Makefile 2020-08-11 21:58:12.577968264 +0200 --- src/Makefile 2020-08-13 18:21:29.519663425 +0200 *************** *** 2258,2263 **** --- 2258,2266 ---- testgui: cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) GUI_FLAG=-g $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) + testtiny: + cd testdir; $(MAKE) -f Makefile tiny VIMPROG=../$(VIMTARGET) SCRIPTSOURCE=../$(SCRIPTSOURCE) + benchmark: cd testdir; $(MAKE) -f Makefile benchmark VIMPROG=../$(VIMTARGET) SCRIPTSOURCE=../$(SCRIPTSOURCE) *************** *** 2291,2299 **** CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"; \ fi ! # Run test1, used to bootstrap tests. ! # This does not depend on the executable, compile first it when needed. ! test1: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) # Run individual NEW style test. --- 2294,2302 ---- CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"; \ fi ! # Run individual OLD style test. ! # These do not depend on the executable, compile it when needed. ! $(SCRIPTS_TINY): cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) # Run individual NEW style test. *** ../vim-8.2.1438/src/testdir/Make_all.mak 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Make_all.mak 2020-08-13 18:42:13.115478643 +0200 *************** *** 7,14 **** NO_PLUGINS = --noplugin --not-a-term NO_INITS = -U NONE $(NO_PLUGINS) ! # The first script creates small.vim. ! SCRIPTS_FIRST = test1.out # Tests for Vim9 script. TEST_VIM9 = \ --- 7,32 ---- NO_PLUGINS = --noplugin --not-a-term NO_INITS = -U NONE $(NO_PLUGINS) ! # Tests for tiny and small builds. ! SCRIPTS_TINY = \ ! test20 \ ! test21 \ ! test22 \ ! test23 \ ! test24 \ ! test25 \ ! test26 \ ! test27 ! ! SCRIPTS_TINY_OUT = \ ! test20.out \ ! test21.out \ ! test22.out \ ! test23.out \ ! test24.out \ ! test25.out \ ! test26.out \ ! test27.out # Tests for Vim9 script. TEST_VIM9 = \ *************** *** 25,30 **** --- 43,51 ---- test_vim9_func.res \ test_vim9_script.res + # Benchmark scripts. + SCRIPTS_BENCH = test_bench_regexp.res + # Individual tests, including the ones part of test_alot. # Please keep sorted up to test_alot. NEW_TESTS = \ *** ../vim-8.2.1438/src/testdir/Make_amiga.mak 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Make_amiga.mak 2020-08-13 18:21:29.519663425 +0200 *************** *** 9,17 **** include Make_all.mak .SUFFIXES: .in .out .res .vim ! nongui: /tmp $(SCRIPTS_FIRST) csh -c echo ALL DONE clean: --- 9,19 ---- include Make_all.mak + SCRIPTS = $(SCRIPTS_TINY_OUT) + .SUFFIXES: .in .out .res .vim ! nongui: /tmp $(SCRIPTS) csh -c echo ALL DONE clean: *** ../vim-8.2.1438/src/testdir/Make_dos.mak 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Make_dos.mak 2020-08-13 18:21:29.519663425 +0200 *************** *** 9,64 **** !include Make_all.mak ! TEST_OUTFILES = $(SCRIPTS_FIRST) DOSTMP = dostmp DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test) DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in) .SUFFIXES: .in .out .res .vim ! nongui: nolog $(SCRIPTS_FIRST) newtests report ! small: nolog report ! gui: nolog $(SCRIPTS_FIRST) newtests report ! win32: nolog $(SCRIPTS_FIRST) newtests report ! ! # Copy the input files to dostmp, changing the fileformat to dos. ! $(DOSTMP_INFILES): $(*B).in ! if not exist $(DOSTMP)\NUL md $(DOSTMP) ! if exist $@ del $@ ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $(*B).in ! ! # For each input file dostmp/test99.in run the tests. ! # This moves test99.in to test99.in.bak temporarily. ! $(TEST_OUTFILES): $(DOSTMP)\$(*B).in ! -@if exist test.out DEL test.out ! -@if exist $(DOSTMP)\$(*B).out DEL $(DOSTMP)\$(*B).out ! move $(*B).in $(*B).in.bak > nul ! copy $(DOSTMP)\$(*B).in $(*B).in > nul ! copy $(*B).ok test.ok > nul ! $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(*B).in ! -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out > nul ! -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in > nul ! -@if exist test.ok del test.ok ! -@if exist Xdir1 rd /s /q Xdir1 ! -@if exist Xfind rd /s /q Xfind ! -@if exist XfakeHOME rd /s /q XfakeHOME ! -@del X* ! -@if exist viminfo del viminfo ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \ ! $(DOSTMP)\$(*B).out ! @diff test.out $*.ok & if errorlevel 1 \ ! ( move /y test.out $*.failed > nul \ ! & del $(DOSTMP)\$(*B).out \ ! & echo $* FAILED >> test.log ) \ ! else ( move /y test.out $*.out > nul ) ! ! # Must run test1 first to create small.vim. ! # This rule must come after the one that copies the input files to dostmp to ! # allow for running an individual test. ! $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32) $(NEW_TESTS_RES): $(SCRIPTS_FIRST) report: @rem without the +eval feature test_result.log is a copy of test.log --- 9,31 ---- !include Make_all.mak ! # Explicit dependencies. ! test_options.res test_alot.res: opt_test.vim ! ! TEST_OUTFILES = $(SCRIPTS_TINY_OUT) DOSTMP = dostmp DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test) DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in) .SUFFIXES: .in .out .res .vim ! nongui: nolog tinytests newtests report ! gui: nolog tinytests newtests report ! tiny: nolog tinytests report ! benchmark: $(SCRIPTS_BENCH) report: @rem without the +eval feature test_result.log is a copy of test.log *************** *** 71,80 **** @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \ else ( echo ALL DONE ) clean: ! -del *.out ! -del *.failed ! -del *.res -if exist $(DOSTMP) rd /s /q $(DOSTMP) -if exist test.in del test.in -if exist test.ok del test.ok --- 38,61 ---- @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \ else ( echo ALL DONE ) + + # Execute an individual new style test, e.g.: + # nmake -f Make_dos.mak test_largefile + $(NEW_TESTS): + -if exist $@.res del $@.res + -if exist test.log del test.log + -if exist messages del messages + @$(MAKE) -nologo -f Make_dos.mak $@.res VIMPROG=$(VIMPROG) + @type messages + @if exist test.log exit 1 + + + # Delete files that may interfere with running tests. This includes some files + # that may result from working on the tests, not only from running them. clean: ! -if exist *.out $(DEL) *.out ! -if exist *.failed $(DEL) *.failed ! -if exist *.res $(DEL) *.res -if exist $(DOSTMP) rd /s /q $(DOSTMP) -if exist test.in del test.in -if exist test.ok del test.ok *************** *** 85,92 **** -if exist Xdir1 rd /s /q Xdir1 -if exist Xfind rd /s /q Xfind -if exist XfakeHOME rd /s /q XfakeHOME ! -del X* ! -for /d %i in (X*) do @rmdir /s/q %i -if exist viminfo del viminfo -if exist test.log del test.log -if exist test_result.log del test_result.log --- 66,73 ---- -if exist Xdir1 rd /s /q Xdir1 -if exist Xfind rd /s /q Xfind -if exist XfakeHOME rd /s /q XfakeHOME ! -if exist X* $(DEL) X* ! -for /d %i in (X*) do @rd /s/q %i -if exist viminfo del viminfo -if exist test.log del test.log -if exist test_result.log del test_result.log *************** *** 99,112 **** -if exist test_result.log del test_result.log -if exist messages del messages - benchmark: test_bench_regexp.res ! test_bench_regexp.res: test_bench_regexp.vim ! -if exist benchmark.out del benchmark.out ! @echo $(VIMPROG) > vimcmd ! $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim ! @del vimcmd ! @IF EXIST benchmark.out ( type benchmark.out ) # New style of tests uses Vim script with assert calls. These are easier # to write and a lot easier to read and debug. --- 80,120 ---- -if exist test_result.log del test_result.log -if exist messages del messages ! # Tiny tests. Works even without the +eval feature. ! tinytests: $(SCRIPTS_TINY_OUT) ! ! # Copy the input files to dostmp, changing the fileformat to dos. ! $(DOSTMP_INFILES): $(*B).in ! if not exist $(DOSTMP)\NUL md $(DOSTMP) ! if exist $@ del $@ ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $(*B).in ! ! # For each input file dostmp/test99.in run the tests. ! # This moves test99.in to test99.in.bak temporarily. ! $(TEST_OUTFILES): $(DOSTMP)\$(*B).in ! -@if exist test.out DEL test.out ! -@if exist $(DOSTMP)\$(*B).out DEL $(DOSTMP)\$(*B).out ! move $(*B).in $(*B).in.bak > nul ! copy $(DOSTMP)\$(*B).in $(*B).in > nul ! copy $(*B).ok test.ok > nul ! $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(*B).in ! -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out > nul ! -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in > nul ! -@if exist test.ok del test.ok ! -@if exist Xdir1 rd /s /q Xdir1 ! -@if exist Xfind rd /s /q Xfind ! -@if exist XfakeHOME rd /s /q XfakeHOME ! -@del X* ! -@if exist viminfo del viminfo ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \ ! $(DOSTMP)\$(*B).out ! @diff test.out $*.ok & if errorlevel 1 \ ! ( move /y test.out $*.failed > nul \ ! & del $(DOSTMP)\$(*B).out \ ! & echo $* FAILED >> test.log ) \ ! else ( move /y test.out $*.out > nul ) ! # New style of tests uses Vim script with assert calls. These are easier # to write and a lot easier to read and debug. *************** *** 132,138 **** $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S runtest.vim $*.vim @del vimcmd - test_options.res test_alot.res: opt_test.vim - opt_test.vim: ../optiondefs.h gen_opt_test.vim $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../optiondefs.h --- 140,151 ---- $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S runtest.vim $*.vim @del vimcmd opt_test.vim: ../optiondefs.h gen_opt_test.vim $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../optiondefs.h + + test_bench_regexp.res: test_bench_regexp.vim + -if exist benchmark.out del benchmark.out + @echo $(VIMPROG) > vimcmd + $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim + @del vimcmd + @IF EXIST benchmark.out ( type benchmark.out ) *** ../vim-8.2.1438/src/testdir/Make_ming.mak 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Make_ming.mak 2020-08-13 18:21:29.519663425 +0200 *************** *** 6,67 **** # # Requires a set of Unix tools: echo, diff, etc. ! ifneq (sh.exe, $(SHELL)) ! DEL = rm -f ! DELDIR = rm -rf ! MV = mv ! CP = cp ! CAT = cat ! DIRSLASH = / ! else DEL = del DELDIR = rd /s /q ! MV = rename ! CP = copy CAT = type - DIRSLASH = \\ - endif ! VIMPROG = ..$(DIRSLASH)vim ! default: vimall include Make_all.mak ! SCRIPTS_BENCH = test_bench_regexp.res ! # Must run test1 first to create small.vim. ! $(NEW_TESTS_RES): $(SCRIPTS_FIRST) .SUFFIXES: .in .out .res .vim ! vimall: fixff $(SCRIPTS_FIRST) newtests ! @echo ALL DONE ! nongui: fixff nolog $(SCRIPTS_FIRST) newtests ! @echo ALL DONE ! ! benchmark: $(SCRIPTS_BENCH) ! small: nolog ! @echo ALL DONE ! gui: fixff nolog $(SCRIPTS_FIRST) newtests ! @echo ALL DONE ! win32: fixff nolog $(SCRIPTS_FIRST) newtests ! @echo ALL DONE - # TODO: find a way to avoid changing the distributed files. - fixff: - -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=dos|upd" +q *.in *.ok - -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=unix|upd" +q \ - dotest.in clean: -@if exist *.out $(DEL) *.out -@if exist *.failed $(DEL) *.failed -@if exist *.res $(DEL) *.res -@if exist test.in $(DEL) test.in -@if exist test.ok $(DEL) test.ok -@if exist small.vim $(DEL) small.vim --- 6,74 ---- # # Requires a set of Unix tools: echo, diff, etc. ! # Don't use unix-like shell. ! SHELL = cmd.exe ! DEL = del DELDIR = rd /s /q ! MV = move /y ! CP = copy /y CAT = type ! VIMPROG = ..\\vim ! default: nongui include Make_all.mak ! # Explicit dependencies. ! test_options.res test_alot.res: opt_test.vim ! TEST_OUTFILES = $(SCRIPTS_TINY_OUT) ! DOSTMP = dostmp ! # Keep $(DOSTMP)/*.in ! .PRECIOUS: $(patsubst %.out, $(DOSTMP)/%.in, $(TEST_OUTFILES)) .SUFFIXES: .in .out .res .vim ! nongui: nolog tinytests newtests report ! gui: nolog tinytests newtests report ! tiny: nolog tinytests report ! benchmark: $(SCRIPTS_BENCH) ! report: ! @rem without the +eval feature test_result.log is a copy of test.log ! @if exist test.log ( copy /y test.log test_result.log > nul ) \ ! else ( echo No failures reported > test_result.log ) ! $(VIMPROG) -u NONE $(NO_INITS) -S summarize.vim messages ! @echo. ! @echo Test results: ! @cmd /c type test_result.log ! @if exist test.log ( echo TEST FAILURE & exit /b 1 ) \ ! else ( echo ALL DONE ) ! ! ! # Execute an individual new style test, e.g.: ! # mingw32-make -f Make_ming.mak test_largefile ! $(NEW_TESTS): ! -if exist $@.res del $@.res ! -if exist test.log del test.log ! -if exist messages del messages ! @$(MAKE) -f Make_ming.mak $@.res VIMPROG=$(VIMPROG) --no-print-directory ! @type messages ! @if exist test.log exit 1 + # Delete files that may interfere with running tests. This includes some files + # that may result from working on the tests, not only from running them. clean: -@if exist *.out $(DEL) *.out -@if exist *.failed $(DEL) *.failed -@if exist *.res $(DEL) *.res + -@if exist $(DOSTMP) rd /s /q $(DOSTMP) -@if exist test.in $(DEL) test.in -@if exist test.ok $(DEL) test.ok -@if exist small.vim $(DEL) small.vim *************** *** 72,107 **** -@if exist Xfind $(DELDIR) Xfind -@if exist XfakeHOME $(DELDIR) XfakeHOME -@if exist X* $(DEL) X* -@if exist viminfo $(DEL) viminfo -@if exist test.log $(DEL) test.log -@if exist messages $(DEL) messages -@if exist opt_test.vim $(DEL) opt_test.vim - test1.out: test1.in - -@if exist wrongtermsize $(DEL) wrongtermsize - $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in test1.in - -@if exist wrongtermsize ( \ - echo Vim window too small- must be 80x25 or larger && exit 1 \ - ) - -@if exist test.out $(DEL) test.out - -@if exist viminfo $(DEL) viminfo - nolog: -@if exist test.log $(DEL) test.log -@if exist messages $(DEL) messages ! test_bench_regexp.res: test_bench_regexp.vim ! -$(DEL) benchmark.out ! @echo $(VIMPROG) > vimcmd ! $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim ! @$(DEL) vimcmd ! $(CAT) benchmark.out # New style of tests uses Vim script with assert calls. These are easier # to write and a lot easier to read and debug. # Limitation: Only works with the +eval feature. ! newtests: $(NEW_TESTS_RES) .vim.res: @echo $(VIMPROG) > vimcmd --- 79,141 ---- -@if exist Xfind $(DELDIR) Xfind -@if exist XfakeHOME $(DELDIR) XfakeHOME -@if exist X* $(DEL) X* + -@for /d %%i in (X*) do @rd /s/q %%i -@if exist viminfo $(DEL) viminfo -@if exist test.log $(DEL) test.log + -@if exist test_result.log del test_result.log -@if exist messages $(DEL) messages + -@if exist benchmark.out del benchmark.out -@if exist opt_test.vim $(DEL) opt_test.vim nolog: -@if exist test.log $(DEL) test.log + -@if exist test_result.log del test_result.log -@if exist messages $(DEL) messages ! ! # Tiny tests. Works even without the +eval feature. ! tinytests: $(SCRIPTS_TINY_OUT) ! ! # Copy the input files to dostmp, changing the fileformat to dos. ! $(DOSTMP)/%.in : %.in ! if not exist $(DOSTMP)\nul mkdir $(DOSTMP) ! if not exist $@ $(DEL) $@ ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=dos|f $@|wq" $< ! ! # For each input file dostmp/test99.in run the tests. ! # This moves test99.in to test99.in.bak temporarily. ! %.out : $(DOSTMP)/%.in ! -@if exist test.out $(DEL) test.out ! -@if exist $(DOSTMP)\$@ $(DEL) $(DOSTMP)\$@ ! $(MV) $(notdir $<) $(notdir $<).bak > NUL ! $(CP) $(DOSTMP)\$(notdir $<) $(notdir $<) > NUL ! $(CP) $(basename $@).ok test.ok > NUL ! $(VIMPROG) -u dos.vim $(NO_INITS) -s dotest.in $(notdir $<) ! -@if exist test.out $(MV) test.out $(DOSTMP)\$@ > NUL ! -@if exist $(notdir $<).bak $(MV) $(notdir $<).bak $(notdir $<) > NUL ! -@if exist test.ok $(DEL) test.ok ! -@if exist Xdir1 $(DELDIR) /s /q Xdir1 ! -@if exist Xfind $(DELDIR) Xfind ! -@if exist XfakeHOME $(DELDIR) XfakeHOME ! -@del X* ! -@if exist viminfo del viminfo ! $(VIMPROG) -u dos.vim $(NO_INITS) "+set ff=unix|f test.out|wq" \ ! $(DOSTMP)\$@ ! @diff test.out $(basename $@).ok & if errorlevel 1 \ ! ( $(MV) test.out $(basename $@).failed > NUL \ ! & del $(DOSTMP)\$@ \ ! & echo $(basename $@) FAILED >> test.log ) \ ! else ( $(MV) test.out $(basename $@).out > NUL ) ! # New style of tests uses Vim script with assert calls. These are easier # to write and a lot easier to read and debug. # Limitation: Only works with the +eval feature. ! newtests: newtestssilent ! @if exist messages (findstr "SKIPPED FAILED" messages > nul) && type messages ! ! newtestssilent: $(NEW_TESTS_RES) .vim.res: @echo $(VIMPROG) > vimcmd *************** *** 118,124 **** $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S runtest.vim $< @$(DEL) vimcmd - test_options.res test_alot.res: opt_test.vim - opt_test.vim: ../optiondefs.h gen_opt_test.vim $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../optiondefs.h --- 152,163 ---- $(VIMPROG) -u gui_preinit.vim -U gui_init.vim $(NO_PLUGINS) -S runtest.vim $< @$(DEL) vimcmd opt_test.vim: ../optiondefs.h gen_opt_test.vim $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../optiondefs.h + + test_bench_regexp.res: test_bench_regexp.vim + -$(DEL) benchmark.out + @echo $(VIMPROG) > vimcmd + $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim + @$(DEL) vimcmd + $(CAT) benchmark.out *** ../vim-8.2.1438/src/testdir/Make_vms.mms 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Make_vms.mms 2020-08-13 18:54:12.450743616 +0200 *************** *** 4,10 **** # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # ! # Last change: 2020 Jul 03 # # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. # Edit the lines in the Configuration section below to select. --- 4,10 ---- # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # ! # Last change: 2020 Aug 13 # # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. # Edit the lines in the Configuration section below to select. *************** *** 37,43 **** .SUFFIXES : .out .in ! SCRIPT = test1.out test77a.out .IFDEF WANT_GUI GUI_OPTION = -g --- 37,45 ---- .SUFFIXES : .out .in ! SCRIPT = test20.out test21.out test22.out test23.out test24.out \ ! test25.out test26.out test27.out \ ! test77a.out .IFDEF WANT_GUI GUI_OPTION = -g *** ../vim-8.2.1438/src/testdir/Makefile 2020-08-11 20:42:15.466616325 +0200 --- src/testdir/Makefile 2020-08-13 18:21:29.519663425 +0200 *************** *** 12,18 **** # Comment out this line to see the verbose output of tests. # # Catches SwapExists to avoid hanging at the ATTENTION prompt. ! REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' > /dev/null # Uncomment this line to use valgrind for memory leaks and extra warnings. # The output goes into a file "valgrind.testN" --- 12,18 ---- # Comment out this line to see the verbose output of tests. # # Catches SwapExists to avoid hanging at the ATTENTION prompt. ! #REDIR_TEST_TO_NULL = --cmd 'au SwapExists * let v:swapchoice = "e"' > /dev/null # Uncomment this line to use valgrind for memory leaks and extra warnings. # The output goes into a file "valgrind.testN" *************** *** 23,41 **** default: nongui # The list of tests is common to all systems. ! # This defines SCRIPTS_FIRST, NEW_TESTS and NEW_TESTS_RES include Make_all.mak # Explicit dependencies. test_options.res test_alot.res: opt_test.vim - SCRIPTS_BENCH = test_bench_regexp.res - .SUFFIXES: .in .out .res .vim ! nongui: nolog $(SCRIPTS_FIRST) newtests report ! gui: nolog $(SCRIPTS_FIRST) newtests report benchmark: $(SCRIPTS_BENCH) --- 23,41 ---- default: nongui # The list of tests is common to all systems. ! # This defines SCRIPTS_TINY_OUT, NEW_TESTS and NEW_TESTS_RES. include Make_all.mak # Explicit dependencies. test_options.res test_alot.res: opt_test.vim .SUFFIXES: .in .out .res .vim ! nongui: nolog tinytests newtests report ! ! gui: nolog tinytests newtests report ! tiny: nolog tinytests report benchmark: $(SCRIPTS_BENCH) *************** *** 54,63 **** else echo ALL DONE; \ fi" ! $(SCRIPTS_FIRST) $(NEW_TESTS_RES): $(VIMPROG) ! ! # Must run test1 first to create small.vim. ! $(NEW_TESTS_RES): $(SCRIPTS_FIRST) # Execute an individual new style test, e.g.: --- 54,60 ---- else echo ALL DONE; \ fi" ! $(SCRIPTS_TINY_OUT) $(NEW_TESTS_RES): $(VIMPROG) # Execute an individual new style test, e.g.: *************** *** 81,87 **** fi RM_ON_RUN = test.out X* viminfo ! RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim test.ok benchmark.out RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE) $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u unix.vim $(NO_INITS) -s dotest.in # Delete files that may interfere with running tests. This includes some files --- 78,84 ---- fi RM_ON_RUN = test.out X* viminfo ! RM_ON_START = test.ok benchmark.out RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE) $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u unix.vim $(NO_INITS) -s dotest.in # Delete files that may interfere with running tests. This includes some files *************** *** 93,114 **** -rm -f valgrind.* -rm -f asan.* ! test1.out: test1.in ! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize $(RUN_VIM) $*.in $(REDIR_TEST_TO_NULL) - @/bin/sh -c "if test -f wrongtermsize; \ - then echo; \ - echo test1 FAILED - terminal size must be 80x24 or larger; \ - echo; exit 1; \ - elif diff test.out $*.ok; \ - then mv -f test.out $*.out; \ - else echo; \ - echo test1 FAILED - Something basic is wrong; \ - echo; exit 1; fi" - -rm -rf X* viminfo ! nolog: ! -rm -f test.log messages # New style of tests uses Vim script with assert calls. These are easier --- 90,123 ---- -rm -f valgrind.* -rm -f asan.* ! nolog: ! -rm -f test.log test_result.log messages ! ! ! # Tiny tests. Works even without the +eval feature. ! tinytests: $(SCRIPTS_TINY_OUT) ! ! .in.out: ! -rm -rf $*.failed test.ok $(RM_ON_RUN) ! cp $*.ok test.ok ! @# Sleep a moment to avoid that the xterm title is messed up. ! @# 200 msec is sufficient, but only modern sleep supports a fraction of ! @# a second, fall back to a second if it fails. ! @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" $(RUN_VIM) $*.in $(REDIR_TEST_TO_NULL) ! @# Check if the test.out file matches test.ok. ! @/bin/sh -c "if test -f test.out; then \ ! if diff test.out $*.ok; \ ! then mv -f test.out $*.out; \ ! else echo $* FAILED >>test.log; mv -f test.out $*.failed; \ ! fi \ ! else echo $* NO OUTPUT >>test.log; \ ! fi" ! @/bin/sh -c "if test -f valgrind; then\ ! mv -f valgrind valgrind.$*; \ ! fi" ! -rm -rf X* test.ok viminfo # New style of tests uses Vim script with assert calls. These are easier *************** *** 148,156 **** test_bench_regexp.res: test_bench_regexp.vim -rm -rf benchmark.out $(RM_ON_RUN) ! # Sleep a moment to avoid that the xterm title is messed up. ! # 200 msec is sufficient, but only modern sleep supports a fraction of ! # a second, fall back to a second if it fails. @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" $(RUN_VIMTEST) $(NO_INITS) -S runtest.vim $*.vim $(REDIR_TEST_TO_NULL) @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi" --- 157,165 ---- test_bench_regexp.res: test_bench_regexp.vim -rm -rf benchmark.out $(RM_ON_RUN) ! @# Sleep a moment to avoid that the xterm title is messed up. ! @# 200 msec is sufficient, but only modern sleep supports a fraction of ! @# a second, fall back to a second if it fails. @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" $(RUN_VIMTEST) $(NO_INITS) -S runtest.vim $*.vim $(REDIR_TEST_TO_NULL) @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi" *** ../vim-8.2.1438/src/testdir/runtest.vim 2020-08-07 18:12:14.426099006 +0200 --- src/testdir/runtest.vim 2020-08-13 18:21:29.519663425 +0200 *************** *** 46,52 **** " Without the +eval feature we can't run these tests, bail out. ! so small.vim " In the GUI we can always change the screen size. if has('gui_running') --- 46,54 ---- " Without the +eval feature we can't run these tests, bail out. ! silent! while 0 ! qa! ! silent! endwhile " In the GUI we can always change the screen size. if has('gui_running') *** ../vim-8.2.1438/src/testdir/test1.in 2018-07-14 21:45:54.000000000 +0200 --- src/testdir/test1.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,52 **** - - First a simple test to check if the test script works. - - If Vim was not compiled with the +eval feature, the small.vim script will be - set to copy the test.ok file to test.out, so that it looks like the test - succeeded. Otherwise an empty small.vim is written. small.vim is sourced by - tests that require the +eval feature or other features that are missing in the - small version. - - If Vim was not compiled with the +windows feature, the tiny.vim script will be - set like small.vim above. tiny.vim is sourced by tests that require the - +windows feature or other features that are missing in the tiny version. - - If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will - be set like small.vim above. mbyte.vim is sourced by tests that require the - +multi_byte feature. - Similar logic is applied to the +mzscheme feature, using mzscheme.vim. - - STARTTEST - :" If columns or lines are too small, create wrongtermsize. - :" (Some tests will fail. When columns and/or lines are small) - :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif - :" - :" Write a single line to test.out to check if testing works at all. - :%d - athis is a test:w! test.out - :" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test. - 0D:w! small.vim - :w! tiny.vim - ae! test.ok - w! test.out - qa! - :w! mbyte.vim - :w! mzscheme.vim - :" - :" If +multi_byte feature supported, make mbyte.vim empty. - :if has("multi_byte") | sp another | w! mbyte.vim | q | endif - :" - :" If +mzscheme feature supported, make mzscheme.vim empty. - :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif - :" - :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty. - :" Otherwise write small.vim to skip the test. - :if 1 | q! | endif - :w! small.vim - :" If +windows feature not supported :sp will fail and tiny.vim will be - :" written to skip the test. - :sp another - :wq! tiny.vim - :qa! - ENDTEST - --- 0 ---- *** ../vim-8.2.1438/src/testdir/test1.ok 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test1.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1 **** - this is a test --- 0 ---- *** ../vim-8.2.1438/src/testdir/test20.in 2020-08-13 18:57:19.558307121 +0200 --- src/testdir/test20.in 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,27 ---- + 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 + 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 + + OxjAykdd *** ../vim-8.2.1438/src/testdir/test20.ok 2020-08-13 18:57:19.562307113 +0200 --- src/testdir/test20.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,10 ---- + 123start here56 + 234start here67 + 345start here78 + + test text test tex rt here + somext + tesext + test text + + *** ../vim-8.2.1438/src/testdir/test21.in 2020-08-13 18:57:19.566307101 +0200 --- src/testdir/test21.in 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,13 ---- + Tests for file with some lines ending in CTRL-M, some not + + STARTTEST + :set ta tx + :e! + :$-3,$w! test.out + :qa! + ENDTEST + + this lines ends in a + this one doesn't + this one does + and the last one doesn't *** ../vim-8.2.1438/src/testdir/test21.ok 2020-08-13 18:57:19.570307094 +0200 --- src/testdir/test21.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,4 ---- + this lines ends in a + this one doesn't + this one does + and the last one doesn't *** ../vim-8.2.1438/src/testdir/test22.in 2020-08-13 18:57:19.574307083 +0200 --- src/testdir/test22.in 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,15 ---- + Tests for complicated + argument to :edit command + + STARTTEST + :$-1w! Xfile1 + :$w! Xfile2 + :edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w + :w! test.out + :e Xfile1 + :w >> test.out + :qa! + ENDTEST + + The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar" + foo|bar + foo/bar *** ../vim-8.2.1438/src/testdir/test22.ok 2020-08-13 18:57:19.578307071 +0200 --- src/testdir/test22.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,2 ---- + fooSLASHbar + fooPIPEbar *** ../vim-8.2.1438/src/testdir/test23.in 2020-08-13 18:57:19.582307063 +0200 --- src/testdir/test23.in 2020-08-13 18:33:00.768851156 +0200 *************** *** 0 **** --- 1,89 ---- + Tests for regexp with backslash and other special characters inside [] + Also test backslash for hex/octal numbered character. + + STARTTEST + :set nocompatible viminfo+=nviminfo + /[\x] + x/[\t\]] + x/[]y] + x/[\]] + x/[y^] + x/[$y] + x/[\x61] + x/[\x60-\x64] + xj0/[\x785] + x/[\o143] + x/[\o140-\o144] + x/[\o417] + x/\%x42 + x/\%o103 + x/[\x00] + x + :s/[\x00-\x10]//g + + :s/[\x-z]\+// + + :s/[\u-z]\{2,}// + + :s/\(a\)\+// + + :s/\(a*\)\+// + + :s/\(a*\)*// + + :s/\(a\)\{2,3}/A/ + + :s/\(a\)\{-2,3}/A/ + + :s/\(a\)*\(12\)\@>/A/ + + :s/\(foo\)\@\|\.\)\=\)\+=/XX/ + + :s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/ + + :s/aaa/xyz/ + + :s/~/bcd/ + + :s/~\+/BB/ + :" + :?start?,$w! test.out + :qa! + ENDTEST + + start + test \text test text + test text test text + test text ]test text + test ]text test text + test text te^st text + test te$xt test text + test taext test text x61 + test tbext test text x60-x64 + test 5text test text x78 5 + testc text test text o143 + tesdt text test text o140-o144 + test7 text test text o41 7 + test text tBest text \%x42 + test text teCst text \%o103 + test text test text [\x00] + test text test text [\x00-\x10] + test \xyztext test text [\x-z] + test text tev\uyst text [\u-z] + xx aaaaa xx a + xx aaaaa xx a + xx aaaaa xx a + xx aaaaa xx + xx aaaaa xx + xx aaa12aa xx + xx foobar xbar xx + xx an file xx + x= 9; + hh= 77; + aaa + xyz + bcdbcdbcd *** ../vim-8.2.1438/src/testdir/test23.ok 2020-08-13 18:57:19.586307051 +0200 --- src/testdir/test23.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,32 ---- + start + test text test text + test text test text + test text test text + test text test text + test text test text + test text test text + test text test text x61 + test text test text x60-x64 + test text test text x78 5 + test text test text o143 + test text test text o140-o144 + test text test text o41 7 + test text test text \%x42 + test text test text \%o103 + test text test text [\x00] + test text test text [\x00-\x10] + test text test text [\x-z] + test text test text [\u-z] + xx xx a + xx aaaaa xx a + xx aaaaa xx a + xx Aaa xx + xx Aaaa xx + xx Aaa xx + xx foobar xA xx + xx an A xx + XX 9; + YY 77; + xyz + bcd + BB *** ../vim-8.2.1438/src/testdir/test24.in 2020-08-13 18:57:19.590307044 +0200 --- src/testdir/test24.in 2020-08-13 18:34:07.092577981 +0200 *************** *** 0 **** --- 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//0/g + :'m,$w! test.out + :qa! + ENDTEST + + firstline + map __1 afirst + map __2 asecond + map __3 athird + map __4 afourth + map __5 afifth + map __1 asd + map __2 asd + map __3 asd + map __4 asd + map __5 asd + lastline + *** ../vim-8.2.1438/src/testdir/test24.ok 2020-08-13 18:57:19.594307032 +0200 --- src/testdir/test24.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,2 ---- + sd + map __2 asdsecondsdsd0map __5 asd0fifth *** ../vim-8.2.1438/src/testdir/test25.in 2020-08-13 18:57:19.598307024 +0200 --- src/testdir/test25.in 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,108 ---- + Test character classes in regexp using regexpengine 0, 1, 2. + + STARTTEST + /^start-here/+1 + Y:s/\%#=0\d//g + p:s/\%#=1\d//g + p:s/\%#=2\d//g + p:s/\%#=0[0-9]//g + p:s/\%#=1[0-9]//g + p:s/\%#=2[0-9]//g + p:s/\%#=0\D//g + p:s/\%#=1\D//g + p:s/\%#=2\D//g + p:s/\%#=0[^0-9]//g + p:s/\%#=1[^0-9]//g + p:s/\%#=2[^0-9]//g + p:s/\%#=0\o//g + p:s/\%#=1\o//g + p:s/\%#=2\o//g + p:s/\%#=0[0-7]//g + p:s/\%#=1[0-7]//g + p:s/\%#=2[0-7]//g + p:s/\%#=0\O//g + p:s/\%#=1\O//g + p:s/\%#=2\O//g + p:s/\%#=0[^0-7]//g + p:s/\%#=1[^0-7]//g + p:s/\%#=2[^0-7]//g + p:s/\%#=0\x//g + p:s/\%#=1\x//g + p:s/\%#=2\x//g + p:s/\%#=0[0-9A-Fa-f]//g + p:s/\%#=1[0-9A-Fa-f]//g + p:s/\%#=2[0-9A-Fa-f]//g + p:s/\%#=0\X//g + p:s/\%#=1\X//g + p:s/\%#=2\X//g + p:s/\%#=0[^0-9A-Fa-f]//g + p:s/\%#=1[^0-9A-Fa-f]//g + p:s/\%#=2[^0-9A-Fa-f]//g + p:s/\%#=0\w//g + p:s/\%#=1\w//g + p:s/\%#=2\w//g + p:s/\%#=0[0-9A-Za-z_]//g + p:s/\%#=1[0-9A-Za-z_]//g + p:s/\%#=2[0-9A-Za-z_]//g + p:s/\%#=0\W//g + p:s/\%#=1\W//g + p:s/\%#=2\W//g + p:s/\%#=0[^0-9A-Za-z_]//g + p:s/\%#=1[^0-9A-Za-z_]//g + p:s/\%#=2[^0-9A-Za-z_]//g + p:s/\%#=0\h//g + p:s/\%#=1\h//g + p:s/\%#=2\h//g + p:s/\%#=0[A-Za-z_]//g + p:s/\%#=1[A-Za-z_]//g + p:s/\%#=2[A-Za-z_]//g + p:s/\%#=0\H//g + p:s/\%#=1\H//g + p:s/\%#=2\H//g + p:s/\%#=0[^A-Za-z_]//g + p:s/\%#=1[^A-Za-z_]//g + p:s/\%#=2[^A-Za-z_]//g + p:s/\%#=0\a//g + p:s/\%#=1\a//g + p:s/\%#=2\a//g + p:s/\%#=0[A-Za-z]//g + p:s/\%#=1[A-Za-z]//g + p:s/\%#=2[A-Za-z]//g + p:s/\%#=0\A//g + p:s/\%#=1\A//g + p:s/\%#=2\A//g + p:s/\%#=0[^A-Za-z]//g + p:s/\%#=1[^A-Za-z]//g + p:s/\%#=2[^A-Za-z]//g + p:s/\%#=0\l//g + p:s/\%#=1\l//g + p:s/\%#=2\l//g + p:s/\%#=0[a-z]//g + p:s/\%#=1[a-z]//g + p:s/\%#=2[a-z]//g + p:s/\%#=0\L//g + p:s/\%#=1\L//g + p:s/\%#=2\L//g + p:s/\%#=0[^a-z]//g + p:s/\%#=1[^a-z]//g + p:s/\%#=2[^a-z]//g + p:s/\%#=0\u//g + p:s/\%#=1\u//g + p:s/\%#=2\u//g + p:s/\%#=0[A-Z]//g + p:s/\%#=1[A-Z]//g + p:s/\%#=2[A-Z]//g + p:s/\%#=0\U//g + p:s/\%#=1\U//g + p:s/\%#=2\U//g + p:s/\%#=0[^A-Z]//g + p:s/\%#=1[^A-Z]//g + p:s/\%#=2[^A-Z]//g + p:s/\%#=0\%204l^\t...//g + p:s/\%#=1\%205l^\t...//g + p:s/\%#=2\%206l^\t...//g + :/^start-here/+1,$wq! test.out + ENDTEST + + start-here + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé *** ../vim-8.2.1438/src/testdir/test25.ok 2020-08-13 18:57:19.602307014 +0200 --- src/testdir/test25.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,99 ---- + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + 0123456789 + 0123456789 + 0123456789 + 0123456789 + 0123456789 + 0123456789 + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + 01234567 + 01234567 + 01234567 + 01234567 + 01234567 + 01234567 + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~€‚›¦±¼ÇÓé + 0123456789ABCDEFabcdef + 0123456789ABCDEFabcdef + 0123456789ABCDEFabcdef + 0123456789ABCDEFabcdef + 0123456789ABCDEFabcdef + 0123456789ABCDEFabcdef + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + 0123456789ABCDEFGHIXYZ_abcdefghiwxyz + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~€‚›¦±¼ÇÓé + ABCDEFGHIXYZ_abcdefghiwxyz + ABCDEFGHIXYZ_abcdefghiwxyz + ABCDEFGHIXYZ_abcdefghiwxyz + ABCDEFGHIXYZ_abcdefghiwxyz + ABCDEFGHIXYZ_abcdefghiwxyz + ABCDEFGHIXYZ_abcdefghiwxyz + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~€‚›¦±¼ÇÓé + ABCDEFGHIXYZabcdefghiwxyz + ABCDEFGHIXYZabcdefghiwxyz + ABCDEFGHIXYZabcdefghiwxyz + ABCDEFGHIXYZabcdefghiwxyz + ABCDEFGHIXYZabcdefghiwxyz + ABCDEFGHIXYZabcdefghiwxyz + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~€‚›¦±¼ÇÓé + abcdefghiwxyz + abcdefghiwxyz + abcdefghiwxyz + abcdefghiwxyz + abcdefghiwxyz + abcdefghiwxyz + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + ABCDEFGHIXYZ + ABCDEFGHIXYZ + ABCDEFGHIXYZ + ABCDEFGHIXYZ + ABCDEFGHIXYZ + ABCDEFGHIXYZ + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé + !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~€‚›¦±¼ÇÓé *** ../vim-8.2.1438/src/testdir/test26.in 2020-08-13 18:57:19.606307002 +0200 --- src/testdir/test26.in 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,24 ---- + Test for writing and reading a file of over 100 Kbyte + + 1 line: "This is the start" + 3001 lines: "This is the leader" + 1 line: "This is the middle" + 3001 lines: "This is the trailer" + 1 line: "This is the end" + + STARTTEST + :%d + aThis is the start + This is the leader + This is the middle + This is the trailer + This is the endkY3000p2GY3000p + :w! Xtest + :%d + :e! Xtest + :.w! test.out + 3003G:.w >>test.out + 6005G:.w >>test.out + :qa! + ENDTEST + *** ../vim-8.2.1438/src/testdir/test26.ok 2020-08-13 18:57:19.610306994 +0200 --- src/testdir/test26.ok 2020-08-13 18:21:29.519663425 +0200 *************** *** 0 **** --- 1,3 ---- + This is the start + This is the middle + This is the end *** ../vim-8.2.1438/src/testdir/test27.in 2020-08-13 18:57:19.614306982 +0200 --- src/testdir/test27.in 2020-08-13 18:29:37.141687384 +0200 *************** *** 0 **** --- 1,130 ---- + Test for writing and reading a file starting with a BOM + + STARTTEST + :so mbyte.vim + :set encoding=utf-8 + :set fileencodings=ucs-bom,latin-1 + :set ff=unix ffs=unix " This changes the file for DOS and MAC + :" --- Write the test files + :/^latin-1$/+1w! Xtest0 + :/^utf-8$/+1w! Xtest1 + :/^utf-8-err$/+1w! Xtest2 + :/^ucs-2$/+1w! Xtest3 + :/^ucs-2le$/+1w! Xtest4 + :" Need to add a NUL byte after the NL byte + :set bin + :e! Xtest4 " Ignore change from setting 'ff' + o:set noeol + :w + :set ffs& nobinary " Allow default test42.in format + :e # + :set ff=unix " Format for files to write + :/^ucs-4$/+1w! Xtest5 + :/^ucs-4le$/+1w! Xtest6 + :" Need to add three NUL bytes after the NL byte + :set bin + :e! Xtest6 " ! for when setting 'ff' is a change + o:set noeol + :w + :set nobin + :e # + :" + :" --- Check that editing a latin-1 file doesn't see a BOM + :e! Xtest0 + :redir! >test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set bomb fenc=latin-1 + :w! Xtest0x + :" + :" --- Check utf-8 + :e! Xtest1 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=utf-8 + :w! Xtest1x + :" + :" --- Check utf-8 with an error (will fall back to latin-1) + :e! Xtest2 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=utf-8 + :w! Xtest2x + :" + :" --- Check ucs-2 + :e! Xtest3 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=ucs-2 + :w! Xtest3x + :" + :" --- Check ucs-2le + :e! Xtest4 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=ucs-2le + :w! Xtest4x + :" + :" --- Check ucs-4 + :e! Xtest5 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=ucs-4 + :w! Xtest5x + :" + :" --- Check ucs-4le + :e! Xtest6 + :redir >>test.out + :set fileencoding bomb? + :redir END + :set fenc=latin-1 + :w >>test.out + :set fenc=ucs-4le + :w! Xtest6x + :" + :" --- Check the files written with BOM + :set bin + :e! test.out + :$r Xtest0x + :$r Xtest1x + :$r Xtest2x + :$r Xtest3x + :$r Xtest4x + :$r Xtest5x + :$r Xtest6x + :set nobin ff& " Write the file in default format + :w! test.out + :qa! + ENDTEST + + latin-1 + þþlatin-1 + utf-8 + utf-8 + utf-8-err + utf-8€err + ucs-2 + þÿucs-2 + ucs-2le + ÿþucs-2le + ucs-4 + þÿucs-4 + ucs-4le + ÿþucs-4le *** ../vim-8.2.1438/src/testdir/test27.ok 2020-08-13 18:57:19.618306975 +0200 --- src/testdir/test27.ok 2020-08-13 18:31:10.985302494 +0200 *************** *** 0 **** --- 1,44 ---- + + + fileencoding=latin1 + nobomb + þþlatin-1 + + + fileencoding=utf-8 + bomb + utf-8 + + + fileencoding=latin1 + nobomb + utf-8€err + + + fileencoding=utf-16 + bomb + ucs-2 + + + fileencoding=utf-16le + bomb + ucs-2le + + + fileencoding=ucs-4 + bomb + ucs-4 + + + fileencoding=ucs-4le + bomb + ucs-4le + þþlatin-1 + utf-8 + utf-8€err + þÿucs-2 + ÿþucs-2le + + þÿucs-4 + ÿþucs-4le + *** ../vim-8.2.1438/src/testdir/test_options.vim 2020-08-12 18:50:31.883655785 +0200 --- src/testdir/test_options.vim 2020-08-13 18:21:29.519663425 +0200 *************** *** 276,286 **** " Expand directories. call feedkeys(":set cdpath=./\\\"\", 'tx') call assert_match(' ./samples/ ', @:) ! call assert_notmatch(' ./small.vim ', @:) " Expand files and directories. call feedkeys(":set tags=./\\\"\", 'tx') ! call assert_match(' ./samples/.* ./small.vim', @:) call feedkeys(":set tags=./\\\\ dif\\\"\", 'tx') call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:) --- 276,286 ---- " Expand directories. call feedkeys(":set cdpath=./\\\"\", 'tx') call assert_match(' ./samples/ ', @:) ! call assert_notmatch(' ./summarize.vim ', @:) " Expand files and directories. call feedkeys(":set tags=./\\\"\", 'tx') ! call assert_match(' ./samples/.* ./summarize.vim', @:) call feedkeys(":set tags=./\\\\ dif\\\"\", 'tx') call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:) *** ../vim-8.2.1438/src/version.c 2020-08-12 22:22:05.892516688 +0200 --- src/version.c 2020-08-13 18:57:00.434354154 +0200 *************** *** 756,757 **** --- 756,759 ---- { /* Add new patch number below this line */ + /**/ + 1439, /**/ -- hundred-and-one symptoms of being an internet addict: 189. You put your e-mail address in the upper left-hand corner of envelopes. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///