automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SIMPLE PATCH] {maint} Extend tests on `--help' and `--version' opti


From: Stefano Lattarini
Subject: Re: [SIMPLE PATCH] {maint} Extend tests on `--help' and `--version' options.
Date: Sun, 26 Sep 2010 16:48:01 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

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 <address@hidden>
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  <address@hidden>
+
+       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  <address@hidden>
 
        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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]