updated for version 7.4.647 v7.4.647
authorBram Moolenaar <Bram@vim.org>
Fri, 27 Feb 2015 20:11:02 +0000 (21:11 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 27 Feb 2015 20:11:02 +0000 (21:11 +0100)
Problem:    After running the tests on MS-Windows many files differ from their
            originals as they were checked out.
Solution:   Use a temp directory for executing the tests. (Ken Takata, Taro
            Muraoka)

.gitignore
src/testdir/Make_dos.mak
src/version.c

index f247dd198cdfca214e53038564e2c17f1d3d3d39..f0db64d1791632597c1d8bd68daaf4e9713a413a 100644 (file)
@@ -69,5 +69,7 @@ src/testdir/lua.vim
 src/testdir/small.vim
 src/testdir/tiny.vim
 src/testdir/test*.out
+src/testdir/test*.failed
 src/testdir/test.log
+src/testdir/dostmp/*
 src/memfile_test
index 51574deeb8ea5eafa1ba6fba144606063567ff76..55bf77ec6b51fc9b9d22f1aa307c956b11ee7e78 100644 (file)
@@ -56,32 +56,64 @@ SCRIPTS =   test3.out test4.out test5.out test6.out test7.out \
 
 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
@@ -92,24 +124,11 @@ clean:
        -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
index 53b6cdb1ea6dfdcb8de9e1a9de852c0fd28af5ab..21215ae3a1084e0ae600b26627787d1f7ace3e28 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    647,
 /**/
     646,
 /**/