summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-08-04 18:36:24 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-08-04 18:36:24 +0200
commit96afe638f09cd5fc32659883952b89f2d7e2a315 (patch)
tree71158fe7325be9c4c785aa515a0203f55a7c1dd7
parent65dadf65814d7dd395d5cc35903f624b464091c6 (diff)
downloadautomake-96afe638f09cd5fc32659883952b89f2d7e2a315.tar.gz
tests: reimplement wrappers for automake and aclocal in perl
This will allow us to avoid one extra shell invocation per automake and aclocal invocation in our testsuite, and, more importantly, will allow us not to worry about potential shell portability issues, at least in those wrappers. For an example of such a portability issue, refer to the recent commit v1.12.2-80-g65dadf6 "tests: work around a ksh bug w.r.t. ${1+"$@"}". * t/wrap/automake.in, t/wrap/aclocal.in: Rewritten in perl. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rw-r--r--t/wrap/aclocal.in29
-rw-r--r--t/wrap/automake.in31
2 files changed, 26 insertions, 34 deletions
diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in
index 18ee13a82..a3defa930 100644
--- a/t/wrap/aclocal.in
+++ b/t/wrap/aclocal.in
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!@PERL@ -w
# @configure_input@
# Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,17 +16,16 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/lib@PATH_SEPARATOR@@abs_top_srcdir@/lib"
-export perllibdir
-
-exec "@abs_top_builddir@/aclocal" "--automake-acdir=@abs_top_srcdir@/m4" \
- "--system-acdir=@abs_top_srcdir@/m4/acdir" ${1+"$@"}
+BEGIN
+{
+ use strict;
+ my $libdir;
+ $libdir = '@abs_top_srcdir@/lib';
+ $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+ if '@srcdir@' ne '.';
+ $ENV{perllibdir} = $libdir;
+ unshift @ARGV,
+ '--automake-acdir=@abs_top_srcdir@/m4',
+ '--system-acdir=@abs_top_srcdir@/m4/acdir';
+}
+require '@abs_top_builddir@/aclocal';
diff --git a/t/wrap/automake.in b/t/wrap/automake.in
index b77177cec..841736049 100644
--- a/t/wrap/automake.in
+++ b/t/wrap/automake.in
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!@PERL@ -w
# @configure_input@
# Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,21 +16,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/lib@PATH_SEPARATOR@@abs_top_srcdir@/lib"
-export perllibdir
-# 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
+BEGIN
+{
+ use strict;
+ my $libdir;
+ $libdir = '@abs_top_srcdir@/lib';
+ $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+ if '@srcdir@' ne '.';
+ $ENV{perllibdir} = $libdir;
+ unshift @ARGV, '--libdir=@abs_top_srcdir@/lib';
+}
+require '@abs_top_builddir@/automake';