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.
This commit is contained in:
Jim Meyering
2010-11-06 15:20:06 +01:00
parent 3261914da1
commit 6c058b2dab
2 changed files with 7 additions and 1 deletions

View File

@@ -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

View File

@@ -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