summaryrefslogtreecommitdiff
path: root/t/wrap
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-08-04 16:54:30 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-08-04 17:45:02 +0200
commit65dadf65814d7dd395d5cc35903f624b464091c6 (patch)
tree6c66dd0acd2079ea1e93e5a3a951606325f49c30 /t/wrap
parent6d6c831d9cec0549434f0f0c15437b810b877d10 (diff)
downloadautomake-65dadf65814d7dd395d5cc35903f624b464091c6.tar.gz
tests: work around a ksh bug w.r.t. ${1+"$@"}
Fixes automake bug#10898. See also the older (much older) thread: <http://lists.gnu.org/archive/html/automake-patches/2009-12/msg00036.html> At least the AT&T and OpenSolaris versions of the Korn shell, as well as the /bin/sh from OpenIndiana 11, have a strange bug regarding the expansion of ${1+"$@"}: when exactly *one empty* argument is passed to a script run by one of this shells, inside that script ${1+"$@"} will expand to *nothing*, rather than to to the single empty string, as one would expect (OTOH, $# will correctly expand to 1). This buggy behaviour was causing a spurious failure in our testsuite (test 6 in 't/automake-cmdline.tap'). Work around it. * t/wrap/automake.in: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/wrap')
-rw-r--r--t/wrap/automake.in8
1 files changed, 7 insertions, 1 deletions
diff --git a/t/wrap/automake.in b/t/wrap/automake.in
index 14f437f1e..b77177cec 100644
--- a/t/wrap/automake.in
+++ b/t/wrap/automake.in
@@ -27,4 +27,10 @@ fi
perllibdir="@abs_top_builddir@/lib@PATH_SEPARATOR@@abs_top_srcdir@/lib"
export perllibdir
-exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib" ${1+"$@"}
+# Don't trust ${1+"$@"}: it has subtle bugs in some Korn shells (for very
+# corner case only admittedly, but those have already bitten us -- see
+# automake bug#10898).
+case $# in
+ 0) exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib";;
+ *) exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib" "$@";;
+esac