xref: /freebsd/bin/sh/tests/errors/assignment-error1.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*13de33a5SJulio MerinoIFS=,
2*13de33a5SJulio Merino
3*13de33a5SJulio MerinoSPECIAL="break,\
4*13de33a5SJulio Merino	:,\
5*13de33a5SJulio Merino	continue,\
6*13de33a5SJulio Merino	. /dev/null,\
7*13de33a5SJulio Merino	eval,\
8*13de33a5SJulio Merino	exec,\
9*13de33a5SJulio Merino	export -p,\
10*13de33a5SJulio Merino	readonly -p,\
11*13de33a5SJulio Merino	set,\
12*13de33a5SJulio Merino	shift,\
13*13de33a5SJulio Merino	times,\
14*13de33a5SJulio Merino	trap,\
15*13de33a5SJulio Merino	unset foo"
16*13de33a5SJulio Merino
17*13de33a5SJulio Merino# If there is no command word, the shell must abort on an assignment error.
18*13de33a5SJulio Merino${SH} -c "readonly a=0; a=2; exit 0" 2>/dev/null && exit 1
19*13de33a5SJulio Merino
20*13de33a5SJulio Merino# Special built-in utilities must abort on an assignment error.
21*13de33a5SJulio Merinoset -- ${SPECIAL}
22*13de33a5SJulio Merinofor cmd in "$@"
23*13de33a5SJulio Merinodo
24*13de33a5SJulio Merino	${SH} -c "readonly a=0; a=2 ${cmd}; exit 0" 2>/dev/null && exit 1
25*13de33a5SJulio Merinodone
26*13de33a5SJulio Merino
27*13de33a5SJulio Merino# Other utilities must not abort; we currently still execute them.
28*13de33a5SJulio Merino${SH} -c 'readonly a=0; a=1 true; exit $a' 2>/dev/null || exit 1
29*13de33a5SJulio Merino${SH} -c 'readonly a=0; a=1 command :; exit $a' 2>/dev/null || exit 1
30