Author: jilles
Date: Sat Mar 13 22:30:52 2010
New Revision: 205136
URL: http://svn.freebsd.org/changeset/base/205136

Log:
  sh: Add test for assignment errors (e.g. trying to change a readonly var).
  We currently ignore readonly status for assignments before regular builtins
  and external programs (these assignments are not persistent anyway), so just
  check that the readonly variable really is not changed.
  The test depends on the command builtin changes for 'command :'.

Added:
  head/tools/regression/bin/sh/errors/assignment-error1.0   (contents, props 
changed)

Added: head/tools/regression/bin/sh/errors/assignment-error1.0
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/tools/regression/bin/sh/errors/assignment-error1.0     Sat Mar 13 
22:30:52 2010        (r205136)
@@ -0,0 +1,30 @@
+# $FreeBSD$
+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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to