blob: e1bf100c43baec184890ca933adb545df5d7be47 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001#
Bram Moolenaar68392722010-07-30 22:04:17 +02002# Makefile to run all tests for Vim, on Dos-like machines.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003#
4# Requires a set of Unix tools: echo, diff, etc.
5
6VIMPROG = ..\\vim
7
Bram Moolenaar40bbcee2015-12-28 22:24:41 +01008default: nongui
9
Bram Moolenaar7b6156f2015-12-28 16:01:26 +010010!include Make_all.mak
11
Bram Moolenaar071d4272004-06-13 20:20:40 +000012# Omitted:
13# test2 "\\tmp" doesn't work.
14# test10 'errorformat' is different
15# test12 can't unlink a swap file
16# test25 uses symbolic link
17# test27 can't edit file with "*" in file name
Bram Moolenaarda9888a2015-12-28 21:35:14 +010018# test49 fails in various ways
Bram Moolenaaree0ee2a2013-07-03 21:19:07 +020019# test97 \{ and \$ are not escaped characters.
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
Bram Moolenaar7b6156f2015-12-28 16:01:26 +010021SCRIPTS = $(SCRIPTS_ALL) $(SCRIPTS_MORE1) $(SCRIPTS_MORE3) $(SCRIPTS_MORE4)
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
Bram Moolenaara6082432015-12-28 16:26:45 +010023TEST_OUTFILES = $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) $(SCRIPTS_GUI)
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010024DOSTMP = dostmp
25DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test)
26DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in)
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
28.SUFFIXES: .in .out
29
Bram Moolenaara6082432015-12-28 16:26:45 +010030# Must run test1 first to create small.vim.
31$(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS_WIN32) $(NEW_TESTS): $(SCRIPTS_FIRST)
32
33nongui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) report
Bram Moolenaar071d4272004-06-13 20:20:40 +000034
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010035small: nolog report
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
Bram Moolenaara6082432015-12-28 16:26:45 +010037gui: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_GUI) report
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
Bram Moolenaara6082432015-12-28 16:26:45 +010039win32: nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) report
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010041# Copy the input files to dostmp, changing the fileformat to dos.
42$(DOSTMP_INFILES): $(*B).in
43 if not exist $(DOSTMP)\NUL md $(DOSTMP)
44 if exist $@ del $@
45 $(VIMPROG) -u dos.vim --noplugin "+set ff=dos|f $@|wq" $(*B).in
46
47# For each input file dostmp/test99.in run the tests.
48# This moves test99.in to test99.in.bak temporarily.
49$(TEST_OUTFILES): $(DOSTMP)\$(*B).in
50 -@if exist test.out DEL test.out
51 move $(*B).in $(*B).in.bak
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010052 copy $(DOSTMP)\$(*B).in $(*B).in
53 copy $(*B).ok test.ok
54 $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $(*B).in
55 -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out
56 -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in
57 -@del X*
58 -@if exist test.ok del test.ok
59 -@if exist Xdir1 rd /s /q Xdir1
60 -@if exist Xfind rd /s /q Xfind
61 -@if exist viminfo del viminfo
62 $(VIMPROG) -u dos.vim --noplugin "+set ff=unix|f test.out|wq" \
63 $(DOSTMP)\$(*B).out
64 @diff test.out $*.ok & if errorlevel 1 \
65 ( move /y test.out $*.failed \
66 & del $(DOSTMP)\$(*B).out \
67 & echo $* FAILED >> test.log ) \
68 else ( move /y test.out $*.out )
Bram Moolenaarb78b0b02005-01-02 11:32:29 +000069
Bram Moolenaar6949eea2013-06-16 16:57:46 +020070report:
71 @echo ""
72 @echo Test results:
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010073 @if exist test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \
74 else ( echo ALL DONE )
Bram Moolenaar6949eea2013-06-16 16:57:46 +020075
Bram Moolenaar071d4272004-06-13 20:20:40 +000076clean:
77 -del *.out
Bram Moolenaar555d2a82013-06-17 21:53:37 +020078 -del *.failed
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010079 -if exist $(DOSTMP) rd /s /q $(DOSTMP)
80 -if exist test.in del test.in
Bram Moolenaar9c039782007-08-14 15:55:42 +000081 -if exist test.ok del test.ok
82 -if exist small.vim del small.vim
83 -if exist tiny.vim del tiny.vim
84 -if exist mbyte.vim del mbyte.vim
Bram Moolenaar2498b3a2010-03-02 17:59:44 +010085 -if exist mzscheme.vim del mzscheme.vim
Bram Moolenaarb35c3382012-10-06 19:10:35 +020086 -if exist lua.vim del lua.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000087 -del X*
Bram Moolenaar555d2a82013-06-17 21:53:37 +020088 -if exist Xdir1 rd /s /q Xdir1
89 -if exist Xfind rd /s /q Xfind
Bram Moolenaar9c039782007-08-14 15:55:42 +000090 -if exist viminfo del viminfo
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010091 -if exist test.log del test.log
Bram Moolenaar9c7d98d2014-11-05 15:46:09 +010092 -if exist benchmark.out del benchmark.out
Bram Moolenaar071d4272004-06-13 20:20:40 +000093
Bram Moolenaar6949eea2013-06-16 16:57:46 +020094nolog:
Bram Moolenaar13cf77b2015-02-27 21:11:02 +010095 -if exist test.log del test.log
Bram Moolenaarfda37292014-11-05 14:27:36 +010096
97benchmark:
98 bench_re_freeze.out
99
100bench_re_freeze.out: bench_re_freeze.vim
101 -if exist benchmark.out del benchmark.out
102 $(VIMPROG) -u dos.vim -U NONE --noplugin $*.in
103 @IF EXIST benchmark.out ( type benchmark.out )