Allow for testing other than /bin/sh using TEST_SH (from kre@)
This commit is contained in:
parent
aa36454cd0
commit
32b59da6c9
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.2 2014/07/27 14:24:17 apb Exp $
|
||||
# $NetBSD: Makefile,v 1.3 2016/03/27 14:57:50 christos Exp $
|
||||
#
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
@ -7,6 +7,10 @@ TESTSDIR = ${TESTSBASE}/bin/sh/dotcmd
|
|||
|
||||
TESTS_SH = t_dotcmd
|
||||
|
||||
.if !defined(TEST_SH)
|
||||
TEST_SH = ${HOST_SH}
|
||||
.endif
|
||||
|
||||
FILESDIR = ${TESTSDIR}/out
|
||||
|
||||
# Testing scripts: dotcmd in various scopes includes a file with
|
||||
|
@ -19,7 +23,7 @@ FILESDIR_${cmd}_${cmd_scope} = ${TESTSDIR}
|
|||
FILESBUILD_${cmd}_${cmd_scope} = yes
|
||||
|
||||
${cmd}_${cmd_scope}: scoped_command
|
||||
${HOST_SH} ${.CURDIR}/scoped_command '${cmd_scope}' '${cmd}' '${cmd}' \
|
||||
${TEST_SH} ${.CURDIR}/scoped_command '${cmd_scope}' '${cmd}' '${cmd}' \
|
||||
>'${.TARGET}'
|
||||
|
||||
. for dot_scope in case compound file for func subshell until while
|
||||
|
@ -31,7 +35,7 @@ FILESBUILD_${dot_scope}_${cmd}_${cmd_scope} = yes
|
|||
FILESMODE_${dot_scope}_${cmd}_${cmd_scope} = ${BINMODE}
|
||||
|
||||
${dot_scope}_${cmd}_${cmd_scope}: scoped_command
|
||||
${HOST_SH} ${.CURDIR}/scoped_command '${dot_scope}' \
|
||||
${TEST_SH} ${.CURDIR}/scoped_command '${dot_scope}' \
|
||||
'. "${cmd}_${cmd_scope}"' 'dotcmd' 'dotcmd' >'${.TARGET}'
|
||||
. endfor
|
||||
. endfor
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: scoped_command,v 1.1 2014/05/31 14:29:06 christos Exp $
|
||||
# $NetBSD: scoped_command,v 1.2 2016/03/27 14:57:50 christos Exp $
|
||||
#
|
||||
# Copyright (c) 2014 The NetBSD Foundation, Inc.
|
||||
# All rights reserved.
|
||||
|
@ -30,6 +30,27 @@
|
|||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
: ${TEST_SH:=/bin/sh}
|
||||
|
||||
sane_sh()
|
||||
{
|
||||
set -- ${TEST_SH}
|
||||
case "$#" in
|
||||
(0) set /bin/sh;;
|
||||
(1|2) ;;
|
||||
(*) set "$1";; # Just ignore options if we cannot make them work
|
||||
esac
|
||||
|
||||
case "$1" in
|
||||
/*) TEST_SH="$1${2+ }$2";;
|
||||
./*) TEST_SH="${PWD}${1#.}${2+ }$2";;
|
||||
*/*) TEST_SH="${PWD}/$1${2+ }$2";;
|
||||
*) TEST_SH="$( command -v "$1" )${2+ }$2";;
|
||||
esac
|
||||
}
|
||||
|
||||
sane_sh
|
||||
|
||||
set -e
|
||||
|
||||
# USAGE:
|
||||
|
@ -52,7 +73,7 @@ cmd="echo 'before ${3}'
|
|||
${2}
|
||||
echo 'after ${3}, return value:' ${?}"
|
||||
|
||||
echo "#!/bin/sh"
|
||||
echo "#!${TEST_SH}"
|
||||
|
||||
[ 'func' = "${1}" ] && cat <<EOF
|
||||
func()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: t_dotcmd.sh,v 1.1 2014/05/31 14:29:06 christos Exp $
|
||||
# $NetBSD: t_dotcmd.sh,v 1.2 2016/03/27 14:57:50 christos Exp $
|
||||
#
|
||||
# Copyright (c) 2014 The NetBSD Foundation, Inc.
|
||||
# All rights reserved.
|
||||
|
@ -33,6 +33,10 @@
|
|||
# in C/C++ so, for example, if the dotcmd is in a loop's body, a break in
|
||||
# the sourced file can be used to break out of that loop.
|
||||
|
||||
# Note that the standard does not require this, and allows lexically
|
||||
# scoped interpretation of break/continue (and permits dynamic scope
|
||||
# as an optional extension.)
|
||||
|
||||
cmds='return break continue'
|
||||
scopes='case compound file for func subshell until while'
|
||||
|
||||
|
|
Loading…
Reference in New Issue