]> granicus.if.org Git - vim/commitdiff
patch 8.2.1439: tiny and small builds have no test coverage v8.2.1439
authorBram Moolenaar <Bram@vim.org>
Thu, 13 Aug 2020 16:59:55 +0000 (18:59 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 13 Aug 2020 16:59:55 +0000 (18:59 +0200)
Problem:    Tiny and small builds have no test coverage.
Solution:   Restore tests that do not depend on the +eval feature.
            (Ken Takata, closes #6696)

33 files changed:
.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 [deleted file]
src/testdir/test1.ok [deleted file]
src/testdir/test20.in [new file with mode: 0644]
src/testdir/test20.ok [new file with mode: 0644]
src/testdir/test21.in [new file with mode: 0644]
src/testdir/test21.ok [new file with mode: 0644]
src/testdir/test22.in [new file with mode: 0644]
src/testdir/test22.ok [new file with mode: 0644]
src/testdir/test23.in [new file with mode: 0644]
src/testdir/test23.ok [new file with mode: 0644]
src/testdir/test24.in [new file with mode: 0644]
src/testdir/test24.ok [new file with mode: 0644]
src/testdir/test25.in [new file with mode: 0644]
src/testdir/test25.ok [new file with mode: 0644]
src/testdir/test26.in [new file with mode: 0644]
src/testdir/test26.ok [new file with mode: 0644]
src/testdir/test27.in [new file with mode: 0644]
src/testdir/test27.ok [new file with mode: 0644]
src/testdir/test_options.vim
src/version.c

index a4c628740418e987101111d41d4ccab53d8bae52..a8acd3ade6c2c595f9cc2437f24338ce1e5de7e8 100644 (file)
@@ -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
index fd8ff05e508ccd6106138d6568ba8116d12a377c..127e3e493272c8939f718fd6e43486f6aa49d668 100644 (file)
--- 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 \
index 7774b6ed127904294a731494dcc19c71b403f641..35119ac1f6c6450b05b7a951a824283cb247237b 100644 (file)
--- 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
index 1147673d599236cf998e5bbae2a45bbebed145cc..15c5498a5143c7ea82893fd65a9749eded270204 100644 (file)
@@ -20,11 +20,17 @@ and for testing plugins.
 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_<feature>.vim (replace <feature> 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.
 
index 8ac39e22b55dea79bb5b344094cf97f55c319ae5..b6c2d464acc7ea6836aa1136cd9660cc36e2a4d7 100644 (file)
@@ -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
index 35fe41e74c2522e0c3ee0be0862c913c33ec5731..b025a9486b700bd5a46be1ef6618ff479a1761a8 100644 (file)
@@ -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.
index 57ba651c6533a890231df42d028bf0d81a5ba73e..e4ffb05e2ca0170b11c059740936a8ffbbcbdbf4 100644 (file)
@@ -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 = \
index efd5808429883d634fcccf3146cf91c6dbbf2af2..1e8df19372a1d61eb05b6b8dbf9283f07940f35e 100644 (file)
@@ -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:
index 5931da25df03e1dcc956221b0f3d9e993790280d..7ba6cf778e7c799623974a780dff2985533f2f33 100644 (file)
@@ -9,56 +9,23 @@ 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
 
-small: nolog report
+gui:   nolog tinytests newtests report
 
-gui:   nolog $(SCRIPTS_FIRST) newtests report
+tiny:  nolog tinytests 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)
+benchmark: $(SCRIPTS_BENCH)
 
 report:
        @rem without the +eval feature test_result.log is a copy of test.log
@@ -71,10 +38,24 @@ report:
        @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:
-       -del *.out
-       -del *.failed
-       -del *.res
+       -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,8 +66,8 @@ clean:
        -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 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,14 +80,41 @@ nolog:
        -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 )
+# 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,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 )
index b34ae1d2c3105cb02dc12b4fa72cbe19bf06ede2..0f594c9e7901b5dc3d2d32ef4c0a2fec40ae86f2 100644 (file)
@@ -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:        fixff nolog $(SCRIPTS_FIRST) newtests
-       @echo ALL DONE
-
-benchmark: $(SCRIPTS_BENCH)
+nongui:        nolog tinytests newtests report
 
-small: nolog
-       @echo ALL DONE
+gui:   nolog tinytests newtests report
 
-gui:   fixff nolog $(SCRIPTS_FIRST) newtests
-       @echo ALL DONE
+tiny:  nolog tinytests report
 
-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
+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,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
index f36ae6edd83dff135cc13effe04865a7994df24a..2adc0f439532883bba647237b1ea91cc5624c08b 100644 (file)
@@ -4,7 +4,7 @@
 # Authors:     Zoltan Arpadffy, <arpadffy@polarhome.com>
 #              Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
 #
-# 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
index 0d51fde3e13b67b9b9424237189a38aa2d2627a7..42eb7f5569270b3a38512bdc50a3a7ce8ae10135 100644 (file)
@@ -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 SwapExists * let v:swapchoice = "e"' > /dev/null
 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 tinytests newtests report
 
-gui:   nolog $(SCRIPTS_FIRST) 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"
index f431748e1e8dacdacbac121962bbb2a4d4ed8276..99854042b2da4aba4d05e0a8a3ab67ff900d652a 100644 (file)
@@ -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 (file)
index 8c0219e..0000000
+++ /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\e: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!
-\e: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 (file)
index 90bfcb5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-this is a test
diff --git a/src/testdir/test20.in b/src/testdir/test20.in
new file mode 100644 (file)
index 0000000..1ffbed5
--- /dev/null
@@ -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$\16jjlld
+/456$
+\16jj"bP
+:/56$/,$-1w! test.out
+:qa!
+ENDTEST
+
+123456
+234567
+345678
+
+test text test tex start here
+               some text
+               test text
+test text
+
+Ox\ejAy\ekdd
diff --git a/src/testdir/test20.ok b/src/testdir/test20.ok
new file mode 100644 (file)
index 0000000..7c50ea8
--- /dev/null
@@ -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 (file)
index 0000000..f5cc046
--- /dev/null
@@ -0,0 +1,13 @@
+Tests for file with some lines ending in CTRL-M, some not\r
+\r
+STARTTEST
+:set ta tx
+:e!
+:$-3,$w! test.out
+:qa!
+ENDTEST
+
+this lines ends in a\r
+this one doesn't
+this one does\r
+and the last one doesn't
diff --git a/src/testdir/test21.ok b/src/testdir/test21.ok
new file mode 100644 (file)
index 0000000..38ff89e
--- /dev/null
@@ -0,0 +1,4 @@
+this lines ends in a\r
+this one doesn't
+this one does\r
+and the last one doesn't
diff --git a/src/testdir/test22.in b/src/testdir/test22.in
new file mode 100644 (file)
index 0000000..0e0e605
--- /dev/null
@@ -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 (file)
index 0000000..f1930ab
--- /dev/null
@@ -0,0 +1,2 @@
+fooSLASHbar
+fooPIPEbar
diff --git a/src/testdir/test23.in b/src/testdir/test23.in
new file mode 100644 (file)
index 0000000..7dfc1af
Binary files /dev/null and b/src/testdir/test23.in differ
diff --git a/src/testdir/test23.ok b/src/testdir/test23.ok
new file mode 100644 (file)
index 0000000..cd61210
--- /dev/null
@@ -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 (file)
index 0000000..5542c92
Binary files /dev/null and b/src/testdir/test24.in differ
diff --git a/src/testdir/test24.ok b/src/testdir/test24.ok
new file mode 100644 (file)
index 0000000..911d854
--- /dev/null
@@ -0,0 +1,2 @@
+sd
+map __2 asd\esecondsd\esd0map __5 asd0fifth
diff --git a/src/testdir/test25.in b/src/testdir/test25.in
new file mode 100644 (file)
index 0000000..5e8ce44
--- /dev/null
@@ -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
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
diff --git a/src/testdir/test25.ok b/src/testdir/test25.ok
new file mode 100644 (file)
index 0000000..df21ed1
--- /dev/null
@@ -0,0 +1,99 @@
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+01234567
+01234567
+01234567
+01234567
+01234567
+01234567
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+0123456789ABCDEFabcdef
+0123456789ABCDEFabcdef
+0123456789ABCDEFabcdef
+0123456789ABCDEFabcdef
+0123456789ABCDEFabcdef
+0123456789ABCDEFabcdef
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+0123456789ABCDEFGHIXYZ_abcdefghiwxyz
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+ABCDEFGHIXYZ_abcdefghiwxyz
+ABCDEFGHIXYZ_abcdefghiwxyz
+ABCDEFGHIXYZ_abcdefghiwxyz
+ABCDEFGHIXYZ_abcdefghiwxyz
+ABCDEFGHIXYZ_abcdefghiwxyz
+ABCDEFGHIXYZ_abcdefghiwxyz
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+ABCDEFGHIXYZabcdefghiwxyz
+ABCDEFGHIXYZabcdefghiwxyz
+ABCDEFGHIXYZabcdefghiwxyz
+ABCDEFGHIXYZabcdefghiwxyz
+ABCDEFGHIXYZabcdefghiwxyz
+ABCDEFGHIXYZabcdefghiwxyz
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`{|}~\7f\80\82\90\9b¦±¼ÇÓé
+abcdefghiwxyz
+abcdefghiwxyz
+abcdefghiwxyz
+abcdefghiwxyz
+abcdefghiwxyz
+abcdefghiwxyz
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+       \f\r !"#$%&'()#+'-./0123456789:;<=>?@[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+ABCDEFGHIXYZ
+ABCDEFGHIXYZ
+ABCDEFGHIXYZ
+ABCDEFGHIXYZ
+ABCDEFGHIXYZ
+ABCDEFGHIXYZ
+!"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+!"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
+!"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~\7f\80\82\90\9b¦±¼ÇÓé
diff --git a/src/testdir/test26.in b/src/testdir/test26.in
new file mode 100644 (file)
index 0000000..2d294ca
--- /dev/null
@@ -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 end\ekY3000p2GY3000p
+: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 (file)
index 0000000..988e5f2
--- /dev/null
@@ -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 (file)
index 0000000..c35569a
Binary files /dev/null and b/src/testdir/test27.in differ
diff --git a/src/testdir/test27.ok b/src/testdir/test27.ok
new file mode 100644 (file)
index 0000000..183430d
Binary files /dev/null and b/src/testdir/test27.ok differ
index 5d7714e7ae7cbd8ef60f510157e680f0c897b172..c5e5ab47c4adfe3389ee32158f7b39f7b9cf1c86 100644 (file)
@@ -276,11 +276,11 @@ func Test_set_completion()
   " Expand directories.
   call feedkeys(":set cdpath=./\<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_match(' ./samples/ ', @:)
-  call assert_notmatch(' ./small.vim ', @:)
+  call assert_notmatch(' ./summarize.vim ', @:)
 
   " Expand files and directories.
   call feedkeys(":set tags=./\<C-A>\<C-B>\"\<CR>", 'tx')
-  call assert_match(' ./samples/.* ./small.vim', @:)
+  call assert_match(' ./samples/.* ./summarize.vim', @:)
 
   call feedkeys(":set tags=./\\\\ dif\<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:)
index 73c965b80dfacad88cf3b7c3de268b4381f9ef1a..2955eb0e3b05ea763a4085f74146f5015c369834 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1439,
 /**/
     1438,
 /**/