OK for maint? Regards, Stefano
-*-*-*- 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 | 15 ++++++++++++++ tests/Makefile.am | 3 ++ tests/Makefile.in | 3 ++ tests/help.test | 30 ++++++++++++++------------- tests/help2.test | 40 +++++++++++++++++++++++++++++++++++++ tests/help3.test | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/help4.test | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 189 insertions(+), 14 deletions(-) create mode 100755 tests/help2.test create mode 100755 tests/help3.test create mode 100755 tests/help4.test
From 15defdeb8a85480173601815854502129c71c43d 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 | 15 ++++++++++++++ tests/Makefile.am | 3 ++ tests/Makefile.in | 3 ++ tests/help.test | 30 ++++++++++++++------------- tests/help2.test | 40 +++++++++++++++++++++++++++++++++++++ tests/help3.test | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/help4.test | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 189 insertions(+), 14 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 b96918c..e12a848 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2010-09-25 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. + Testsuite: new variables `$PATH_SEPARATOR' and `$APIVERSION'. * tests/defs.in ($APIVERSION): New AC_SUBST'd variable. ($ACLOCAL, $AUTOMAKE): Use it. 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..f3fab2d 100755 --- a/tests/help.test +++ b/tests/help.test @@ -21,21 +21,23 @@ 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 +"$curdir/aclocal-$APIVERSION" --version +"$curdir/aclocal-$APIVERSION" --help +"$curdir/automake-$APIVERSION" --version +"$curdir/automake-$APIVERSION" --help # aclocal and automake cannot work without configure.ac or configure.in -$ACLOCAL 2>stderr && { cat stderr >&2; Exit 1; } +"$curdir/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 +"$curdir/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..d295dfb --- /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 + +"$curdir/automake-$APIVERSION" --version +"$curdir/automake-$APIVERSION" --help + +# aclocal and automake cannot work without configure.ac or configure.in +"$curdir/aclocal-$APIVERSION" 2>stderr && { cat stderr >&2; Exit 1; } +cat stderr >&2 +$FGREP configure.in stderr +"$curdir/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..f10d33d --- /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 on 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 fro 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 + +"$curdir/aclocal-$APIVERSION" --force --help --output=foo.m4 +test ! -r foo.m4 +"$curdir/aclocal-$APIVERSION" --output=foo.m4 --version --force +test ! -r foo.m4 +# Sanity check. +"$curdir/aclocal-$APIVERSION" --output=foo.m4 --force +test -f foo.m4 + +mv -f foo.m4 aclocal.m4 # automake will need aclocal.m4 + +"$curdir/automake-$APIVERSION" --add-missing --help --copy +test ! -r install-sh +"$curdir/automake-$APIVERSION" --copy --version --add-mising +test ! -r install-sh +# Sanity check. +"$curdir/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..842ace6 --- /dev/null +++ b/tests/help4.test @@ -0,0 +1,55 @@ +#! /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` + +"$curdir/aclocal-$APIVERSION" --version --help >stdout \ + || { cat stdout; Exit 1; } +cat stdout +grep "^aclocal.*$apiversion_rx" stdout +grep "^Usage" stdout && Exit 1 + +"$curdir/aclocal-$APIVERSION" --help --version >stdout \ + || { cat stdout; Exit 1; } +cat stdout +grep "^Usage" stdout +grep "^aclocal.*$apiversion_rx" stdout && Exit 1 + +"$curdir/automake-$APIVERSION" --version --help >stdout \ + || { cat stdout; Exit 1; } +cat stdout +grep "^automake.*$apiversion_rx" stdout +grep "^Usage" stdout && Exit 1 + +"$curdir/automake-$APIVERSION" --help --version >stdout \ + || { cat stdout; Exit 1; } +cat stdout +grep "^Usage" stdout +grep "^automake.*$apiversion_rx" stdout && Exit 1 + +: -- 1.7.1