summaryrefslogtreecommitdiffstats
path: root/src/testdir/Make_dos.mak
diff options
context:
space:
mode:
Diffstat (limited to 'src/testdir/Make_dos.mak')
-rw-r--r--src/testdir/Make_dos.mak138
1 files changed, 138 insertions, 0 deletions
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
new file mode 100644
index 0000000..5776a79
--- /dev/null
+++ b/src/testdir/Make_dos.mak
@@ -0,0 +1,138 @@
+#
+# Makefile to run all tests for Vim, on Dos-like machines.
+#
+# Requires a set of Unix tools: echo, diff, etc.
+
+VIMPROG = ..\\vim
+
+default: nongui
+
+!include Make_all.mak
+
+# Omitted:
+# test2 "\\tmp" doesn't work.
+# test10 'errorformat' is different
+# test49 fails in various ways
+# test97 \{ and \$ are not escaped characters.
+
+SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE4)
+
+TEST_OUTFILES = $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) $(SCRIPTS_GUI)
+DOSTMP = dostmp
+DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
+DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
+
+.SUFFIXES: .in .out .res .vim
+
+nongui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) newtests report
+
+small: nolog report
+
+gui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) newtests report
+
+win32: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) 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:
+ @echo ""
+ @echo Test results:
+ @if exist test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \
+ else ( echo ALL DONE )
+
+clean:
+ -del *.out
+ -del *.failed
+ -del *.res
+ -if exist $(DOSTMP) rd /s /q $(DOSTMP)
+ -if exist test.in del test.in
+ -if exist test.ok del test.ok
+ -if exist small.vim del small.vim
+ -if exist tiny.vim del tiny.vim
+ -if exist mbyte.vim del mbyte.vim
+ -if exist mzscheme.vim del mzscheme.vim
+ -if exist Xdir1 rd /s /q Xdir1
+ -if exist Xfind rd /s /q Xfind
+ -if exist XfakeHOME rd /s /q XfakeHOME
+ -del X*
+ -for /d %i in (X*) do @rmdir /s/q %i
+ -if exist viminfo del viminfo
+ -if exist test.log del test.log
+ -if exist 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 messages del messages
+
+benchmark:
+ bench_re_freeze.out
+
+bench_re_freeze.out: bench_re_freeze.vim
+ -if exist benchmark.out del benchmark.out
+ $(VIMPROG) -u dos.vim $(NO_INITS) $*.in
+ @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.
+# 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
+ $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
+ @del vimcmd
+
+test_gui.res: test_gui.vim
+ @echo $(VIMPROG) > vimcmd
+ $(VIMPROG) -u NONE $(NO_INITS) -S runtest.vim $*.vim
+ @del vimcmd
+
+test_gui_init.res: test_gui_init.vim
+ @echo $(VIMPROG) > vimcmd
+ $(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: ../option.c gen_opt_test.vim
+ $(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../option.c