From 185ae9e19e2bc890fb07e95e86e25a0b2a7bf440 Mon Sep 17 00:00:00 2001 From: Pavel Roskin Date: Sat, 3 Mar 2001 07:13:04 +0000 Subject: [PATCH] * tests/yaccvpath.test: Add a delay to make parse.c really out of date. Detect the problem earlier, after `make distdir'. Drop dependency on flex. Always use the `-y' flag for bison. Comment changes. * tests/Makefile.am: Add yaccvpath.test to XFAIL_TESTS. --- ChangeLog | 8 ++++++++ tests/Makefile.am | 2 +- tests/Makefile.in | 2 +- tests/yaccvpath.test | 56 +++++++++++++++++++++++++++++++--------------------- 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index c53a4bb..574ef68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-02-27 Pavel Roskin + + * tests/yaccvpath.test: Add a delay to make parse.c really out + of date. Detect the problem earlier, after `make distdir'. Drop + dependency on flex. Always use the `-y' flag for bison. Comment + changes. + * tests/Makefile.am: Add yaccvpath.test to XFAIL_TESTS. + 2001-03-02 Jens Krüger * depend2.am (?!GENERIC??LIBTOOL?%LTOBJ%): Add `%' to fix typo. diff --git a/tests/Makefile.am b/tests/Makefile.am index 7d47a7c..59954ec 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = gnits -XFAIL_TESTS = +XFAIL_TESTS = yaccvpath.test TESTS = \ acinclude.test \ aclocal.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index c207bae..1288ef8 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -78,7 +78,7 @@ install_sh = @install_sh@ AUTOMAKE_OPTIONS = gnits -XFAIL_TESTS = +XFAIL_TESTS = yaccvpath.test TESTS = \ acinclude.test \ aclocal.test \ diff --git a/tests/yaccvpath.test b/tests/yaccvpath.test index f2fe93e..9d90f20 100755 --- a/tests/yaccvpath.test +++ b/tests/yaccvpath.test @@ -1,12 +1,19 @@ #! /bin/sh -# This attempts to `make distcheck' from a separate directory -# (i.e. builddir!=srcdir). Before doing `make distcheck' a parser -# definition is updated in the srcdir in order to check whether the -# archived perser is up-to-date or not. +# This test checks that dependent files are updated before including +# in the distribution. `parse.c' depends on `parce.y'. The later is +# updated so that `parse.c' should be rebuild. Then we are running +# `make' and `make distdir' and check whether the version of `parse.c' +# to be distributed is up to date. . $srcdir/defs || exit 1 +# Fail gracefully if no autoconf. +$needs_autoconf +# Likewise for some other tools. +(gcc -v) > /dev/null 2>&1 || exit 77 +(bison -V) > /dev/null 2>&1 || exit 77 + cat > configure.in << 'END' AC_INIT AC_CONFIG_AUX_DIR([.]) @@ -19,10 +26,11 @@ AC_OUTPUT(Makefile) END cat > Makefile.am << 'END' -bin_PROGRAMS= foo -foo_SOURCES= parse.y foo.c +bin_PROGRAMS = foo +foo_SOURCES = parse.y foo.c END +# Original parser, with `foobar' cat > parse.y << 'END' %{ int yylex () {return 0;} @@ -36,16 +44,8 @@ cat > foo.c << 'END' int main () { return 0; } END -# Fail gracefully if no autoconf. -$needs_autoconf -# Likewise for some other tools. -(gcc -v) > /dev/null 2>&1 || exit 77 -(flex -V) > /dev/null 2>&1 || exit 77 -(bison -V) > /dev/null 2>&1 || exit 77 - -LEX=flex -export LEX -YACC=bison +# We are not checking Autoconf, so we pick $YACC for it. +YACC="bison -y" export YACC # Remove some files installed by defs. @@ -58,15 +58,27 @@ $ACLOCAL $AUTOCONF $AUTOMAKE -a -bison -y parse.y +$YACC parse.y mv y.tab.c parse.c -cat >> parse.y << 'END' -fubar : 'f' foobar {}; -END - mkdir sub cd sub ../configure + +# A delay is needed to make sure that the new parse.y is indeed newer +# than parse.c, i.e. the they don't have the same timestamp. +sleep 2 + +# New parser, with `fubar' +cat > parse.y << 'END' +%{ +int yylex () {return 0;} +void yyerror (char *s) {} +%} +%% +fubar : 'f' 'o' 'o' 'b' 'a' 'r' {}; +END + $MAKE -$MAKE distcheck +$MAKE distdir +grep fubar foo-0.1/parse.c -- 2.7.4