style: rename stmtMerge as stmt_merge
[bison.git] / tests / local.mk
blob3efc69d8ba039222d4499702c1c012a148fb1b64
1 ## Makefile for Bison testsuite.
3 ## Copyright (C) 2000-2015, 2018-2021 Free Software Foundation, Inc.
4 ##
5 ## This program is free software: you can redistribute it and/or modify
6 ## it under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation, either version 3 of the License, or
8 ## (at your option) any later version.
9 ##
10 ## This program is distributed in the hope that it will be useful,
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ## GNU General Public License for more details.
15 ## You should have received a copy of the GNU General Public License
16 ## along with this program. If not, see <https://www.gnu.org/licenses/>.
18 EXTRA_DIST += \
19 %D%/README.md %D%/linear \
20 $(TESTSUITE_AT) %D%/testsuite %D%/testsuite.h
22 DISTCLEANFILES += %D%/atconfig $(check_SCRIPTS)
23 MAINTAINERCLEANFILES += $(TESTSUITE)
25 ## ------------ ##
26 ## package.m4. ##
27 ## ------------ ##
29 $(top_srcdir)/%D%/package.m4: $(top_srcdir)/configure
30 $(AM_V_GEN)rm -f $@ $@.tmp
31 $(AM_V_at){ \
32 echo '# Signature of the current package.'; \
33 echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \
34 echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \
35 echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \
36 echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \
37 echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
38 } >$@.tmp
39 $(AM_V_at)mv $@.tmp $@
42 # Update the test cases. Consider the latest test results to be the
43 # correct expectations, and change the test cases to match them.
44 .PHONY: update-tests
45 update-tests:
46 $(AM_V_GEN)cd $(top_srcdir) \
47 && build-aux/update-test $(abs_builddir)/%D%/testsuite.dir/*/testsuite.log
49 ## ------------------------- ##
50 ## Generate the test suite. ##
51 ## ------------------------- ##
53 TESTSUITE_AT = \
54 %D%/testsuite.at \
56 %D%/actions.at \
57 %D%/c++.at \
58 %D%/calc.at \
59 %D%/conflicts.at \
60 %D%/counterexample.at \
61 %D%/cxx-type.at \
62 %D%/d.at \
63 %D%/diagnostics.at \
64 %D%/existing.at \
65 %D%/glr-regression.at \
66 %D%/headers.at \
67 %D%/input.at \
68 %D%/java.at \
69 %D%/javapush.at \
70 %D%/local.at \
71 %D%/m4.at \
72 %D%/named-refs.at \
73 %D%/output.at \
74 %D%/package.m4 \
75 %D%/push.at \
76 %D%/reduce.at \
77 %D%/regression.at \
78 %D%/report.at \
79 %D%/scanner.at \
80 %D%/sets.at \
81 %D%/skeletons.at \
82 %D%/synclines.at \
83 %D%/torture.at \
84 %D%/types.at
86 TESTSUITE = $(top_srcdir)/%D%/testsuite
88 AUTOTEST = $(AUTOM4TE) --language=autotest
89 AUTOTESTFLAGS = -I $(top_srcdir)/%D%
90 $(TESTSUITE): $(TESTSUITE_AT)
91 $(AM_V_GEN) \
92 $(AUTOTEST) $(AUTOTESTFLAGS) $(srcdir)/%D%/testsuite.at -o $@.tmp
93 $(AM_V_at)"$(PERL)" -pi -e 's/\@tb\@/\t/g' $@.tmp
94 $(AM_V_at)mv $@.tmp $@
97 ## -------------------- ##
98 ## Run the test suite. ##
99 ## -------------------- ##
101 # Move into %D%/ so that testsuite.dir etc. be created there.
102 RUN_TESTSUITE = $(SHELL) $(TESTSUITE) -C %D% $(TESTSUITEFLAGS)
103 check_SCRIPTS += $(BISON) %D%/atconfig %D%/atlocal
104 RUN_TESTSUITE_deps = all $(TESTSUITE) $(check_SCRIPTS)
106 clean-local: clean-local-tests
107 clean-local-tests:
108 test ! -f $(TESTSUITE) || $(TESTSUITE) -C %D% --clean
110 .PHONY: recheck
111 recheck: $(RUN_TESTSUITE_deps)
112 $(RUN_TESTSUITE) \
113 $$(perl -n \
114 -e 'eof && /^(\d+).*: FAILED/ && print "$$1 "' \
115 %D%/testsuite.dir/*/testsuite.log)
117 check-local: check-tests
119 .PHONY: check-tests
120 check-tests: $(RUN_TESTSUITE_deps)
121 $(RUN_TESTSUITE)
123 # Run the test suite on the *installed* tree.
124 installcheck-local: $(RUN_TESTSUITE_deps)
125 $(RUN_TESTSUITE) AUTOTEST_PATH='$(bindir)'
127 # Be real mean with it.
128 .PHONY: maintainer-check-g++
129 maintainer-check-g++: $(RUN_TESTSUITE_deps)
130 $(RUN_TESTSUITE) --compile-c-with-cxx
132 .PHONY: maintainer-check-posix
133 maintainer-check-posix: $(RUN_TESTSUITE_deps)
134 $(RUN_TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
136 .PHONY: maintainer-check-valgrind
137 VALGRIND_OPTS = --leak-check=full --show-reachable=yes --gen-suppressions=all \
138 $(VALGRIND_OPTS_SUPPRESSION)
139 maintainer-check-valgrind: $(RUN_TESTSUITE_deps)
140 test 'x$(VALGRIND)' = x || \
141 $(RUN_TESTSUITE) \
142 PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q' \
143 VALGRIND_OPTS="$(VALGRIND_OPTS)"
145 .PHONY: maintainer-check
146 maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
148 .PHONY: maintainer-check-push
149 maintainer-check-push:
150 $(MAKE) $(AM_MAKEFLAGS) maintainer-check \
151 TESTSUITEFLAGS='BISON_USE_PUSH_FOR_PULL=1 $(TESTSUITEFLAGS)'
153 .PHONY: maintainer-check-xml
154 maintainer-check-xml:
155 $(MAKE) $(AM_MAKEFLAGS) maintainer-check \
156 TESTSUITEFLAGS='BISON_TEST_XML=1 $(TESTSUITEFLAGS)'
158 .PHONY: maintainer-check-release
159 maintainer-check-release: maintainer-check maintainer-check-push maintainer-check-xml