automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FYI] {yacc-work} coverage: test for automake bug#8485 (known regression


From: Stefano Lattarini
Subject: [FYI] {yacc-work} coverage: test for automake bug#8485 (known regression)
Date: Tue, 12 Apr 2011 15:26:33 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

I've pushed the attached patch to yacc-work.  The new testcase
should correctly capture and expose the regression, as it passes
with automake 1.11 and fails with developement (maint, master
and yacc-work) versions of automake.

Regards,
  Stefano
From b3c8fd538d3ddaaaed9081d78aedcd16e0f75bf3 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <address@hidden>
Date: Tue, 12 Apr 2011 15:11:04 +0200
Subject: [PATCH] coverage: test for automake bug#8485 (known regression)

* tests/yacc-dist-nobuild-subdir.test: New test.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
---
 ChangeLog                           |    6 ++
 tests/Makefile.am                   |    2 +
 tests/Makefile.in                   |    1 +
 tests/yacc-dist-nobuild-subdir.test |   93 +++++++++++++++++++++++++++++++++++
 4 files changed, 102 insertions(+), 0 deletions(-)
 create mode 100755 tests/yacc-dist-nobuild-subdir.test

diff --git a/ChangeLog b/ChangeLog
index c0495d5..d1ebf21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-12  Stefano Lattarini  <address@hidden>
+
+       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  <address@hidden>
 
        coverage: test mixed C/C++ yacc-generated parsers in the same dir
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3878ac9..3191922 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -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 \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ab0b4ee..0711b03 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1106,6 +1106,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
index 0000000..b6811d7
--- /dev/null
+++ b/tests/yacc-dist-nobuild-subdir.test
@@ -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
+
+:
-- 
1.7.2.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]