blob: cbea54ac3189bcbb22bfe55c2caea3d6aa99770c [file] [log] [blame]
Bram Moolenaar46acad72023-06-11 19:04:18 +01001# Portable Makefile for running syntax tests.
2
Christian Brabandt56824432024-02-28 21:24:25 +01003# To run the test manually:
4# ../../src/vim -u 'testdir/runtest.vim' --cmd 'breakadd func RunTest'
5
Bram Moolenaar1aa5f1c2023-06-22 21:57:51 +01006# Override this if needed, the default assumes Vim was build in the src dir.
7#VIMPROG = vim
8VIMPROG = ../../src/vim
Bram Moolenaar46acad72023-06-11 19:04:18 +01009
10# "runtime" relative to "runtime/syntax/testdir"
11VIMRUNTIME = ../..
12
13# Uncomment this line to use valgrind for memory leaks and extra warnings.
14# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=45 --log-file=valgrind.$*
15
16# ENVVARS = LC_ALL=C LANG=C LANGUAGE=C
Christian Brabandt627c9502024-02-10 13:02:17 +010017# Run the syntax tests with a C locale
18ENVVARS = LC_ALL=C
Bram Moolenaar46acad72023-06-11 19:04:18 +010019
K.Takatad5b952a2023-06-13 22:44:57 +010020RUN_VIMTEST = VIMRUNTIME=$(VIMRUNTIME) $(VALGRIND) $(ENVVARS) ../$(VIMPROG) -f $(GUI_FLAG)
Bram Moolenaar46acad72023-06-11 19:04:18 +010021
Bram Moolenaar1aa5f1c2023-06-22 21:57:51 +010022# Uncomment this line for debugging
23# DEBUGLOG = --log testlog
24
Bram Moolenaar46acad72023-06-11 19:04:18 +010025# Run the tests that didn't run yet or failed previously.
26# If a test succeeds a testdir/done/{name} file will be written.
27# If a test fails a testdir/failed/{name}.dump file will be written.
Bram Moolenaar1aa5f1c2023-06-22 21:57:51 +010028# Progress and error messages can be found in "testdir/messages".
Bram Moolenaar46acad72023-06-11 19:04:18 +010029test:
30 @# the "vimcmd" file is used by the screendump utils
K.Takatad5b952a2023-06-13 22:44:57 +010031 @echo "../$(VIMPROG)" > testdir/vimcmd
Bram Moolenaar46acad72023-06-11 19:04:18 +010032 @echo "$(RUN_VIMTEST)" >> testdir/vimcmd
Christian Brabandt627c9502024-02-10 13:02:17 +010033 VIMRUNTIME=$(VIMRUNTIME) $(ENVVARS) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim
Aliaksei Budaveiec022942024-10-06 16:57:33 +020034 @rm -f testdir/Xfilter
Bram Moolenaar10c1dbc2023-06-23 19:37:19 +010035 @# FIXME: Temporarily show the whole file to find out what goes wrong
Dominique Pellé99c38492023-09-24 16:09:31 +020036 @#if [ -f testdir/messages ]; then tail -n 6 testdir/messages; fi
37 @if [ -f testdir/messages ]; then cat testdir/messages; fi
Bram Moolenaar46acad72023-06-11 19:04:18 +010038
39
40clean testclean:
Aliaksei Budaveiec022942024-10-06 16:57:33 +020041 rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages testdir/Xtestscript testdir/Xfilter
42
43# All initial phony targets; these names may clash with file extensions.
44phonies = clean test testclean
45
46# Collect all input filenames and their file extensions.
47testnames != set +f; \
48awk 'BEGIN { \
49 for (i = 1; i < ARGC; i++) { \
50 split(ARGV[i], names, /\//); \
51 split(names[3], parts, /\./); \
52 exts[parts[2]]; \
53 print names[3]; \
54 } \
55 split("$(phonies)", scratch); \
56 for (phony in scratch) \
57 phonies[scratch[phony]]; \
58 for (ext in exts) \
59 print ext ((ext in phonies) ? "_" : ""); \
60}' testdir/input/*.*
61
62.PHONY: self-testing $(testnames)
63
64$(testnames)::
65 @echo $@ >> testdir/Xfilter
66
67self-testing:: $(testnames)
68 @echo self-testing > testdir/Xfilter