]> git.saurik.com Git - bison.git/blobdiff - tests/local.mk
tests: check that using variants is exception safe
[bison.git] / tests / local.mk
index 2c2d423759a3997985117e870573a9ac8b939cfe..ede62aa71a366768855b1a93f4519481a15c47e7 100644 (file)
@@ -1,6 +1,6 @@
 ## Makefile for Bison testsuite.
 
 ## Makefile for Bison testsuite.
 
-# Copyright (C) 2000-2012 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -36,11 +36,10 @@ $(top_srcdir)/tests/package.m4: $(top_srcdir)/configure
        } >$@.tmp
        $(AM_V_at)mv $@.tmp $@
 
        } >$@.tmp
        $(AM_V_at)mv $@.tmp $@
 
-## ------------ ##
-## Test suite.  ##
-## ------------ ##
+## ------------------------- ##
+## Generate the test suite.  ##
+## ------------------------- ##
 
 
-## Leave testsuite.at first for the "testsuite" rule's $<.
 TESTSUITE_AT =                                  \
   tests/testsuite.at                            \
                                                 \
 TESTSUITE_AT =                                  \
   tests/testsuite.at                            \
                                                 \
@@ -67,50 +66,60 @@ TESTSUITE_AT =                                  \
   tests/torture.at
 
 TESTSUITE = $(top_srcdir)/tests/testsuite
   tests/torture.at
 
 TESTSUITE = $(top_srcdir)/tests/testsuite
-RUN_TESTSUITE = $(TESTSUITE) -C tests $(TESTSUITEFLAGS)
 
 AUTOTEST = $(AUTOM4TE) --language=autotest
 AUTOTESTFLAGS = -I $(top_srcdir)/tests
 $(TESTSUITE): $(TESTSUITE_AT)
 
 AUTOTEST = $(AUTOM4TE) --language=autotest
 AUTOTESTFLAGS = -I $(top_srcdir)/tests
 $(TESTSUITE): $(TESTSUITE_AT)
-       $(AM_V_GEN)$(AUTOTEST) $(AUTOTESTFLAGS) $< -o $@.tmp
+       $(AM_V_GEN) \
+         $(AUTOTEST) $(AUTOTESTFLAGS) $(srcdir)/tests/testsuite.at -o $@.tmp
        $(AM_V_at)mv $@.tmp $@
 
        $(AM_V_at)mv $@.tmp $@
 
+
+## -------------------- ##
+## Run the test suite.  ##
+## -------------------- ##
+
+# Move into tests/ so that testsuite.dir etc. be created there.
+RUN_TESTSUITE = $(TESTSUITE) -C tests $(TESTSUITEFLAGS)
+check_SCRIPTS = $(BISON) tests/atconfig tests/atlocal
+RUN_TESTSUITE_deps = $(TESTSUITE) $(check_SCRIPTS)
+
 clean-local: clean-local-tests
 clean-local-tests:
        test ! -f $(TESTSUITE) || $(TESTSUITE) -C tests --clean
 
 clean-local: clean-local-tests
 clean-local-tests:
        test ! -f $(TESTSUITE) || $(TESTSUITE) -C tests --clean
 
-check-local: tests/atconfig tests/atlocal $(TESTSUITE)
-# Move into tests/ so that testsuite.dir etc. be created there.
+check-local: $(RUN_TESTSUITE_deps)
        $(RUN_TESTSUITE)
 
        $(RUN_TESTSUITE)
 
-check_SCRIPTS = $(BISON)
-
 # Run the test suite on the *installed* tree.
 # Run the test suite on the *installed* tree.
-installcheck-local:
-       $(RUN_TESTSUITE) AUTOTEST_PATH="$(bindir)"
+installcheck-local: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE) AUTOTEST_PATH='$(bindir)'
 
 # Be real mean with it.
 .PHONY: maintainer-check-g++
 
 # Be real mean with it.
 .PHONY: maintainer-check-g++
-maintainer-check-g++: $(TESTSUITE)
-       $(RUN_TESTSUITE) CC='$(CXX)'
+maintainer-check-g++: $(RUN_TESTSUITE_deps)
+       $(RUN_TESTSUITE) --compile-c-with-cxx
 
 .PHONY: maintainer-check-posix
 
 .PHONY: maintainer-check-posix
-maintainer-check-posix: $(TESTSUITE)
+maintainer-check-posix: $(RUN_TESTSUITE_deps)
        $(RUN_TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
 
 .PHONY: maintainer-check-valgrind
        $(RUN_TESTSUITE) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112
 
 .PHONY: maintainer-check-valgrind
-maintainer-check-valgrind: $(TESTSUITE)
-       test -z '$(VALGRIND)' || \
-          VALGRIND_OPTS='--leak-check=full --show-reachable=yes' \
-          $(RUN_TESTSUITE) PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'
+maintainer-check-valgrind: $(RUN_TESTSUITE_deps)
+       test -z '$(VALGRIND)' ||                                        \
+         $(RUN_TESTSUITE)                                              \
+           PREBISON='$(VALGRIND_PREBISON)' PREPARSER='$(VALGRIND) -q'  \
+           VALGRIND_OPTS='--leak-check=full --show-reachable=yes'
 
 .PHONY: maintainer-check
 maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
 
 .PHONY: maintainer-push-check
 maintainer-push-check:
 
 .PHONY: maintainer-check
 maintainer-check: maintainer-check-posix maintainer-check-valgrind maintainer-check-g++
 
 .PHONY: maintainer-push-check
 maintainer-push-check:
-       BISON_USE_PUSH_FOR_PULL=1 $(MAKE) $(AM_MAKEFLAGS) maintainer-check
+       $(MAKE) $(AM_MAKEFLAGS) maintainer-check                        \
+         TESTSUITEFLAGS='BISON_USE_PUSH_FOR_PULL=1 $(TESTSUITEFLAGS)'
 
 .PHONY: maintainer-xml-check
 maintainer-xml-check:
 
 .PHONY: maintainer-xml-check
 maintainer-xml-check:
-       BISON_TEST_XML=1 $(MAKE) $(AM_MAKEFLAGS) maintainer-check
+       $(MAKE) $(AM_MAKEFLAGS) maintainer-check                \
+         TESTSUITEFLAGS='BISON_TEST_XML=1 $(TESTSUITEFLAGS)'