Date: Sat, 13 Mar 2010 22:30:53 +0000 (UTC) From: Jilles Tjoelker <jilles@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r205136 - head/tools/regression/bin/sh/errors Message-ID: <201003132230.o2DMUrol052474@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003132230.o2DMUrol052474>