Mercurial > vim
annotate src/testdir/Makefile @ 7277:6600871bb38c v7.4.944
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 29 17:35:35 2015 +0100
patch 7.4.944
Problem: Writing tests for Vim script is hard.
Solution: Add assertEqual(), assertFalse() and assertTrue() functions. Add
the v:errors variable. Add the runtest script. Add a first new
style test script.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 29 Nov 2015 17:45:04 +0100 |
parents | 4b4ac70f5173 |
children | b5e9810b389d |
rev | line source |
---|---|
7 | 1 # |
1326 | 2 # Makefile to run all tests for Vim |
7 | 3 # |
4 | |
5 VIMPROG = ../vim | |
5774 | 6 SCRIPTSOURCE = ../../runtime |
7 | 7 |
1920 | 8 # Uncomment this line to use valgrind for memory leaks and extra warnings. |
9 # The output goes into a file "valgrind.testN" | |
10 # Vim should be compiled with EXITFREE to avoid false warnings. | |
11 # This will make testing about 10 times as slow. | |
12 # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$* | |
1357 | 13 |
2607 | 14 |
7 | 15 SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ |
16 test7.out test8.out test9.out test10.out test11.out \ | |
3986 | 17 test12.out test13.out test14.out test15.out test17.out \ |
7 | 18 test18.out test19.out test20.out test21.out test22.out \ |
19 test23.out test24.out test25.out test26.out test27.out \ | |
20 test28.out test29.out test30.out test31.out test32.out \ | |
21 test33.out test34.out test35.out test36.out test37.out \ | |
22 test38.out test39.out test40.out test41.out test42.out \ | |
23 test43.out test44.out test45.out test46.out test47.out \ | |
40 | 24 test48.out test49.out test51.out test52.out test53.out \ |
391 | 25 test54.out test55.out test56.out test57.out test58.out \ |
1357 | 26 test59.out test60.out test61.out test62.out test63.out \ |
2004 | 27 test64.out test65.out test66.out test67.out test68.out \ |
2607 | 28 test69.out test70.out test71.out test72.out test73.out \ |
2904 | 29 test74.out test75.out test76.out test77.out test78.out \ |
3443 | 30 test79.out test80.out test81.out test82.out test83.out \ |
4113 | 31 test84.out test85.out test86.out test87.out test88.out \ |
4274 | 32 test89.out test90.out test91.out test92.out test93.out \ |
5351 | 33 test94.out test95.out test96.out test97.out test98.out \ |
5641 | 34 test99.out test100.out test101.out test102.out test103.out \ |
5948 | 35 test104.out test105.out test106.out test107.out \ |
6522 | 36 test_argument_0count.out \ |
6398 | 37 test_argument_count.out \ |
6935 | 38 test_autocmd_option.out \ |
5848 | 39 test_autoformat_join.out \ |
5995 | 40 test_breakindent.out \ |
7092
64e30831fa42
commit https://github.com/vim/vim/commit/aa23b379421aa214e6543b06c974594a25799b09
Christian Brabandt <cb@256bit.org>
parents:
7064
diff
changeset
|
41 test_cdo.out \ |
6096 | 42 test_changelist.out \ |
6991 | 43 test_charsearch.out \ |
6398 | 44 test_close_count.out \ |
6424 | 45 test_command_count.out \ |
7064
5fc5c5bf2233
commit https://github.com/vim/vim/commit/37a8de17d4dfd3d463960c38a204ce399c8e19d4
Christian Brabandt <cb@256bit.org>
parents:
6991
diff
changeset
|
46 test_comparators.out \ |
6712 | 47 test_erasebackword.out \ |
5848 | 48 test_eval.out \ |
6933 | 49 test_fixeol.out \ |
6868 | 50 test_increment.out \ |
6098 | 51 test_insertcount.out \ |
6777 | 52 test_listchars.out \ |
6140 | 53 test_listlbr.out \ |
54 test_listlbr_utf8.out \ | |
6299 | 55 test_mapping.out \ |
6616 | 56 test_marks.out \ |
6947 | 57 test_match_conceal.out \ |
6438 | 58 test_nested_function.out \ |
6140 | 59 test_options.out \ |
6847 | 60 test_perl.out \ |
6140 | 61 test_qf_title.out \ |
6847 | 62 test_ruby.out \ |
6903 | 63 test_search_mbyte.out \ |
6841 | 64 test_set.out \ |
6307 | 65 test_signs.out \ |
7266
6ba7182fb7bd
commit https://github.com/vim/vim/commit/0f6562e9036f889185dff49a75c7fc5ffb28b307
Christian Brabandt <cb@256bit.org>
parents:
7092
diff
changeset
|
66 test_tagcase.out \ |
6675 | 67 test_textobjects.out \ |
7275
4b4ac70f5173
commit https://github.com/vim/vim/commit/48a969b48898fb08dce636c6b918408c6fbd3ea0
Christian Brabandt <cb@256bit.org>
parents:
7266
diff
changeset
|
68 test_utf8.out \ |
4b4ac70f5173
commit https://github.com/vim/vim/commit/48a969b48898fb08dce636c6b918408c6fbd3ea0
Christian Brabandt <cb@256bit.org>
parents:
7266
diff
changeset
|
69 test_writefile.out |
7 | 70 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
71 NEW_TESTS = test_assert.res |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
72 |
7 | 73 SCRIPTS_GUI = test16.out |
74 | |
6328 | 75 SCRIPTS_BENCH = bench_re_freeze.out |
76 | |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
77 .SUFFIXES: .in .out .res .vim |
7 | 78 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
79 nongui: nolog $(SCRIPTS) newtests report |
1717 | 80 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
81 gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) newtests report |
7 | 82 |
6328 | 83 benchmark: $(SCRIPTS_BENCH) |
84 | |
1717 | 85 report: |
7 | 86 @echo |
1717 | 87 @echo 'Test results:' |
88 @/bin/sh -c "if test -f test.log; \ | |
89 then cat test.log; echo TEST FAILURE; exit 1; \ | |
90 else echo ALL DONE; \ | |
91 fi" | |
7 | 92 |
93 $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) | |
94 | |
3992 | 95 RM_ON_RUN = test.out X* viminfo |
6328 | 96 RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out |
5909 | 97 RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in |
3992 | 98 |
7 | 99 clean: |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
100 -rm -rf *.out *.failed *.res *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.* |
7 | 101 |
102 test1.out: test1.in | |
5363 | 103 -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize |
3992 | 104 $(RUN_VIM) $*.in |
5702 | 105 @/bin/sh -c "if test -f wrongtermsize; \ |
5363 | 106 then echo; \ |
107 echo test1 FAILED - terminal size must be 80x24 or larger; \ | |
108 echo; exit 1; \ | |
109 elif diff test.out $*.ok; \ | |
7 | 110 then mv -f test.out $*.out; \ |
111 else echo; \ | |
112 echo test1 FAILED - Something basic is wrong; \ | |
113 echo; exit 1; fi" | |
114 -rm -rf X* viminfo | |
115 | |
116 .in.out: | |
3992 | 117 -rm -rf $*.failed test.ok $(RM_ON_RUN) |
7 | 118 cp $*.ok test.ok |
4313 | 119 # Sleep a moment to avoid that the xterm title is messed up. |
120 # 200 msec is sufficient, but only modern sleep supports a fraction of | |
121 # a second, fall back to a second if it fails. | |
122 @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" | |
3992 | 123 -$(RUN_VIM) $*.in |
124 | |
125 # For flaky tests retry one time. | |
126 @/bin/sh -c "if test -f test.out -a $* = test61; then \ | |
127 if diff test.out $*.ok; \ | |
128 then echo flaky test ok first time; \ | |
129 else rm -rf $*.failed $(RM_ON_RUN); \ | |
130 $(RUN_VIM) $*.in; \ | |
131 fi \ | |
132 fi" | |
133 | |
134 # Check if the test.out file matches test.ok. | |
4444 | 135 @/bin/sh -c "if test -f test.out; then \ |
169 | 136 if diff test.out $*.ok; \ |
137 then mv -f test.out $*.out; \ | |
138 else echo $* FAILED >>test.log; mv -f test.out $*.failed; \ | |
139 fi \ | |
140 else echo $* NO OUTPUT >>test.log; \ | |
7 | 141 fi" |
4444 | 142 @/bin/sh -c "if test -f valgrind; then\ |
143 mv -f valgrind valgrind.$*; \ | |
144 fi" | |
3855 | 145 -rm -rf X* test.ok viminfo |
7 | 146 |
1405 | 147 test49.out: test49.vim |
148 | |
149 test60.out: test60.vim | |
150 | |
6328 | 151 bench_re_freeze.out: bench_re_freeze.vim |
152 -rm -rf benchmark.out $(RM_ON_RUN) | |
153 # Sleep a moment to avoid that the xterm title is messed up. | |
154 # 200 msec is sufficient, but only modern sleep supports a fraction of | |
155 # a second, fall back to a second if it fails. | |
156 @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" | |
157 -$(RUN_VIM) $*.in | |
158 @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi" | |
159 | |
7 | 160 nolog: |
1717 | 161 -rm -f test.log |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
162 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
163 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
164 # New style of tests uses Vim script with assert calls. These are easier |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
165 # to write and a lot easier to read and debug. |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
166 # Limitation: Only works with the +eval feature. |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
167 RUN_VIMTEST = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
168 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
169 newtests: $(NEW_TESTS) |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
170 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
171 .vim.res: |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7275
diff
changeset
|
172 $(RUN_VIMTEST) -u runtest.vim $*.vim |