summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2010-11-06 15:20:06 +0100
committerJim Meyering <meyering@redhat.com>2010-11-06 15:24:53 +0100
commit6c058b2dabe2e577d56e8c2c82cec550ff82f085 (patch)
tree7c2b1f036027addde33ec24c44c471c4f3332a87 /tests
parent3261914da1dc13165738dcfb77c12dad7b57690f (diff)
downloadcoreutils-6c058b2dabe2e577d56e8c2c82cec550ff82f085.tar.xz
tests: avoid failure due to bug in FreeBSD 8.1's /bin/sh
* tests/init.sh: Arrange not to accept FreeBSD 8.1's /bin/sh, since it fails this test: /bin/sh -c 'f(){ local s=$IFS; test -n "$s"; }; f' * tests/init.cfg (sanitize_path_): Stop-gap measure to work around a bug in FreeBSD 8.1's /bin/sh. We'll un-do this change once all 300+ tests use init.sh.
Diffstat (limited to 'tests')
-rw-r--r--tests/init.cfg4
-rw-r--r--tests/init.sh4
2 files changed, 7 insertions, 1 deletions
diff --git a/tests/init.cfg b/tests/init.cfg
index 1048cf39d..778625702 100644
--- a/tests/init.cfg
+++ b/tests/init.cfg
@@ -12,7 +12,9 @@ stderr_fileno_=9
# Avoid the problem by rewriting PATH to exclude unsearchable directories.
sanitize_path_()
{
- local saved_IFS=$IFS
+ # FIXME: remove double quotes around $IFS when all tests use init.sh.
+ # They constitute a work-around for a bug in FreeBSD 8.1's /bin/sh.
+ local saved_IFS="$IFS"
IFS=:
set -- $PATH
IFS=$saved_IFS
diff --git a/tests/init.sh b/tests/init.sh
index a57de77a2..0193cbec1 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -93,6 +93,9 @@ else
fi
# We require $(...) support unconditionally.
+# We also require "local" support. The local-vs-IFS test is required to
+# eliminate FreeBSD 8.1's /bin/sh, which would otherwise pass these tests
+# and provoke opaque test failures in coreutils.
# We require a few additional shell features only when $EXEEXT is nonempty,
# in order to support automatic $EXEEXT emulation:
# - hyphen-containing alias names
@@ -115,6 +118,7 @@ fi
# ? - not ok
gl_shell_test_script_='
test $(echo y) = y || exit 1
+gl_local_test_(){ local s=$IFS; test -n "$s"; }; gl_local_test_ || exit 1
score_=10
if test "$VERBOSE" = yes; then
test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9