Patch 8.2.1439

Skip to first unread message

Bram Moolenaar

unread,
Aug 13, 2020, 1:00:44 PM8/13/20
to vim...@googlegroups.com

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_<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.

***************
*** 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, <arpa...@polarhome.com>
# Sandor Kopanyi, <sandor....@mailbox.hu>
#
! # 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, <arpa...@polarhome.com>
# Sandor Kopanyi, <sandor....@mailbox.hu>
#
! # 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
+
+ Ox jAy kdd
*** ../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\)\@<!bar/A/
+
+ :s/\(an\_s\+\)\@<=file/A/
+
+ :s/^\(\h\w*\%(->\|\.\)\=\)\+=/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 //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 end kY3000p2GY3000p
+ :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
Reply all
Reply to author
Forward
0 new messages