From owner-svn-src-head@FreeBSD.ORG Sat Mar 13 22:30:53 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54B0B1065670; Sat, 13 Mar 2010 22:30:53 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 439F38FC18; Sat, 13 Mar 2010 22:30:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o2DMUrae052475; Sat, 13 Mar 2010 22:30:53 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2DMUrol052474; Sat, 13 Mar 2010 22:30:53 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201003132230.o2DMUrol052474@svn.freebsd.org> From: Jilles Tjoelker Date: Sat, 13 Mar 2010 22:30:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205136 - head/tools/regression/bin/sh/errors X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Mar 2010 22:30:53 -0000 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