Attached is what I pushed. I also merged to master and branch-1.11. Regards, Stefano
From a82bc0d5cfea18fc96476c23a4fb2d458af09c89 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sat, 25 Sep 2010 17:07:27 +0200 Subject: [PATCH] Extend tests on `--help' and `--version' options.
* tests/help.test: Create a new empty directory and chdir into it, rather than removing already present files. Run the aclocal and automake wrapper scripts directly, instead of relying on $AUTOMAKE and $ACLOCAL. Be sure to correctly match literal dots in aclocal's and automake's stderr. Add a trailing `:' command. * tests/help2.test: New test, checking that options `--help' and `--version' works in directories with broken `configure.in'. * tests/help3.test: New test, checking that options `--help' and `--version' take precedence on the other options. * tests/help4.test: New test, checking that the first among the `--help' and `--version' options to be specified on the command line wins. * tests/Makefile.am (TESTS): Updated. --- ChangeLog | 17 +++++++++++++++ tests/Makefile.am | 3 ++ tests/Makefile.in | 3 ++ tests/help.test | 33 ++++++++++++++++-------------- tests/help2.test | 40 +++++++++++++++++++++++++++++++++++++ tests/help3.test | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/help4.test | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 189 insertions(+), 15 deletions(-) create mode 100755 tests/help2.test create mode 100755 tests/help3.test create mode 100755 tests/help4.test diff --git a/ChangeLog b/ChangeLog index 6855f9a..b4d4890 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2010-09-26 Stefano Lattarini <stefano.lattar...@gmail.com> + + Extend tests on `--help' and `--version' options. + * tests/help.test: Create a new empty directory and chdir into + it, rather than removing already present files. Run the aclocal + and automake wrapper scripts directly, instead of relying on + $AUTOMAKE and $ACLOCAL. Be sure to correctly match literal dots + in aclocal's and automake's stderr. Add a trailing `:' command. + * tests/help2.test: New test, checking that options `--help' and + `--version' works in directories with broken `configure.in'. + * tests/help3.test: New test, checking that options `--help' and + `--version' take precedence on the other options. + * tests/help4.test: New test, checking that the first among the + `--help' and `--version' options to be specified on the command + line wins. + * tests/Makefile.am (TESTS): Updated. + 2010-09-25 Stefano Lattarini <stefano.lattar...@gmail.com> Testsuite: Use `$PATH_SEPARATOR', not `:', when extending PATH. diff --git a/tests/Makefile.am b/tests/Makefile.am index ba695f5..6c6f24f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -348,6 +348,9 @@ gnits2.test \ gnits3.test \ header.test \ help.test \ +help2.test \ +help3.test \ +help4.test \ help-depend.test \ help-depend2.test \ help-dmalloc.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 9ea9d74..43d803e 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -586,6 +586,9 @@ gnits2.test \ gnits3.test \ header.test \ help.test \ +help2.test \ +help3.test \ +help4.test \ help-depend.test \ help-depend2.test \ help-dmalloc.test \ diff --git a/tests/help.test b/tests/help.test index e9ccf62..ddeb92f 100755 --- a/tests/help.test +++ b/tests/help.test @@ -21,21 +21,24 @@ set -e -# Ensure we are run from the right directory. -# (The last thing we want is to delete some random user files.) -test -f ../defs -rm -f * +# Ensure we run in an empty directory. +mkdir emptydir +cd emptydir -$ACLOCAL --version -$ACLOCAL --help -$AUTOMAKE --version -$AUTOMAKE --help +aclocal-$APIVERSION --version +aclocal-$APIVERSION --help +automake-$APIVERSION --version +automake-$APIVERSION --help -# aclocal and automake cannot work without configure.ac or configure.in -$ACLOCAL 2>stderr && { cat stderr >&2; Exit 1; } +# Sanity checks: aclocal and automake cannot work without configure.ac +# or configure.in. +aclocal-$APIVERSION 2>stderr && { cat stderr >&2; Exit 1; } cat stderr >&2 -grep configure.ac stderr -grep configure.in stderr -AUTOMAKE_fails -grep configure.ac stderr -grep configure.in stderr +$FGREP configure.ac stderr +$FGREP configure.in stderr +automake-$APIVERSION 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 +$FGREP configure.ac stderr +$FGREP configure.in stderr + +: diff --git a/tests/help2.test b/tests/help2.test new file mode 100755 index 0000000..014f187 --- /dev/null +++ b/tests/help2.test @@ -0,0 +1,40 @@ +#! /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 <http://www.gnu.org/licenses/>. + +# Make sure --help and --version work, even when the current directory +# contains a broken configure.in. +. ./defs || Exit 1 + +set -e + +# Ensure we run in a new, clean directory. +mkdir cleandir +cd cleandir + +echo '[' > configure.in + +automake-$APIVERSION --version +automake-$APIVERSION --help + +# aclocal and automake cannot work without configure.ac or configure.in +aclocal-$APIVERSION 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 +$FGREP configure.in stderr +automake-$APIVERSION 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 +$FGREP configure.in stderr + +: diff --git a/tests/help3.test b/tests/help3.test new file mode 100755 index 0000000..8e9e76f --- /dev/null +++ b/tests/help3.test @@ -0,0 +1,57 @@ +#! /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 <http://www.gnu.org/licenses/>. + +# Make sure --help and --version takes precedence over other options. + +. ./defs || Exit 1 + +set -e + +# We must have full control over the content of the current directory. +mkdir cleandir +cd cleandir + +cat > configure.in <<END +AC_INIT([$me], [1.0]) +AC_CONFIG_AUX_DIR([.]) dnl prevent automake from looking into '..' +AM_INIT_AUTOMAKE([foreign]) +AC_CONFIG_FILES([Makefile]) +END + +cat > Makefile.am <<END +## so that install-sh will be required +pkgdata_DATA = +END + +aclocal-$APIVERSION --force --help --output=foo.m4 +test ! -r foo.m4 +aclocal-$APIVERSION --output=foo.m4 --version --force +test ! -r foo.m4 +# Sanity check. +aclocal-$APIVERSION --output=foo.m4 --force +test -f foo.m4 + +mv -f foo.m4 aclocal.m4 # automake will need aclocal.m4 + +automake-$APIVERSION --add-missing --help --copy +test ! -r install-sh +automake-$APIVERSION --copy --version --add-mising +test ! -r install-sh +# Sanity check. +automake-$APIVERSION --add-missing --copy +test -f install-sh + +: diff --git a/tests/help4.test b/tests/help4.test new file mode 100755 index 0000000..906e508 --- /dev/null +++ b/tests/help4.test @@ -0,0 +1,51 @@ +#! /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 <http://www.gnu.org/licenses/>. + +# Make sure --help and --version work, even when no configure.ac +# is in the current directory. + +. ./defs || Exit 1 + +set -e + +# Ensure we run in an empty directory. +mkdir emptydir +cd emptydir + +escape_dots () { sed 's/\./\\./g'; } # avoid issues with `\' in backquotes +apiversion_rx=`echo "$APIVERSION" | escape_dots` + +aclocal-$APIVERSION --version --help >stdout || { cat stdout; Exit 1; } +cat stdout +grep "^aclocal.*$apiversion_rx" stdout +grep "^Usage" stdout && Exit 1 + +aclocal-$APIVERSION --help --version >stdout || { cat stdout; Exit 1; } +cat stdout +grep "^Usage" stdout +grep "^aclocal.*$apiversion_rx" stdout && Exit 1 + +automake-$APIVERSION --version --help >stdout || { cat stdout; Exit 1; } +cat stdout +grep "^automake.*$apiversion_rx" stdout +grep "^Usage" stdout && Exit 1 + +automake-$APIVERSION --help --version >stdout || { cat stdout; Exit 1; } +cat stdout +grep "^Usage" stdout +grep "^automake.*$apiversion_rx" stdout && Exit 1 + +: -- 1.7.1