# HG changeset patch # User Bram Moolenaar # Date 1597338904 -7200 # Node ID 30bdd2e4a6f9bc746a8f9686ec5563fe1ea2108c # Parent cc500536c15eac4053eff6c4c017ce6289e54738 patch 8.2.1439: tiny and small builds have no test coverage Commit: https://github.com/vim/vim/commit/b96a32ef1a95dd4ebf9413d686bccb1b4645f74b Author: Bram Moolenaar Date: Thu Aug 13 18:59:55 2020 +0200 patch 8.2.1439: tiny and small builds have no test coverage Problem: Tiny and small builds have no test coverage. Solution: Restore tests that do not depend on the +eval feature. (Ken Takata, closes #6696) diff --git a/.travis.yml b/.travis.yml --- a/.travis.yml +++ b/.travis.yml @@ -7,11 +7,11 @@ env: _anchors: envs: - &tiny-nogui - FEATURES=tiny CONFOPT="--disable-gui" + FEATURES=tiny TEST=testtiny CONFOPT="--disable-gui" - &tiny - FEATURES=tiny + FEATURES=tiny TEST=testtiny - &small - FEATURES=small + FEATURES=small TEST=testtiny - &normal FEATURES=normal - &linux-huge diff --git a/Filelist b/Filelist --- a/Filelist +++ b/Filelist @@ -158,9 +158,7 @@ SRC_ALL = \ 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/*.in \ src/testdir/*.py \ src/testdir/lsan-suppress.txt \ src/testdir/sautest/autoload/*.vim \ @@ -179,7 +177,7 @@ SRC_ALL = \ src/testdir/summarize.vim \ src/testdir/term_util.vim \ src/testdir/view_util.vim \ -- src/testdir/test1.ok \ + src/testdir/test[0-9]*.ok \ src/testdir/test77a.ok \ src/testdir/test83-tags? \ src/testdir/test77a.com \ diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ first: # 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: +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 diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt --- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -20,11 +20,17 @@ 1. Testing Vim *testing* 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. diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -1464,12 +1464,22 @@ cmdidxs: ex_cmds.h test: cd testdir - $(MAKE) /NOLOGO -f Make_dos.mak win32 + $(MAKE) /NOLOGO -f Make_dos.mak cd .. testgvim: cd testdir - $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\gvim win32 + $(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,9 +1487,9 @@ testclean: $(MAKE) /NOLOGO -f Make_dos.mak clean cd .. -# Run test1 to bootstrap tests +# Run individual OLD style test. # These do not depend on the executable, compile it when needed. -$(SCRIPTS_FIRST:.out=): +$(SCRIPTS_TINY): cd testdir - if exist $@.out del $@.out $(MAKE) /NOLOGO -f Make_dos.mak VIMPROG=..\$(VIMTESTTARGET) nolog diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -2258,6 +2258,9 @@ scripttests: 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,9 +2294,9 @@ test_libvterm: 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: +# 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. diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -7,8 +7,26 @@ NO_PLUGINS = --noplugin --not-a-term NO_INITS = -U NONE $(NO_PLUGINS) -# The first script creates small.vim. -SCRIPTS_FIRST = test1.out +# 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,6 +43,9 @@ TEST_VIM9_RES = \ 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 = \ diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -9,9 +9,11 @@ default: nongui include Make_all.mak +SCRIPTS = $(SCRIPTS_TINY_OUT) + .SUFFIXES: .in .out .res .vim -nongui: /tmp $(SCRIPTS_FIRST) +nongui: /tmp $(SCRIPTS) csh -c echo ALL DONE clean: diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -9,20 +9,80 @@ default: nongui !include Make_all.mak -TEST_OUTFILES = $(SCRIPTS_FIRST) +# 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 $(SCRIPTS_FIRST) newtests report +nongui: nolog tinytests newtests report + +gui: nolog tinytests newtests report + +tiny: nolog tinytests report + +benchmark: $(SCRIPTS_BENCH) -small: nolog report +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.: +# 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 + -gui: nolog $(SCRIPTS_FIRST) newtests report +# 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 + -if exist tiny.vim del tiny.vim + -if exist mbyte.vim del mbyte.vim + -if exist mzscheme.vim del mzscheme.vim + -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 + -if exist messages del messages + -if exist benchmark.out del benchmark.out + -if exist opt_test.vim del opt_test.vim -win32: nolog $(SCRIPTS_FIRST) newtests report +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_INFILES): $(*B).in @@ -55,58 +115,6 @@ win32: nolog $(SCRIPTS_FIRST) newtests r & 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 - @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 ) - -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 - -if exist small.vim del small.vim - -if exist tiny.vim del tiny.vim - -if exist mbyte.vim del mbyte.vim - -if exist mzscheme.vim del mzscheme.vim - -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 - -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 - -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. @@ -132,7 +140,12 @@ test_gui_init.res: test_gui_init.vim $(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 + +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 ) diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -6,62 +6,69 @@ # # 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 +# Don't use unix-like shell. +SHELL = cmd.exe + DEL = del DELDIR = rd /s /q -MV = rename -CP = copy +MV = move /y +CP = copy /y CAT = type -DIRSLASH = \\ -endif -VIMPROG = ..$(DIRSLASH)vim +VIMPROG = ..\\vim -default: vimall +default: nongui include Make_all.mak -SCRIPTS_BENCH = test_bench_regexp.res +# Explicit dependencies. +test_options.res test_alot.res: opt_test.vim -# Must run test1 first to create small.vim. -$(NEW_TESTS_RES): $(SCRIPTS_FIRST) +TEST_OUTFILES = $(SCRIPTS_TINY_OUT) +DOSTMP = dostmp +# Keep $(DOSTMP)/*.in +.PRECIOUS: $(patsubst %.out, $(DOSTMP)/%.in, $(TEST_OUTFILES)) .SUFFIXES: .in .out .res .vim -vimall: fixff $(SCRIPTS_FIRST) newtests - @echo ALL DONE +nongui: nolog tinytests newtests report -nongui: fixff nolog $(SCRIPTS_FIRST) newtests - @echo ALL DONE +gui: nolog tinytests newtests report + +tiny: nolog tinytests report benchmark: $(SCRIPTS_BENCH) -small: nolog - @echo ALL DONE +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 ) -gui: fixff nolog $(SCRIPTS_FIRST) newtests - @echo ALL DONE -win32: fixff nolog $(SCRIPTS_FIRST) newtests - @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 -# 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 +# 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,36 +79,63 @@ clean: -@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 -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 test_result.log del test_result.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 + +# 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: $(NEW_TESTS_RES) +newtests: newtestssilent + @if exist messages (findstr "SKIPPED FAILED" messages > nul) && type messages + +newtestssilent: $(NEW_TESTS_RES) .vim.res: @echo $(VIMPROG) > vimcmd @@ -118,7 +152,12 @@ test_gui_init.res: test_gui_init.vim $(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 + +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 diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -4,7 +4,7 @@ # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # -# Last change: 2020 Jul 03 +# 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,7 +37,9 @@ VIMPROG = <->vim.exe .SUFFIXES : .out .in -SCRIPT = test1.out test77a.out +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 diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -12,7 +12,7 @@ SCRIPTSOURCE = ../../runtime # 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 +#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,19 +23,19 @@ REDIR_TEST_TO_NULL = --cmd 'au SwapExist default: nongui # The list of tests is common to all systems. -# This defines SCRIPTS_FIRST, NEW_TESTS and NEW_TESTS_RES +# 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 -SCRIPTS_BENCH = test_bench_regexp.res - .SUFFIXES: .in .out .res .vim -nongui: nolog $(SCRIPTS_FIRST) newtests report +nongui: nolog tinytests newtests report -gui: nolog $(SCRIPTS_FIRST) newtests report +gui: nolog tinytests newtests report + +tiny: nolog tinytests report benchmark: $(SCRIPTS_BENCH) @@ -54,10 +54,7 @@ report: else echo ALL DONE; \ fi" -$(SCRIPTS_FIRST) $(NEW_TESTS_RES): $(VIMPROG) - -# Must run test1 first to create small.vim. -$(NEW_TESTS_RES): $(SCRIPTS_FIRST) +$(SCRIPTS_TINY_OUT) $(NEW_TESTS_RES): $(VIMPROG) # Execute an individual new style test, e.g.: @@ -81,7 +78,7 @@ test_vim9: fi RM_ON_RUN = test.out X* viminfo -RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim test.ok benchmark.out +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,22 +90,34 @@ clean: -rm -f valgrind.* -rm -f asan.* -test1.out: test1.in - -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize +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) - @/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 + @# 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,9 +157,9 @@ test_xxd.res: 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. + @# 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" diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -46,7 +46,9 @@ " Without the +eval feature we can't run these tests, bail out. -so small.vim +silent! while 0 + qa! +silent! endwhile " In the GUI we can always change the screen size. if has('gui_running') diff --git a/src/testdir/test1.in b/src/testdir/test1.in deleted file mode 100644 --- a/src/testdir/test1.in +++ /dev/null @@ -1,52 +0,0 @@ - -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 - diff --git a/src/testdir/test1.ok b/src/testdir/test1.ok deleted file mode 100644 --- a/src/testdir/test1.ok +++ /dev/null @@ -1,1 +0,0 @@ -this is a test diff --git a/src/testdir/test20.in b/src/testdir/test20.in new file mode 100644 --- /dev/null +++ b/src/testdir/test20.in @@ -0,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 diff --git a/src/testdir/test20.ok b/src/testdir/test20.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test20.ok @@ -0,0 +1,10 @@ +123start here56 +234start here67 +345start here78 + +test text test tex rt here + somext + tesext +test text + + diff --git a/src/testdir/test21.in b/src/testdir/test21.in new file mode 100644 --- /dev/null +++ b/src/testdir/test21.in @@ -0,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 diff --git a/src/testdir/test21.ok b/src/testdir/test21.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test21.ok @@ -0,0 +1,4 @@ +this lines ends in a +this one doesn't +this one does +and the last one doesn't diff --git a/src/testdir/test22.in b/src/testdir/test22.in new file mode 100644 --- /dev/null +++ b/src/testdir/test22.in @@ -0,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 diff --git a/src/testdir/test22.ok b/src/testdir/test22.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test22.ok @@ -0,0 +1,2 @@ +fooSLASHbar +fooPIPEbar diff --git a/src/testdir/test23.in b/src/testdir/test23.in new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7dfc1afdc6999616e5171f76f4ff34d92f7d9a2a GIT binary patch literal 1301 zc$|$>TXWJt6z+pB?vp>^)S)v74M`xFN=++hUwyDVw9^gFCM-=9vY1^;sMg=^UQ!4b zN14p-cRA;UxNJoC?TT%w}^U z(r8NIA)Te!gf)Y#M999wMTiQy2^?w=t_(M9HPTzH6pOd+GjJ@qc#?f{6!*`%#$m44 zStD5_SFhxr>nns$3a_nq<~kiS&T*t8Pi(Lp?K+`t-=k8p9z)!;?UF7O{nw+dMby?8jC}gW2s!~R)633T=1)x8f-ih-s*)vRy-Z( zjd@fVT86w-j#TRljbCkSll$@&$v3`xF!LpB{rdx6tSY|xG*D3hQ9n@Nf7t=-w%1JN kUM3z2y%;|Om2}Mlcz2GHBmmz(N2(JL$m1iBQ8f?x1H46>RsaA1 diff --git a/src/testdir/test23.ok b/src/testdir/test23.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test23.ok @@ -0,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 diff --git a/src/testdir/test24.in b/src/testdir/test24.in new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5542c92666d15351d747051f7dfa608a54e8abe1 GIT binary patch literal 364 zc$`g;JqyAx5Qd%a2XyIjg5cmstk$KQsJMuO25~FFCN|JE+C=>OUTW122lpJg=jFns zb*M~@);#O0u5Kt$=|bX5yByd2xSyPd7KKBXOO#cHMm24rD+zGot0U*z6NiK;U0dhJ zY!r=IAzGM3uRdNJ<#;b7)^uoBmT4M=VVcgV7QTt8mSHk1#{QMZl;IH}M_agw_K@f0_ diff --git a/src/testdir/test24.ok b/src/testdir/test24.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test24.ok @@ -0,0 +1,2 @@ +sd +map __2 asdsecondsdsd0map __5 asd0fifth diff --git a/src/testdir/test25.in b/src/testdir/test25.in new file mode 100644 --- /dev/null +++ b/src/testdir/test25.in @@ -0,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{|}~ diff --git a/src/testdir/test25.ok b/src/testdir/test25.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test25.ok @@ -0,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{|}~ diff --git a/src/testdir/test26.in b/src/testdir/test26.in new file mode 100644 --- /dev/null +++ b/src/testdir/test26.in @@ -0,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 + diff --git a/src/testdir/test26.ok b/src/testdir/test26.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test26.ok @@ -0,0 +1,3 @@ +This is the start +This is the middle +This is the end diff --git a/src/testdir/test27.in b/src/testdir/test27.in new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c35569a76c908682eb8e7e7ab8d9a3522d9fa473 GIT binary patch literal 2368 zc$~df&2G~`5Z<#NfD4yNs9F%XC9V^pNGU39k&tLA(I7Y>Iq|r*aJ*u7gWDVL#eqlS z4N_*;UVED#i3222lJU&!%(vgp%w~d8LBa);B2!s$15pu!z$i8{Bw3CiRV0k9%v4Is zH&>UQcRe}%FqvFjPrRYzFrVHjJp7)`=?N8JG2=SIXrU7SRi)FRtX_^5GwDzH{6!v7 zWWQItB%?)<-O{hDg!a{iNt#KRrBQK%5>$#6HVys!>e|4*JU#PpHXS|5dQErGER{J_;7H`*LseW($Q5o1ssqBth{ z#vk8cYF5f(xt(fkf~*&|-5;2T5|^@ki{j30H9B zxi>5=#d4oilp_*%t1(aWoR<(|5-oCNm~*S|PqBEw8c>NvHK&?E{ocf)A+YA7YisT- z#o1Q^M0>}$ZYHP;t}51;qbv>-rNp|88l+T(f>wzRoao0xzEJCJ1Jp6o*R>~HjL&Nq zvX7cZD&b@$gkH7kWYgZRZJ=&hY#X6Uw;J^y05kSFU(5R=#+>9!0G4*$WDQpq- zw;*zP8tep<%hO;TmA&|+8L5iqm+1>LOWg6-hTjuyt6RC}$blmtJ96mAeMi=yni)tp z!T#ECZ7*Ll^~lR!DfS{MU4Y-Bjz>h9{}P_%Xt}gf)nmVZ{;GuLPHt2`^g~tm%X_w9 vGbWkO0_NGeyI;1-oMB}MJ;unL(E>(RMs`LXjD_^^>`~k=H#_9?LGAblh&$9d diff --git a/src/testdir/test27.ok b/src/testdir/test27.ok new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..183430d71cfe487b2d405dd2cde25a1eef958d74 GIT binary patch literal 409 zc${^QO$viB5QX1*PT>WzP(taZhp9G}K$?I*``)Mra8ZZ{>J4JYNNcUi@L*ov$74d2 zB&9Y=*}`44y`Idu(KaRPa(Bxqgy=;|^bfX8DUSRYxyh`UW!bBHM((bvYP&Bzd<%\\"\", 'tx') call assert_match(' ./samples/ ', @:) - call assert_notmatch(' ./small.vim ', @:) + call assert_notmatch(' ./summarize.vim ', @:) " Expand files and directories. call feedkeys(":set tags=./\\\"\", 'tx') - call assert_match(' ./samples/.* ./small.vim', @:) + call assert_match(' ./samples/.* ./summarize.vim', @:) call feedkeys(":set tags=./\\\\ dif\\\"\", 'tx') call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:) diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 1439, +/**/ 1438, /**/ 1437,