SCRIPTS32 = test50.out test70.out
-SCRIPTS_GUI = test16.out
+SCRIPTS_GUI = test16.out
-.SUFFIXES: .in .out
-
-nongui: fixff $(SCRIPTS16) $(SCRIPTS) report
-
-small: report
-
-gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) report
+TEST_OUTFILES = $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) $(SCRIPTS_GUI)
+DOSTMP = dostmp
+DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
+DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
-win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) report
+.SUFFIXES: .in .out
-fixff:
- -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
- -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
- dotest.in test60.ok test71.ok test74.ok test100.ok
+nongui: nolog $(SCRIPTS16) $(SCRIPTS) report
+
+small: nolog report
+
+gui: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) report
+
+win32: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) 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 --noplugin "+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
+ move $(*B).in $(*B).in.bak
+ copy $*.in $(*B).in
+ copy $(DOSTMP)\$(*B).in $(*B).in
+ copy $(*B).ok test.ok
+ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $(*B).in
+ -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out
+ -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in
+ -@del X*
+ -@if exist test.ok del test.ok
+ -@if exist Xdir1 rd /s /q Xdir1
+ -@if exist Xfind rd /s /q Xfind
+ -@if exist viminfo del viminfo
+ $(VIMPROG) -u dos.vim --noplugin "+set ff=unix|f test.out|wq" \
+ $(DOSTMP)\$(*B).out
+ @diff test.out $*.ok & if errorlevel 1 \
+ ( move /y test.out $*.failed \
+ & del $(DOSTMP)\$(*B).out \
+ & echo $* FAILED >> test.log ) \
+ else ( move /y test.out $*.out )
report:
@echo ""
@echo Test results:
- @IF EXIST test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \
- ELSE ( ECHO ALL DONE )
+ @if exist test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \
+ else ( echo ALL DONE )
clean:
-del *.out
-del *.failed
+ -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 Xdir1 rd /s /q Xdir1
-if exist Xfind rd /s /q Xfind
-if exist viminfo del viminfo
- -del test.log
+ -if exist test.log del test.log
-if exist benchmark.out del benchmark.out
-.in.out:
- -if exist $*.failed del $*.failed
- copy $*.ok test.ok
- $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
- @diff test.out $*.ok & if errorlevel 1 \
- ( move /y test.out $*.failed & echo $* FAILED >> test.log ) \
- else ( move /y test.out $*.out )
- -del X*
- -del test.ok
- -if exist Xdir1 rd /s /q Xdir1
- -if exist Xfind rd /s /q Xfind
- -if exist viminfo del viminfo
-
nolog:
- -del test.log
+ -if exist test.log del test.log
benchmark:
bench_re_freeze.out