diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2010-06-19 14:55:10 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2010-07-26 19:22:10 +0200 |
commit | ee9fe91c5b01466e9e60757dd1fa673675ec6809 (patch) | |
tree | ba92de4db0cc2fe9350fdd563620032512f319d9 | |
parent | 4deaab9eaef915d4bef78e27e8e2d64d4629d01a (diff) | |
download | automake-ee9fe91c5b01466e9e60757dd1fa673675ec6809.tar.gz |
Modernize and improve test scripts `subdir*.test'.
* tests/subdir.test: Enable `errexit' shell flag, and related
changes. Use the `configure.in' stub created by `./defs',
rather than writing one from scratch.
* tests/subdir2.test: Likewise.
* tests/subdir4.test: Likewise.
* tests/subdir3.test: Enable `errexit' shell flag, and related
changes. Do not create useless dummy source files.
* tests/subdir5.test: Make grepping of Makefile.in (in topdir
and in subdirs) stricter. Some minor changes to keep it more
in sync with the related test `subdir8.test'.
* tests/subdir8.test: Likewise (but with the related test being
`subdir5.test' here).
* tests/subdir6.test: Cosmetic change in spacing.
* tests/subdir9.test: Define and use new variable `$distdir'. Add
trailing `:' command.
* tests/subdir10.test: Cosmetic consistency-related change.
* tests/subdirbuiltsources.test: Cosmetic changes in spacings.
(configure.in): Use stub created by `./defs', rather than writing
it from scratch. Do not use obsoleted and/or deprecated forms of
autoconf/automake macros.
-rw-r--r-- | ChangeLog | 22 | ||||
-rwxr-xr-x | tests/subdir.test | 16 | ||||
-rwxr-xr-x | tests/subdir10.test | 4 | ||||
-rwxr-xr-x | tests/subdir2.test | 16 | ||||
-rwxr-xr-x | tests/subdir3.test | 15 | ||||
-rwxr-xr-x | tests/subdir4.test | 17 | ||||
-rwxr-xr-x | tests/subdir5.test | 51 | ||||
-rwxr-xr-x | tests/subdir6.test | 3 | ||||
-rwxr-xr-x | tests/subdir7.test | 10 | ||||
-rwxr-xr-x | tests/subdir8.test | 37 | ||||
-rwxr-xr-x | tests/subdir9.test | 10 | ||||
-rwxr-xr-x | tests/subdirbuiltsources.test | 13 |
12 files changed, 135 insertions, 79 deletions
@@ -1,5 +1,27 @@ 2010-07-21 Stefano Lattarini <stefano.lattarini@gmail.com> + Modernize and improve test scripts `subdir*.test'. + * tests/subdir.test: Enable `errexit' shell flag, and related + changes. Use the `configure.in' stub created by `./defs', + rather than writing one from scratch. + * tests/subdir2.test: Likewise. + * tests/subdir4.test: Likewise. + * tests/subdir3.test: Enable `errexit' shell flag, and related + changes. Do not create useless dummy source files. + * tests/subdir5.test: Make grepping of Makefile.in (in topdir + and in subdirs) stricter. Some minor changes to keep it more + in sync with the related test `subdir8.test'. + * tests/subdir8.test: Likewise (but with the related test being + `subdir5.test' here). + * tests/subdir6.test: Cosmetic change in spacing. + * tests/subdir9.test: Define and use new variable `$distdir'. Add + trailing `:' command. + * tests/subdir10.test: Cosmetic consistency-related change. + * tests/subdirbuiltsources.test: Cosmetic changes in spacings. + (configure.in): Use stub created by `./defs', rather than writing + it from scratch. Do not use obsoleted and/or deprecated forms of + autoconf/automake macros. + Modernize and improve test scripts `dist*.test'. * tests/distcleancheck.test: Do not add useless `-e' option to a $MAKE call. Extend test by grepping stderr of make. diff --git a/tests/subdir.test b/tests/subdir.test index 85db05985..edad4ca8e 100755 --- a/tests/subdir.test +++ b/tests/subdir.test @@ -1,5 +1,6 @@ #! /bin/sh -# Copyright (C) 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 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 @@ -19,12 +20,13 @@ . ./defs || Exit 1 +set -e + mkdir zot -cat > configure.in << 'END' -AC_INIT -AM_INIT_AUTOMAKE(nonesuch, nonesuch) -AC_OUTPUT(Makefile zot/Makefile) +cat >> configure.in << 'END' +AC_CONFIG_FILES([zot/Makefile]) +AC_OUTPUT END cat > Makefile.am << 'END' @@ -35,5 +37,7 @@ cat > zot/Makefile.am << 'END' pkgdata_DATA = END -$ACLOCAL || Exit 1 +$ACLOCAL $AUTOMAKE + +: diff --git a/tests/subdir10.test b/tests/subdir10.test index c71216bf5..eabd1a9cd 100755 --- a/tests/subdir10.test +++ b/tests/subdir10.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 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 @@ -36,4 +36,4 @@ $AUTOMAKE ./configure env fail=1 $MAKE all clean -Exit 0 +: diff --git a/tests/subdir2.test b/tests/subdir2.test index aa8343610..941205420 100755 --- a/tests/subdir2.test +++ b/tests/subdir2.test @@ -1,5 +1,6 @@ #! /bin/sh -# Copyright (C) 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 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 @@ -18,13 +19,14 @@ . ./defs || Exit 1 +set -e + mkdir one mkdir one/two -cat > configure.in << 'END' -AC_INIT -AM_INIT_AUTOMAKE(nonesuch, nonesuch) -AC_OUTPUT(Makefile one/Makefile one/two/Makefile) +cat >> configure.in << 'END' +AC_CONFIG_FILES([one/Makefile one/two/Makefile]) +AC_OUTPUT END # Files required because we are using `--gnu'. @@ -47,5 +49,7 @@ cat > one/two/Makefile.am << 'END' pkgdata_DATA = END -$ACLOCAL || Exit 1 +$ACLOCAL $AUTOMAKE --gnu + +: diff --git a/tests/subdir3.test b/tests/subdir3.test index aa02be033..3da2cc8dd 100755 --- a/tests/subdir3.test +++ b/tests/subdir3.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1999, 2001, 2002, 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 @@ -18,6 +18,8 @@ . ./defs || Exit 1 +set -e + cat > Makefile.am << 'END' bin_PROGRAMS = zardoz widdershins zardoz_SOURCES = y.c x/z.c @@ -28,12 +30,9 @@ cat >> configure.in << 'END' AC_PROG_CC END -mkdir x - -: > y.c -: > x/z.c - -$ACLOCAL || Exit 1 -$AUTOMAKE || Exit 1 +$ACLOCAL +$AUTOMAKE grep '^z\.o: x/z\.c$' Makefile.in + +: diff --git a/tests/subdir4.test b/tests/subdir4.test index 2f85213e2..7ea10f894 100755 --- a/tests/subdir4.test +++ b/tests/subdir4.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 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 @@ -19,14 +19,15 @@ . ./defs || Exit 1 +set -e + mkdir lib src -cat > configure.in << 'END' -AC_INIT -AM_INIT_AUTOMAKE(nonesuch, nonesuch) +cat >> configure.in << 'END' AC_PROG_RANLIB AC_PROG_CC -AC_OUTPUT(Makefile lib/Makefile src/Makefile) +AC_CONFIG_FILES([lib/Makefile src/Makefile]) +AC_OUTPUT END # Files required because we are using `--gnu'. @@ -55,8 +56,8 @@ cat > src/Makefile.am << 'END' pkgdata_DATA = END -$ACLOCAL || Exit 1 -$AUTOMAKE --gnu || Exit 1 +$ACLOCAL +$AUTOMAKE --gnu # Make sure that depcomp is *not* included in the definition # of DIST_COMMON in lib/Makefile.in. If you change this test @@ -65,4 +66,4 @@ $AUTOMAKE --gnu || Exit 1 # continued line. grep '^DIST_COMMON.*depcomp' lib/Makefile.in && Exit 1 -Exit 0 +: diff --git a/tests/subdir5.test b/tests/subdir5.test index 2f0113b6f..6eb3aaa2b 100755 --- a/tests/subdir5.test +++ b/tests/subdir5.test @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001, 2002, 2003, 2004, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 2001, 2002, 2003, 2004, 2009, 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 @@ -22,16 +22,15 @@ # This test assumes that the `make' utility is able to start # over and reload Makefiles which have been remade (a non-POSIX feature). +# See also the related test subdir8.test. required='GNUmake gcc' . ./defs || Exit 1 set -e -cat > configure.in << 'END' -AC_INIT(maude, 1.0) -AM_INIT_AUTOMAKE +cat >> configure.in << 'END' +AC_PROG_CC AM_PROG_CC_C_O -AC_CONFIG_FILES(Makefile) AC_OUTPUT END @@ -55,26 +54,30 @@ $AUTOMAKE --include-deps --copy --add-missing ./configure $MAKE +# Now add new directories. +# # We shouldn't need to $sleep here: configure ensures that files # generated by it are newer than configure. Thus, even if # Makefile.in is newer than configure but the updated Makefile.am # below has the same timestamp as Makefile.in, the latter should # be rebuilt due to its dependency on configure.in. -# Now add a new directory. -cat > configure.in << 'END' -AC_INIT(maude, 1.0) -AM_INIT_AUTOMAKE -AC_PROG_CC -AM_PROG_CC_C_O -AC_CONFIG_FILES(Makefile maude/Makefile) -m4_include([confile.m4]) -AC_OUTPUT -END +# First we add a new directory by modifying configure.in directly. +# We update configure.in *before* updating sub/Makefile.am; subdir8.test +# does it in the other way: it updates confiles.m4 (which is m4_included +# by configure.in there) after Makefile.am. + +sed <configure.in >configure.tmp -e '/^AC_OUTPUT$/i\ +AC_CONFIG_FILES([maude/Makefile])\ +m4_include([confile.m4])' +mv -f configure.tmp configure.in + +cat configure.in # might be useful for debugging : > confile.m4 mkdir maude + cat > maude/Makefile.am << 'END' include_HEADERS = foo.h END @@ -87,15 +90,21 @@ echo 'SUBDIRS = maude' >> Makefile.am $MAKE test -f maude/Makefile -# Add yet another directory +# Then we add a new directory by modifying a file included (through +# `m4_include') by configure.in. mkdir maude2 -echo 'AC_CONFIG_FILES([maude2/Makefile])AC_SUBST([GREPME])' > confile.m4 +cat >> confile.m4 << 'END' +AC_CONFIG_FILES([maude2/Makefile]) +AC_SUBST([GREPME]) +END : > maude2/Makefile.am echo 'SUBDIRS += maude2' >> Makefile.am # We want a simple rebuild to create maude2/Makefile and update # all other Makefiles automatically. $MAKE -grep GREPME Makefile -grep GREPME maude/Makefile -grep GREPME maude2/Makefile +grep '^GREPME =' Makefile +grep '^GREPME =' maude/Makefile +grep '^GREPME =' maude2/Makefile + +: diff --git a/tests/subdir6.test b/tests/subdir6.test index 81221ff72..f3a210793 100755 --- a/tests/subdir6.test +++ b/tests/subdir6.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2002 Free Software Foundation, Inc. +# Copyright (C) 2002, 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 @@ -38,4 +38,5 @@ $MAKE clean test -f sub/stamp-h1 $MAKE distclean test -f sub/stamp-h1 && Exit 1 + : diff --git a/tests/subdir7.test b/tests/subdir7.test index e72f489c6..b50b2506e 100755 --- a/tests/subdir7.test +++ b/tests/subdir7.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 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 @@ -23,7 +23,7 @@ set -e mkdir obj cat >>configure.in << 'END' -AC_CONFIG_FILES(obj/Makefile) +AC_CONFIG_FILES([obj/Makefile]) AC_OUTPUT END @@ -35,11 +35,13 @@ $ACLOCAL AUTOMAKE_fails grep 'Makefile.am:1:.*obj.*BSD' stderr -cat >Makefile.am <<'EOF' +cat >Makefile.am <<'END' SUBDIRS = @STH@ FOO = obj DIST_SUBDIRS = $(FOO) -EOF +END AUTOMAKE_fails grep 'Makefile.am:2:.*obj.*BSD' stderr + +: diff --git a/tests/subdir8.test b/tests/subdir8.test index bc3043e09..093fac8e8 100755 --- a/tests/subdir8.test +++ b/tests/subdir8.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2003, 2004, 2009 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2009, 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 @@ -21,13 +21,12 @@ # This test assumes that the `make' utility is able to start # over and reload Makefiles which have been remade (a non-POSIX feature). +# See also the related test subdir5.test. required='GNUmake gcc' . ./defs || Exit 1 set -e -echo 'AC_CONFIG_FILES([sub/Makefile])' >confiles.m4 - cat >> configure.in << 'END' AC_PROG_CC AM_PROG_CC_C_O @@ -36,6 +35,8 @@ MORE_DEFS AC_OUTPUT END +echo 'AC_CONFIG_FILES([sub/Makefile])' > confiles.m4 + cat > Makefile.am << 'END' SUBDIRS = sub ACLOCAL_AMFLAGS = -I m4 @@ -66,8 +67,18 @@ $AUTOMAKE --copy --add-missing ./configure $MAKE -# Now add a new directory. -# See subdir5.test for why we shouldn't need to $sleep here. +# Now add new directories. +# +# We shouldn't need to $sleep here: configure ensures that files +# generated by it are newer than configure. Thus, even if +# Makefile.in is newer than configure but the updated Makefile.am +# below has the same timestamp as Makefile.in, the latter should +# be rebuilt due to its dependency on configure.in. + +# The first step users typically do when adding a new subdir is +# editing configure.in. That is already tested by subdir5.test, +# though, so here we try to just edit a file that is included by +# configure.in, without touching configure.in itself. mkdir sub/maude cat > sub/maude/Makefile.am << 'END' @@ -81,9 +92,8 @@ echo 'SUBDIRS = maude' >> sub/Makefile.am mkdir maude : > maude/Makefile.am -# Update confile.m4 *after* updating sub/Makefile.am. -# (subdir5.test do it in the other way: it updates configure.in -# before Makefile.am) +# Update confiles.m4 *after* updating sub/Makefile.am; subdir5.test do +# it in the other way: it updates configure.in before Makefile.am. echo 'AC_CONFIG_FILES([maude/Makefile sub/maude/Makefile])' >> confiles.m4 # We want a simple rebuild from sub/ to create sub/maude/Makefile @@ -98,7 +108,10 @@ test -f sub/maude/Makefile # the top-level directory. echo 'AC_DEFUN([MORE_DEFS], [AC_SUBST([GREPME])])' > m4/moredefs.m4 $MAKE -grep GREPME Makefile -grep GREPME maude/Makefile -grep GREPME sub/Makefile -grep GREPME sub/maude/Makefile + +grep '^GREPME =' Makefile +grep '^GREPME =' maude/Makefile +grep '^GREPME =' sub/Makefile +grep '^GREPME =' sub/maude/Makefile + +: diff --git a/tests/subdir9.test b/tests/subdir9.test index 434632639..c73ca1823 100755 --- a/tests/subdir9.test +++ b/tests/subdir9.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2004 Free Software Foundation, Inc. +# Copyright (C) 2004, 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 @@ -43,13 +43,17 @@ cat >src/subdir2/Makefile.am <<'EOF' EXTRA_DIST = foo EOF +distdir=$me-1.0 + $ACLOCAL $AUTOCONF $AUTOMAKE --copy --add-missing ./configure $MAKE distdir -test -f subdir9-1.0/src/subdir/foo -test -f subdir9-1.0/src/subdir2/foo +test -f $distdir/src/subdir/foo +test -f $distdir/src/subdir2/foo $MAKE clean $MAKE distclean test ! -f src/subdir2/Makefile + +: diff --git a/tests/subdirbuiltsources.test b/tests/subdirbuiltsources.test index 8fe506aac..a84f28e9c 100755 --- a/tests/subdirbuiltsources.test +++ b/tests/subdirbuiltsources.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 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 @@ -24,12 +24,11 @@ set -e mkdir lib -cat > configure.in << 'END' -AC_INIT -AM_INIT_AUTOMAKE(nonesuch, nonesuch) +cat >> configure.in << 'END' +AC_CONFIG_FILES([lib/Makefile]) AC_PROG_RANLIB AC_PROG_CC -AC_OUTPUT(Makefile lib/Makefile) +AC_OUTPUT END # Files required because we are using `--gnu'. @@ -60,9 +59,7 @@ END $ACLOCAL - $AUTOCONF - $AUTOMAKE --include-deps --copy --force-missing --add-missing --gnu ./configure @@ -71,4 +68,4 @@ $AUTOMAKE --include-deps --copy --force-missing --add-missing --gnu # $MAKE -C lib foo.h $MAKE -Exit 0 +: |