From: Stefano Lattarini Date: Fri, 21 Jan 2011 10:47:20 +0000 (+0100) Subject: tests: cover yacc target-specific flags, and `-v' flag handling X-Git-Tag: ylwrap-refactor-abandoned-branch~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a33290b3dd6726e3d8c09975053e841338ec2b67;p=thirdparty%2Fautomake.git tests: cover yacc target-specific flags, and `-v' flag handling * tests/yacc-basic.test: Also try to build a parser having `-v' as target-specific flags. Add a couple of `ls -l' commands, for debugging. Update and extend comments. Escape literal dots in grep regular expressions. --- diff --git a/ChangeLog b/ChangeLog index 31adec7a7..3f23906c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-01-22 Stefano Lattarini + + tests: cover yacc target-specific flags, and `-v' flag handling + * tests/yacc-basic.test: Also try to build a parser having `-v' + as target-specific flags. Add a couple of `ls -l' commands, for + debugging. Update and extend comments. Escape literal dots in + grep regular expressions. + 2011-01-12 Stefano Lattarini docs: clustered '-d' not recognized in YFLAGS diff --git a/tests/yacc-basic.test b/tests/yacc-basic.test index 4faea9547..cc2840148 100755 --- a/tests/yacc-basic.test +++ b/tests/yacc-basic.test @@ -30,8 +30,10 @@ AC_OUTPUT END cat > Makefile.am << 'END' -bin_PROGRAMS = foo +bin_PROGRAMS = foo bar foo_SOURCES = parse.y foo.c +bar_SOURCES = $(foo_SOURCES) +bar_YFLAGS = -v .PHONY: echo-distcom echo-distcom: @@ -59,30 +61,49 @@ $AUTOMAKE -a ./configure $MAKE -# The `parse.c' file must be created and not removed (i.e., not treated -# like an "intermediate file" in the GNU make sense). +ls -l +# The Yacc-derived C sources must be created, and not removed once +# compiled (i.e., not treated like "intermediate files" in the GNU +# make sense). test -f parse.c +test -f bar-parse.c +# Check that per-object flags are honored. +test -f bar-parse.output echo a | ./foo echo b | ./foo && Exit 1 -# The generated file `parse.c' must be shipped. +echo a | ./bar +echo b | ./bar && Exit 1 + +# The Yacc-derived C sources must be shipped. $MAKE echo-distcom -$MAKE -s echo-distcom | grep '[ /]parse.c ' +$MAKE -s echo-distcom | grep '[ /]parse\.c ' +$MAKE -s echo-distcom | grep '[ /]bar-parse\.c ' $MAKE distdir ls -l $distdir test -f $distdir/parse.c +test -f $distdir/bar-parse.c # Sanity check on distribution. +# Note that, for this to succeed, bar-parse.output must either not +# be distributed, or properly cleaned by automake-generated rules. +# We don't want to set the exact semantics yet, but want to ensure +# they are are consistent. $MAKE distcheck -# While we are at it, make sure that parse.c is erased by +# Make sure that the Yacc-derived C sources are erased by # maintainer-clean, and not by distclean. test -f parse.c +test -f bar-parse.c $MAKE distclean +ls -l test -f parse.c +test -f bar-parse.c ./configure # we must re-create `Makefile' $MAKE maintainer-clean +ls -l test ! -f parse.c +test ! -f bar-parse.c :