[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell s
From: |
Stefano Lattarini |
Subject: |
[PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/' |
Date: |
Mon, 6 Jun 2011 21:46:00 +0200 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
* tests/ar-lib.test: If the variable `$test_prefer_config_shell'
is set to "yes", run the script under test with configure-time
determined $SHELL, rather than with /bin/sh.
The `$test_prefer_config_shell' variable defaults to empty, but
can be overridden at runtime by the user, thus allowing more
coverage.
* tests/compile.test: Likewise.
* tests/compile2.test: Likewise.
* tests/compile3.test: Likewise.
* tests/compile4.test: Likewise.
* tests/compile5.test: Likewise.
* tests/compile6.test: Likewise.
* tests/instsh2.test: Likewise.
* tests/instsh3.test: Likewise.
* tests/mkinst3.test: Likewise.
* tests/missing.test: Likewise.
* tests/missing2.test: Likewise.
* tests/missing3.test: Likewise.
* tests/missing5.test: Likewise.
* tests/defs (get_shell_script): New subroutine, factoring out
code common to the tests above.
(xsi-lib-shell): If `$am_prefer_config_shell' is set to "yes",
check that $SHELL, not /bin/sh, supports XSI constructs, as we
expect the test will use $SHELL and not /bin/sh to run the
script being tested.
---
ChangeLog | 29 +++++++++++++++++++++++++++++
tests/ar-lib.test | 2 +-
tests/compile.test | 2 +-
tests/compile2.test | 2 +-
tests/compile3.test | 2 +-
tests/compile4.test | 2 ++
tests/compile5.test | 2 +-
tests/compile6.test | 2 +-
tests/defs | 24 +++++++++++++++++++++++-
tests/instsh2.test | 3 +++
tests/instsh3.test | 2 ++
tests/missing.test | 2 ++
tests/missing2.test | 2 ++
tests/missing3.test | 2 ++
tests/missing5.test | 2 ++
tests/mkinst3.test | 2 +-
16 files changed, 74 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 35e18d0..2254d3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
2011-06-06 Stefano Lattarini <address@hidden>
+ tests: can use also $SHELL to check shell scripts from `lib/'
+ * tests/ar-lib.test: If the variable `$test_prefer_config_shell'
+ is set to "yes", run the script under test with configure-time
+ determined $SHELL, rather than with /bin/sh.
+ The `$test_prefer_config_shell' variable defaults to empty, but
+ can be overridden at runtime by the user, thus allowing more
+ coverage.
+ * tests/compile.test: Likewise.
+ * tests/compile2.test: Likewise.
+ * tests/compile3.test: Likewise.
+ * tests/compile4.test: Likewise.
+ * tests/compile5.test: Likewise.
+ * tests/compile6.test: Likewise.
+ * tests/instsh2.test: Likewise.
+ * tests/instsh3.test: Likewise.
+ * tests/mkinst3.test: Likewise.
+ * tests/missing.test: Likewise.
+ * tests/missing2.test: Likewise.
+ * tests/missing3.test: Likewise.
+ * tests/missing5.test: Likewise.
+ * tests/defs (get_shell_script): New subroutine, factoring out
+ code common to the tests above.
+ (xsi-lib-shell): If `$test_prefer_config_shell' is set to "yes",
+ check that $SHELL, not /bin/sh, supports XSI constructs, as we
+ expect the test will use $SHELL and not /bin/sh to run the
+ script being tested.
+
+2011-06-06 Stefano Lattarini <address@hidden>
+
tests defs: better requirements for XSI shells
This change avoids potential spurious failures with tests using
the requirement 'xsi-shell' to mean that they want */bin/sh* (not
diff --git a/tests/ar-lib.test b/tests/ar-lib.test
index 9936c0e..6f6625d 100755
--- a/tests/ar-lib.test
+++ b/tests/ar-lib.test
@@ -19,7 +19,7 @@
required=xsi-lib-shell
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/ar-lib" .
+get_shell_script ar-lib
# Use a dummy lib, since lib isn't readily available on all systems.
cat >lib <<'END'
diff --git a/tests/compile.test b/tests/compile.test
index 8427bad..0ba9ddf 100755
--- a/tests/compile.test
+++ b/tests/compile.test
@@ -18,7 +18,7 @@
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/compile" .
+get_shell_script compile
# -o 'a c' should not be stripped because 'a c' is not an object
# (it does not matter whether touch creates ./-- or not)
diff --git a/tests/compile2.test b/tests/compile2.test
index a466dc4..180fcc3 100755
--- a/tests/compile2.test
+++ b/tests/compile2.test
@@ -18,7 +18,7 @@
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/compile" .
+get_shell_script compile
cat >mycc <<'END'
source_seen=no
diff --git a/tests/compile3.test b/tests/compile3.test
index 61cde6b..b703f66 100755
--- a/tests/compile3.test
+++ b/tests/compile3.test
@@ -19,7 +19,7 @@
required=xsi-lib-shell
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/compile" .
+get_shell_script compile
# Use a dummy cl, since cl isn't readily available on all systems
cat >cl <<'END'
diff --git a/tests/compile4.test b/tests/compile4.test
index cf8d6cb..c7e8a0e 100755
--- a/tests/compile4.test
+++ b/tests/compile4.test
@@ -20,6 +20,8 @@
required='cl'
. ./defs || Exit 1
+get_shell_script compile
+
mkdir sub
cat >sub/foo.c <<'EOF'
diff --git a/tests/compile5.test b/tests/compile5.test
index cd8baee..2b4eeb0 100755
--- a/tests/compile5.test
+++ b/tests/compile5.test
@@ -19,7 +19,7 @@
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/compile" .
+get_shell_script compile
# Use a dummy cl, since cl isn't readily available on all systems
cat >cl <<'END'
diff --git a/tests/compile6.test b/tests/compile6.test
index ca1c671..fff1487 100755
--- a/tests/compile6.test
+++ b/tests/compile6.test
@@ -19,7 +19,7 @@
required=xsi-lib-shell
. ./defs || Exit 1
-cp "$top_testsrcdir/lib/compile" .
+get_shell_script compile
# Use a dummy cl, since cl isn't readily available on all systems
cat >cl <<'END'
diff --git a/tests/defs b/tests/defs
index 37b5baa..1d50b1d 100644
--- a/tests/defs
+++ b/tests/defs
@@ -283,6 +283,23 @@ unindent ()
}
sed_unindent_prog="" # Avoid interferences from the environment.
+# get_shell_script SCRIPT-NAME
+# -----------------------------
+# Fetch an Automake-provided test script from the `lib/' directory into
+# the current directory, and, if the `$test_prefer_config_shell' variable
+# is set to "yes", modify its shebang line to use $SHELL instead of
+# /bin/sh.
+get_shell_script ()
+{
+ if test x"$test_prefer_config_shell" = x"yes"; then
+ sed "1s|#!.*|#! $SHELL|" "$top_testsrcdir/lib/$1" > "$1"
+ chmod a+x "$1"
+ else
+ cp "$top_testsrcdir/lib/$1" .
+ fi
+ sed 10q "$1" # For debugging.
+}
+
# require_xsi SHELL
# -----------------
# Skip the test is the given shell fails to support common XSI constructs.
@@ -337,7 +354,12 @@ do
xsi-bin-sh)
require_xsi "/bin/sh";;
xsi-lib-shell)
- require_xsi "/bin/sh";;
+ if test x"$test_prefer_config_shell" = x"yes"; then
+ require_xsi "$SHELL"
+ else
+ require_xsi "/bin/sh"
+ fi
+ ;;
bzip2)
# Do not use --version, bzip2 still tries to compress stdin.
echo "$me: running bzip2 --help"
diff --git a/tests/instsh2.test b/tests/instsh2.test
index 2019b35..f86c414 100755
--- a/tests/instsh2.test
+++ b/tests/instsh2.test
@@ -18,6 +18,9 @@
# Various install-sh checks
. ./defs || Exit 1
+
+get_shell_script install-sh
+
# Basic errors
./install-sh && Exit 1
./install-sh -m 644 dest && Exit 1
diff --git a/tests/instsh3.test b/tests/instsh3.test
index da50419..2cdf4a9 100755
--- a/tests/instsh3.test
+++ b/tests/instsh3.test
@@ -23,6 +23,8 @@ required=non-root
touch -t $old_timestamp foo \
|| skip_ "touch utility doesn't accept '-t' option"
+get_shell_script install-sh
+
./install-sh -d d1
# Do not change the timestamps when using -C.
diff --git a/tests/missing.test b/tests/missing.test
index 2e6d8d3..8e080eb 100755
--- a/tests/missing.test
+++ b/tests/missing.test
@@ -25,6 +25,8 @@ EOF
: > Makefile.am
+get_shell_script missing
+
$ACLOCAL
$AUTOCONF
$AUTOMAKE --add-missing
diff --git a/tests/missing2.test b/tests/missing2.test
index 88e6b27..9844958 100755
--- a/tests/missing2.test
+++ b/tests/missing2.test
@@ -28,6 +28,8 @@ EOF
: > Makefile.am
+get_shell_script missing
+
$ACLOCAL
$AUTOCONF
$AUTOMAKE --add-missing
diff --git a/tests/missing3.test b/tests/missing3.test
index 21b5e4f..328212c 100755
--- a/tests/missing3.test
+++ b/tests/missing3.test
@@ -18,6 +18,8 @@
. ./defs || Exit 1
+get_shell_script missing
+
# b7cb8259 assumed not to exist.
./missing b7cb8259 --version 2>stderr && { cat stderr >&2; Exit 1; }
diff --git a/tests/missing5.test b/tests/missing5.test
index 010b344..b618bd1 100755
--- a/tests/missing5.test
+++ b/tests/missing5.test
@@ -19,6 +19,8 @@
. ./defs || Exit 1
+get_shell_script missing
+
# these programs may be invoked by `missing'
needed_tools='chmod find sed test touch'
needed_tools_csep=`echo $needed_tools | sed 's/ /, /g'`
diff --git a/tests/mkinst3.test b/tests/mkinst3.test
index 0082b53..3572ab2 100755
--- a/tests/mkinst3.test
+++ b/tests/mkinst3.test
@@ -23,7 +23,7 @@ mkdir '~a b' && mkdir '~a b/-x y' \
|| skip_ "directory names with spaces and metacharacters not accepted"
rm -rf '~a b'
-cp "$top_testsrcdir/lib/mkinstalldirs" .
+get_shell_script mkinstalldirs
# Test mkinstalldirs with the installed mkdir.
--
1.7.2.3
- [PATCH 0/3] {testsuite-work} Test automake-provided shell scripts (those in `lib/') also with $SHELL, not only with /bin/sh, Stefano Lattarini, 2011/06/06
- [PATCH 1/3] {testsuite-work} tests defs: better requirements for XSI shells, Stefano Lattarini, 2011/06/06
- [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/',
Stefano Lattarini <=
- [PATCH 1/3] {testsuite-work} tests defs: better requirements for XSI shells, Stefano Lattarini, 2011/06/06
- [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/', Stefano Lattarini, 2011/06/06
- Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/', Peter Rosin, 2011/06/07
- Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/', Stefano Lattarini, 2011/06/07
- Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/', Peter Rosin, 2011/06/07
- Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/', Stefano Lattarini, 2011/06/07
- [PATCH] {testsuite-work} tests: new test dedicated to `--add-missing' and `--copy' (was: Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/'), Stefano Lattarini, 2011/06/07
- Re: [PATCH] {testsuite-work} tests: new test dedicated to `--add-missing' and `--copy' (was: Re: [PATCH 2/3] {testsuite-work} tests: can use also $SHELL to check shell scripts from `lib/'), Stefano Lattarini, 2011/06/08