Hash :
fc5ac9a1
Author :
Date :
2011-05-26T15:42:02
tests: tweak and improve tests on Automake conditionals The "avoid the requirement of a working compiler" we refer about below is obtained by disabling automatic dependency tracking and defining `CC' (and `EXEEXT', `OBJEXT', `CXX', etc., if needed) to dummy values, either directly in the `Makefile.am', or by AC_SUBST in `configure.in'. The "cosmetic changes" we refer about below consists in, e.g., adding a trailing `:' command to a script, using proper m4 quoting in `configure.in' files, adding commands that offer more debugging output, explicitly declaring phony targets as such in Makefiles, making use of idioms more consistent with those employed in other tests, following the GNU formatting standards more closely, etc. * tests/cond.test: Cosmetic changes. * tests/cond3.test: Likewise. * tests/cond10.test: Likewise. * tests/cond14.test: Likewise. * tests/cond15.test: Likewise. * tests/cond17.test: Likewise. * tests/cond40.test: Likewise. * tests/cond13.test: Likewise, and make grepping of the generated `Makefile.in' slightly stricter. * tests/cond6.test: Extend by also running ./configure, make and "make install". Few cosmetic changes. * tests/cond8.test: Likewise. * tests/cond2.test: Do few cosmetic changes. Make grepping of automake stderr stricter. * tests/cond20.test: Likewise. * tests/cond23.test: Likewise. * tests/cond24.test: Likewise. * tests/cond42.test: Likewise. * tests/cond46.test: Likewise. * tests/cond9.test: Move more checks in the `Makefile.am' instead of grepping make's output. * tests/cond38.test: Likewise. * tests/cond11.test: Likewise. Avoid the requirement of a working C compiler. * tests/cond16.test: Likewise. * tests/cond22.test: Likewise. * tests/cond30.test: Likewise. * tests/cond31.test: Likewise. * tests/cond4.test: Likewise, and drop the now-useless GNU make requirement as well. * tests/cond18.test: Likewise. * tests/cond19.test: Likewise. * tests/cond22.test: Likewise. * tests/cond25.test: Add trailing `:' command. * tests/cond26.test: Likewise. * tests/cond27.test: Likewise. * tests/cond28.test: Likewise. * tests/cond29.test: Use `unindent' function for better formatting. Other minor cosmetic changes. Use a `timeout' program (if it's available) to determine whether the script takes too long, instead of just hoping that the user will notice an abnormally long test execution time. * tests/cond33.test: Extend a bit. Fix heading comments. Few more cosmetic changes. * tests/cond37.test: Ensure verbose printing of captured make output. Minor cosmetic changes. * tests/cond34.test: Likewise. Avoid the requirement of a working C compiler. Make grepping of make output slightly stricter. * tests/cond35.test: Quote literal dots in grep regexp. Add extra debugging output. Minor cosmetic changes. * tests/cond36.test: Likewise. * tests/cond41.test: Do not simply check that aclocal fails, but also grep its stderr for the expected error message. * tests/cond43.test: Likewise (but the program being automake). Few cosmetic changes. * tests/condd.test: Avoid the requirement of a working C compiler. * tests/condman3.test: Extend by using more man pages and more manpage sections. * tests/condman.test: Removed, it's completely superseded by `condman3.test'. * tests/Makefile.am (TESTS): Update.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
#! /bin/sh
# Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2010, 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/>.
# Test sources listed in conditional.
# Report from Rob Savoye <rob@cygnus.com>, and Lars J. Aas.
. ./defs || Exit 1
cat >> configure.in << 'END'
AC_PROG_CC
AM_CONDITIONAL([ONE], [true])
AM_CONDITIONAL([TWO], [false])
AM_CONDITIONAL([THREE], [maybe])
AC_OUTPUT
END
cat > Makefile.am << 'END'
bin_PROGRAMS = targ
if ONE
SONE = one.c
else
SONE =
endif
if TWO
STWO = two.c
else
STWO =
endif
if THREE
STHREE = three.c
else
STHREE =
endif
targ_SOURCES = $(SONE) $(STWO) $(STHREE)
END
$ACLOCAL
$AUTOMAKE
# `b top' so that
sed -n '
/[oO][bB][jJ][eE][cC][tT].* =/ {
: loop
/\\$/ {
p
n
b loop
}
p
}' Makefile.in >produced
cat >expected << 'EOF'
@ONE_TRUE@am__objects_1 = one.$(OBJEXT)
@TWO_TRUE@am__objects_2 = two.$(OBJEXT)
@THREE_TRUE@am__objects_3 = three.$(OBJEXT)
am_targ_OBJECTS = $(am__objects_1) $(am__objects_2) $(am__objects_3)
targ_OBJECTS = $(am_targ_OBJECTS)
EOF
diff expected produced
: