1 ## Makefile for Bison testsuite.
3 ## Copyright (C) 2000-2015, 2018-2021 Free Software Foundation, Inc.
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.
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 <http://www.gnu.org/licenses/>.
18 EXTRA_DIST
+= %D
%/linear
$(TESTSUITE_AT
) %D
%/testsuite
%D
%/testsuite.h
20 DISTCLEANFILES
+= %D
%/atconfig
$(check_SCRIPTS
)
21 MAINTAINERCLEANFILES
+= $(TESTSUITE
)
27 $(top_srcdir
)/%D
%/package.m4
: $(top_srcdir
)/configure
28 $(AM_V_GEN
)rm -f
$@
$@.tmp
30 echo
'# Signature of the current package.'; \
31 echo
'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \
32 echo
'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \
33 echo
'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \
34 echo
'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \
35 echo
'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
37 $(AM_V_at
)mv
$@.tmp
$@
40 # Update the test cases. Consider the latest test results to be the
41 # correct expectations, and change the test cases to match them.
44 $(AM_V_GEN
)cd
$(top_srcdir
) \
45 && build-aux
/update-test
$(abs_builddir
)/%D
%/testsuite.
dir/*/testsuite.log
47 ## ------------------------- ##
48 ## Generate the test suite. ##
49 ## ------------------------- ##
58 %D
%/counterexample.at \
62 %D
%/glr-regression.at \
83 TESTSUITE
= $(top_srcdir
)/%D
%/testsuite
85 AUTOTEST
= $(AUTOM4TE
) --language
=autotest
86 AUTOTESTFLAGS
= -I
$(top_srcdir
)/%D
%
87 $(TESTSUITE
): $(TESTSUITE_AT
)
89 $(AUTOTEST
) $(AUTOTESTFLAGS
) $(srcdir)/%D
%/testsuite.at
-o
$@.tmp
90 $(AM_V_at
)"$(PERL)" -pi
-e
's/\@tb\@/\t/g' $@.tmp
91 $(AM_V_at
)mv
$@.tmp
$@
94 ## -------------------- ##
95 ## Run the test suite. ##
96 ## -------------------- ##
98 # Move into %D%/ so that testsuite.dir etc. be created there.
99 RUN_TESTSUITE
= $(SHELL
) $(TESTSUITE
) -C
%D
% $(TESTSUITEFLAGS
)
100 check_SCRIPTS
+= $(BISON
) %D
%/atconfig
%D
%/atlocal
101 RUN_TESTSUITE_deps
= all $(TESTSUITE
) $(check_SCRIPTS
)
103 clean-local
: clean-local-tests
105 test ! -f
$(TESTSUITE
) ||
$(TESTSUITE
) -C
%D
% --clean
108 recheck
: $(RUN_TESTSUITE_deps
)
111 -e
'eof && /^(\d+).*: FAILED/ && print "$$1 "' \
112 %D
%/testsuite.
dir/*/testsuite.log
)
114 check-local
: $(RUN_TESTSUITE_deps
)
117 # Run the test suite on the *installed* tree.
118 installcheck-local
: $(RUN_TESTSUITE_deps
)
119 $(RUN_TESTSUITE
) AUTOTEST_PATH
='$(bindir)'
121 # Be real mean with it.
122 .PHONY
: maintainer-check-g
++
123 maintainer-check-g
++: $(RUN_TESTSUITE_deps
)
124 $(RUN_TESTSUITE
) --compile-c-with-cxx
126 .PHONY
: maintainer-check-posix
127 maintainer-check-posix
: $(RUN_TESTSUITE_deps
)
128 $(RUN_TESTSUITE
) POSIXLY_CORRECT
=1 _POSIX2_VERSION
=200112
130 .PHONY
: maintainer-check-valgrind
131 VALGRIND_OPTS
= --leak-check
=full
--show-reachable
=yes
--gen-suppressions
=all \
132 $(VALGRIND_OPTS_SUPPRESSION
)
133 maintainer-check-valgrind
: $(RUN_TESTSUITE_deps
)
134 test 'x$(VALGRIND)' == x || \
136 PREBISON
='$(VALGRIND) -q' PREPARSER
='$(VALGRIND) -q' \
137 VALGRIND_OPTS
="$(VALGRIND_OPTS)"
139 .PHONY
: maintainer-check
140 maintainer-check
: maintainer-check-posix maintainer-check-valgrind maintainer-check-g
++
142 .PHONY
: maintainer-check-push
143 maintainer-check-push
:
144 $(MAKE
) $(AM_MAKEFLAGS
) maintainer-check \
145 TESTSUITEFLAGS
='BISON_USE_PUSH_FOR_PULL=1 $(TESTSUITEFLAGS)'
147 .PHONY
: maintainer-check-xml
148 maintainer-check-xml
:
149 $(MAKE
) $(AM_MAKEFLAGS
) maintainer-check \
150 TESTSUITEFLAGS
='BISON_TEST_XML=1 $(TESTSUITEFLAGS)'
152 .PHONY
: maintainer-check-release
153 maintainer-check-release
: maintainer-check maintainer-check-push maintainer-check-xml