From a82bc0d5cfea18fc96476c23a4fb2d458af09c89 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini 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 6855f9af2..b4d489043 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2010-09-26 Stefano Lattarini + + 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 Testsuite: Use `$PATH_SEPARATOR', not `:', when extending PATH. diff --git a/tests/Makefile.am b/tests/Makefile.am index ba695f595..6c6f24faf 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 9ea9d749f..43d803e4a 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 e9ccf62ce..ddeb92faa 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 000000000..014f1871c --- /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 . + +# 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 000000000..8e9e76fec --- /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 . + +# 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 < Makefile.am <. + +# 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 + +: -- 2.47.2