diff options
-rw-r--r-- | tools/regression/bin/sh/errors/assignment-error1.0 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/errors/assignment-error1.0 b/tools/regression/bin/sh/errors/assignment-error1.0 new file mode 100644 index 0000000..9e42f2b --- /dev/null +++ b/tools/regression/bin/sh/errors/assignment-error1.0 @@ -0,0 +1,30 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null,\ + eval,\ + exec,\ + export -p,\ + readonly -p,\ + set,\ + shift,\ + times,\ + trap,\ + unset foo" + +# If there is no command word, the shell must abort on an assignment error. +sh -c "readonly a=0; a=2; exit 0" 2>/dev/null && exit 1 + +# Special built-in utilities must abort on an assignment error. +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "readonly a=0; a=2 ${cmd}; exit 0" 2>/dev/null && exit 1 +done + +# Other utilities must not abort; we currently still execute them. +sh -c "readonly a=0; a=1 true; exit $a" 2>/dev/null || exit 1 +sh -c "readonly a=0; a=1 command :; exit $a" 2>/dev/null || exit 1 |