diff options
Diffstat (limited to 'src/testdir/Make_dos.mak')
-rw-r--r-- | src/testdir/Make_dos.mak | 123 |
1 files changed, 68 insertions, 55 deletions
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak index 5931da25d..7ba6cf778 100644 --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -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 ) |