[Top][All Lists]
[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