summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorstefanf <stefanf@FreeBSD.org>2006-04-09 09:38:29 +0000
committerstefanf <stefanf@FreeBSD.org>2006-04-09 09:38:29 +0000
commit209025405d1718f956439567f56fb8504bbfc6cf (patch)
treec55f9bad31e17c1d99cfd89534f2cc660b4d2bc3 /tools
parent4ea2d64da62602cd997ceeb4aed8331255f0c960 (diff)
downloadFreeBSD-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.055
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
OpenPOWER on IntegriCloud