From f0b4323ac83c8e2bb57ebece361905cf1bcaa07e Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Wed, 8 Sep 2010 21:05:36 +0200 Subject: [PATCH] Make some `confh*.test' tests more "semantic" (plus tweakings). * tests/confh.test: Run "autoconf", "configure" and "make check", instead of munging/grepping the generated `Makefile.in'. * tests/confh4.test: Relax the grepping of Makefile.in w.r.t. white spaces. Do not create usless dummy source file `foo.c' and useless dummy header file `acconfig.h'. (configure.in): Remove superfluous call to `AC_OUTPUT'. * tests/confh6.test: Add trailing `:' command. * tests/confh7.test: In comments, add reference to ... * tests/confh8.test: ... this new test, "semantic" sister of `confh7.test'. * tests/Makefile.am (TESTS): Updated. Prompted by a report from Ralf Wildenhues. --- ChangeLog | 14 ++++++++++++ tests/Makefile.am | 1 + tests/confh.test | 35 ++++++++++++++++------------ tests/confh4.test | 6 +---- tests/confh6.test | 2 ++ tests/confh7.test | 1 + tests/confh8.test | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 108 insertions(+), 19 deletions(-) create mode 100755 tests/confh8.test diff --git a/ChangeLog b/ChangeLog index 50a47df..9444b66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2010-09-08 Stefano Lattarini + Make some `confh*.test' tests more "semantic" (plus tweakings). + * tests/confh.test: Run "autoconf", "configure" and "make check", + instead of munging/grepping the generated `Makefile.in'. + * tests/confh4.test: Relax the grepping of Makefile.in w.r.t. + white spaces. Do not create usless dummy source file `foo.c' + and useless dummy header file `acconfig.h'. + (configure.in): Remove superfluous call to `AC_OUTPUT'. + * tests/confh6.test: Add trailing `:' command. + * tests/confh7.test: In comments, add reference to ... + * tests/confh8.test: ... this new test, "semantic" sister + of `confh7.test'. + * tests/Makefile.am (TESTS): Updated. + Prompted by a report from Ralf Wildenhues. + Remove useless whitespace padding in XFAIL_TESTS definition. * tests/Makefile.am (XFAIL_TESTS): Remove whitespace padding. diff --git a/tests/Makefile.am b/tests/Makefile.am index e15d70a..58103cc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -223,6 +223,7 @@ confh4.test \ confh5.test \ confh6.test \ confh7.test \ +confh8.test \ confincl.test \ conflnk.test \ conflnk2.test \ diff --git a/tests/confh.test b/tests/confh.test index 552ce5c..34674cc 100755 --- a/tests/confh.test +++ b/tests/confh.test @@ -24,29 +24,36 @@ set -e cat >> configure.in << 'END' AM_CONFIG_HEADER([include/config.h]) +AC_OUTPUT END -: > Makefile.am -: > acconfig.h +cat > Makefile.am << 'END' +.PHONY: test1 test2 +test1: + @echo DIST_COMMON = $(DIST_COMMON) ## for debugging + echo ' ' $(DIST_COMMON) ' ' | grep '[ /]acconfig\.h ' +test2: distdir + ls -l $(distdir)/* ## for debugging + test -f $(distdir)/acconfig.h +check-local: test1 test2 +END mkdir include -: > include/Makefile.am : > include/config.h.in +: > acconfig.h + +# The test used to fail if `include/Makefile.am' was created (!) +: > include/Makefile.am $ACLOCAL +$AUTOCONF $AUTOMAKE -perl -ne ' -if (s/^DIST_COMMON *=//) -{ - $_ .= <> while (s/\\$//); - $_ = " $_ "; - s/\s+/ /g; - print "$_\n"; - exit 0; -}' Makefile.in > dc.txt -cat dc.txt # might be useful for debugging. -$FGREP ' acconfig.h ' dc.txt +./configure + +$MAKE test1 +$MAKE test2 +$MAKE distcheck # Make sure re-running automake in a different way generates same # Makefile.in. diff --git a/tests/confh4.test b/tests/confh4.test index bab2d53..8e36cfa 100755 --- a/tests/confh4.test +++ b/tests/confh4.test @@ -31,7 +31,6 @@ cat >> configure.in << 'END' AC_CONFIG_FILES([include/Makefile]) AM_CONFIG_HEADER([include/config.h]) AC_PROG_CC -AC_OUTPUT END cat > Makefile.am << 'END' @@ -39,9 +38,6 @@ bin_PROGRAMS = foo foo_SOURCES = foo.c END -: > foo.c -: > acconfig.h - mkdir include : > include/Makefile.am : > include/config.h.in @@ -49,6 +45,6 @@ mkdir include $ACLOCAL $AUTOMAKE -grep '^DEFAULT_INCLUDES =.* -I\$(top_builddir)/include' Makefile.in +grep '^ *DEFAULT_INCLUDES *=.* -I\$(top_builddir)/include' Makefile.in : diff --git a/tests/confh6.test b/tests/confh6.test index de55be7..532a2fd 100755 --- a/tests/confh6.test +++ b/tests/confh6.test @@ -45,3 +45,5 @@ $MAKE subdir/config.h $FGREP gRePmE subdir/config.h $MAKE distcheck + +: diff --git a/tests/confh7.test b/tests/confh7.test index 3d0e54a..4e4f7da 100755 --- a/tests/confh7.test +++ b/tests/confh7.test @@ -16,6 +16,7 @@ # along with this program. If not, see . # Test to make sure several config headers are allowed. +# See also sister "semantic" test `confh8.test'. . ./defs || Exit 1 diff --git a/tests/confh8.test b/tests/confh8.test new file mode 100755 index 0000000..df985ec --- /dev/null +++ b/tests/confh8.test @@ -0,0 +1,68 @@ +#! /bin/sh +# Copyright (C) 2010 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 . + +# Test to make sure several config headers are allowed. +# See also sister "minimalistic" test `confh7.test'. + +. ./defs || Exit 1 + +set -e + +cat >> configure.in << 'END' +AM_CONFIG_HEADER([one.h two.h]) +AC_OUTPUT +END + +cat > Makefile.am << 'END' +.PHONY: test0 test1 test2 +test0: + @echo DIST_COMMON = $(DIST_COMMON) ## for debugging + echo ' ' $(DIST_COMMON) ' ' | grep '[ /]one\.h\.in ' + echo ' ' $(DIST_COMMON) ' ' | grep '[ /]two\.h\.in ' + : Processed header files should not be distributed. + if echo ' ' $(DIST_COMMON) ' ' | grep '\.h '; then \ + exit 1; \ + else \ + exit 0; \ + fi +test1: all + test -f one.h + test -f two.h +test2: distdir + ls -l $(distdir)/* ## for debugging + test -f $(distdir)/one.h.in + test -f $(distdir)/two.h.in + : Processed header files should not be distributed. + test ! -r $(distdir)/one.h + test ! -r $(distdir)/two.h +check-local: test0 test1 test2 +END + +: > one.h.in +: > two.h.in + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure + +$MAKE test0 +$MAKE test1 +$MAKE test2 +$MAKE distcheck + +: -- 2.7.4