Module Name:    src
Committed By:   christos
Date:           Sun Mar 27 14:57:50 UTC 2016

Modified Files:
        src/tests/bin/sh/dotcmd: Makefile scoped_command t_dotcmd.sh

Log Message:
Allow for testing other than /bin/sh using TEST_SH (from kre@)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/bin/sh/dotcmd/Makefile
cvs rdiff -u -r1.1 -r1.2 src/tests/bin/sh/dotcmd/scoped_command \
    src/tests/bin/sh/dotcmd/t_dotcmd.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/bin/sh/dotcmd/Makefile
diff -u src/tests/bin/sh/dotcmd/Makefile:1.2 src/tests/bin/sh/dotcmd/Makefile:1.3
--- src/tests/bin/sh/dotcmd/Makefile:1.2	Sun Jul 27 10:24:17 2014
+++ src/tests/bin/sh/dotcmd/Makefile	Sun Mar 27 10:57:50 2016
@@ -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} = ${TESTSDI
 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_sco
 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

Index: src/tests/bin/sh/dotcmd/scoped_command
diff -u src/tests/bin/sh/dotcmd/scoped_command:1.1 src/tests/bin/sh/dotcmd/scoped_command:1.2
--- src/tests/bin/sh/dotcmd/scoped_command:1.1	Sat May 31 10:29:06 2014
+++ src/tests/bin/sh/dotcmd/scoped_command	Sun Mar 27 10:57:50 2016
@@ -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()
Index: src/tests/bin/sh/dotcmd/t_dotcmd.sh
diff -u src/tests/bin/sh/dotcmd/t_dotcmd.sh:1.1 src/tests/bin/sh/dotcmd/t_dotcmd.sh:1.2
--- src/tests/bin/sh/dotcmd/t_dotcmd.sh:1.1	Sat May 31 10:29:06 2014
+++ src/tests/bin/sh/dotcmd/t_dotcmd.sh	Sun Mar 27 10:57:50 2016
@@ -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'
 

Reply via email to