]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
coverage: test for automake bug#8485 (known regression)
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 12 Apr 2011 13:11:04 +0000 (15:11 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 12 Apr 2011 13:17:51 +0000 (15:17 +0200)
* tests/yacc-dist-nobuild-subdir.test: New test.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.

ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/yacc-dist-nobuild-subdir.test [new file with mode: 0755]

index c0495d5ada2adbcb66e7a73f1c2cbabc1018d741..d1ebf21e576c8a85aef1a1d97abb9269f0a84521 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-12  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       coverage: test for automake bug#8485 (known regression)
+       * tests/yacc-dist-nobuild-subdir.test: New test.
+       * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
+
 2011-04-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
        coverage: test mixed C/C++ yacc-generated parsers in the same dir
index 3878ac91d80be4179cef8dbb2a18b6f61e300778..3191922d590a335b8c253238cb91ee6eb9e92522 100644 (file)
@@ -22,6 +22,7 @@ auxdir2.test \
 cond17.test \
 gcj6.test \
 pr8365-remake-timing.test \
+yacc-dist-nobuild-subdir.test \
 txinfo5.test
 
 include $(srcdir)/parallel-tests.am
@@ -836,6 +837,7 @@ yacc8.test \
 yaccdry.test \
 yacc-deleted-headers.test \
 yacc-dist-nobuild.test \
+yacc-dist-nobuild-subdir.test \
 yacc-nodist.test \
 yaccpp.test \
 yaccvpath.test \
index ab0b4ee3b1dd5dde3bec96d89d802ecdf7026cc7..f06f1f751d311938dfef3aaefb030026230759c1 100644 (file)
@@ -278,6 +278,7 @@ auxdir2.test \
 cond17.test \
 gcj6.test \
 pr8365-remake-timing.test \
+yacc-dist-nobuild-subdir.test \
 txinfo5.test
 
 parallel_tests = \
@@ -1106,6 +1107,7 @@ yacc8.test \
 yaccdry.test \
 yacc-deleted-headers.test \
 yacc-dist-nobuild.test \
+yacc-dist-nobuild-subdir.test \
 yacc-nodist.test \
 yaccpp.test \
 yaccvpath.test \
diff --git a/tests/yacc-dist-nobuild-subdir.test b/tests/yacc-dist-nobuild-subdir.test
new file mode 100755 (executable)
index 0000000..b6811d7
--- /dev/null
@@ -0,0 +1,93 @@
+#! /bin/sh
+# Copyright (C) 2011 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that VPATH builds and "make distcheck" works with packages
+# using yacc and the automake 'subdir-objects' option.
+# Exposes automake bug#8485.
+
+required=yacc
+. ./defs || Exit 1
+
+set -e
+
+distdir=$me-1.0
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_YACC
+AC_OUTPUT
+END
+
+mkdir sub
+
+cat > sub/parse.y << 'END'
+%{
+int yylex () { return 0; }
+void yyerror (char *s) { return; }
+%}
+%%
+x : 'x' {};
+%%
+int main (void)
+{
+  return yyparse ();
+}
+END
+
+cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
+noinst_PROGRAMS = foo bar
+foo_SOURCES = sub/parse.y
+bar_SOURCES = $(foo_SOURCES)
+AM_YFLAGS = -d
+bar_YFLAGS =
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+./configure
+$MAKE distdir
+
+# Yacc-derived C source and header files must be built and distributed
+
+test   -f sub/parse.c
+test   -f sub/parse.h
+test   -f sub/bar-parse.c
+test ! -r sub/bar-parse.h
+
+test   -f $distdir/sub/parse.c
+test   -f $distdir/sub/parse.h
+test   -f $distdir/sub/bar-parse.c
+test ! -r $distdir/sub/bar-parse.h
+
+# But they shouldn't be rebuilt in VPATH builds.
+
+mkdir $distdir/build
+chmod -R a-w $distdir
+cd $distdir/build
+chmod u+w .
+# Try to enable dependency tracking even with slow dependency
+# extractors, to improve coverage.
+../configure --enable-dependency-tracking YACC=false
+YACC=false $MAKE -e
+ls -l sub/*.[ch] && Exit 1
+
+env YACC=false DISTCHECK_CONFIGURE_FLAGS='YACC=false' $MAKE -e distcheck
+
+: