diff options
author | stefanf <stefanf@FreeBSD.org> | 2006-04-09 09:38:29 +0000 |
---|---|---|
committer | stefanf <stefanf@FreeBSD.org> | 2006-04-09 09:38:29 +0000 |
commit | 209025405d1718f956439567f56fb8504bbfc6cf (patch) | |
tree | c55f9bad31e17c1d99cfd89534f2cc660b4d2bc3 /tools | |
parent | 4ea2d64da62602cd997ceeb4aed8331255f0c960 (diff) | |
download | FreeBSD-src-209025405d1718f956439567f56fb8504bbfc6cf.zip FreeBSD-src-209025405d1718f956439567f56fb8504bbfc6cf.tar.gz |
Test that variable assignments preceding special built-ins affect the current
shell environment, eg after "VAR=val eval" VAR remains set. Currently fails
but will be implemented soon.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/regression/bin/sh/builtins/var-assign.0 | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/builtins/var-assign.0 b/tools/regression/bin/sh/builtins/var-assign.0 new file mode 100644 index 0000000..2e57a31 --- /dev/null +++ b/tools/regression/bin/sh/builtins/var-assign.0 @@ -0,0 +1,55 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null, + eval, + exec, + export -p, + readonly -p, + set, + shift 0, + times, + trap, + unset foo" + +UTILS="alias,\ + bg,\ + bind,\ + cd,\ + command echo,\ + echo,\ + false,\ + fc -l,\ + fg,\ + getopts a var,\ + hash,\ + jobs,\ + printf a,\ + pwd,\ + read var < /dev/null,\ + test,\ + true,\ + type ls,\ + ulimit,\ + umask,\ + unalias -a,\ + wait" + +set -e + +# For special built-ins variable assignments affect the shell environment. +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "VAR=1; VAR=0 ${cmd}; exit \${VAR}" >/dev/null 2>&1 +done + +# For other built-ins and utilites they do not. +set -- ${UTILS} +for cmd in "$@" +do + sh -c "VAR=0; VAR=1 ${cmd}; exit \${VAR}" >/dev/null 2>&1 +done |