Subject: bug#16380: Failing tests on Solaris in 2.16

From: Paul Eggert <[email-masked]>
Date: Tue, 07 Jan 2014 11:02:17 -0800

On 01/07/2014 10:53 AM, Jim Meyering wrote:
> the sourced init.sh code works around it...
> usually. 

Usually, but not here.  I fixed the problem this way;
tested on Solaris 10.

>From e965a293cf7816ee1deb6d2a1c6fe3690b2a37c1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Tue, 7 Jan 2014 10:59:07 -0800
Subject: [PATCH] Port to Solaris 10 /bin/sh.

Problem reported by Dagobert Michelsen in <http://bugs.gnu.org/16380>.
* tests/bre, tests/ere, tests/spencer1-locale:
Prefer re_shell_ to SHELL, if re_shell_ is set.
* tests/init.sh (re_shell_): Export if it's used.
---
 tests/bre             | 2 +-
 tests/ere             | 2 +-
 tests/init.sh         | 1 +
 tests/spencer1-locale | 2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/bre b/tests/bre
index 817957f..4a00af4 100755
--- a/tests/bre
+++ b/tests/bre
@@ -16,6 +16,6 @@ fail=0
 ${AWK-awk} -f $abs_top_srcdir/tests/bre.awk $abs_top_srcdir/tests/bre.tests \
     > bre.script || fail=1
 
-. ./bre.script || fail=1
+${re_shell_-${SHELL-sh}} ./bre.script || fail=1
 
 Exit $fail
diff --git a/tests/ere b/tests/ere
index 04e6a75..03aec36 100755
--- a/tests/ere
+++ b/tests/ere
@@ -16,6 +16,6 @@ fail=0
 ${AWK-awk} -f $abs_top_srcdir/tests/ere.awk $abs_top_srcdir/tests/ere.tests \
   > ere.script || fail=1
 
-${SHELL-sh} ere.script || fail=1
+${re_shell_-${SHELL-sh}} ere.script || fail=1
 
 Exit $fail
diff --git a/tests/init.sh b/tests/init.sh
index b5c2e3f..e07c39c 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -201,6 +201,7 @@ else
       *x*) opts_=-x ;;
       *) opts_= ;;
     esac
+    export re_shell_
     exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
     echo "$ME_: exec failed" 1>&2
     exit 127
diff --git a/tests/spencer1-locale b/tests/spencer1-locale
index 11000fe..6484490 100755
--- a/tests/spencer1-locale
+++ b/tests/spencer1-locale
@@ -18,6 +18,6 @@ ${AWK-awk} -v extra_locale=$LOCALE_FR_UTF8 \
     -f "$abs_srcdir/spencer1-locale.awk" "$abs_srcdir/spencer1.tests" \
   > spencer1-locale.script || fail=1
 
-${SHELL-sh} spencer1-locale.script || fail=1
+${re_shell_-${SHELL-sh}} spencer1-locale.script || fail=1
 
 Exit $fail
-- 
1.8.3.1