summary refs log tree commit diff
path: root/bin/cash/tests/errors/assignment-error1.0
diff options
context:
space:
mode:
Diffstat (limited to 'bin/cash/tests/errors/assignment-error1.0')
-rw-r--r--bin/cash/tests/errors/assignment-error1.030
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/cash/tests/errors/assignment-error1.0 b/bin/cash/tests/errors/assignment-error1.0
new file mode 100644
index 00000000..029662a6
--- /dev/null
+++ b/bin/cash/tests/errors/assignment-error1.0
@@ -0,0 +1,30 @@
+# $FreeBSD: releng/12.0/bin/sh/tests/errors/assignment-error1.0 213738 2010-10-12 18:20:38Z obrien $
+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