summary refs log tree commit diff
path: root/bin/1sh/tests/builtins/var-assign.0
diff options
context:
space:
mode:
Diffstat (limited to 'bin/1sh/tests/builtins/var-assign.0')
-rw-r--r--bin/1sh/tests/builtins/var-assign.055
1 files changed, 55 insertions, 0 deletions
diff --git a/bin/1sh/tests/builtins/var-assign.0 b/bin/1sh/tests/builtins/var-assign.0
new file mode 100644
index 00000000..ff54d487
--- /dev/null
+++ b/bin/1sh/tests/builtins/var-assign.0
@@ -0,0 +1,55 @@
+# $FreeBSD: releng/12.1/bin/sh/tests/builtins/var-assign.0 327281 2017-12-28 08:22:26Z eadler $
+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 utilities they do not.
+set -- ${UTILS}
+for cmd in "$@"
+do
+	${SH} -c "VAR=0; VAR=1 ${cmd}; exit \${VAR}" >/dev/null 2>&1
+done