From owner-svn-src-all@FreeBSD.ORG Thu Aug 12 20:35:14 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5EBC1065694; Thu, 12 Aug 2010 20:35:14 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C41A18FC12; Thu, 12 Aug 2010 20:35:14 +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 o7CKZEQ6087958; Thu, 12 Aug 2010 20:35:14 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7CKZEIk087955; Thu, 12 Aug 2010 20:35:14 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201008122035.o7CKZEIk087955@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Thu, 12 Aug 2010 20:35:14 +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: r211242 - in head/tools/regression/fstest/tests: rmdir unlink X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Aug 2010 20:35:14 -0000 Author: pjd Date: Thu Aug 12 20:35:14 2010 New Revision: 211242 URL: http://svn.freebsd.org/changeset/base/211242 Log: More tests. Modified: head/tools/regression/fstest/tests/rmdir/11.t head/tools/regression/fstest/tests/unlink/11.t Modified: head/tools/regression/fstest/tests/rmdir/11.t ============================================================================== --- head/tools/regression/fstest/tests/rmdir/11.t Thu Aug 12 20:18:06 2010 (r211241) +++ head/tools/regression/fstest/tests/rmdir/11.t Thu Aug 12 20:35:14 2010 (r211242) @@ -6,7 +6,7 @@ desc="rmdir returns EACCES or EPERM if t dir=`dirname $0` . ${dir}/../misc.sh -echo "1..15" +echo "1..47" n0=`namegen` n1=`namegen` @@ -22,17 +22,34 @@ expect 0 chmod ${n0} 01777 # User owns both: the sticky directory and the directory to be removed. expect 0 -u 65534 -g 65534 mkdir ${n0}/${n1} 0755 +expect dir,65534,65534 lstat ${n0}/${n1} type,uid,gid expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} +expect ENOENT lstat ${n0}/${n1} type # User owns the directory to be removed, but doesn't own the sticky directory. -expect 0 -u 65533 -g 65533 mkdir ${n0}/${n1} 0755 -expect 0 -u 65533 -g 65533 rmdir ${n0}/${n1} +for id in 0 65533; do + expect 0 chown ${n0} ${id} ${id} + create_file dir ${n0}/${n1} 65534 65534 + expect dir,65534,65534 lstat ${n0}/${n1} type,uid,gid + expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} + expect ENOENT lstat ${n0}/${n1} type +done # User owns the sticky directory, but doesn't own the directory to be removed. -expect 0 -u 65533 -g 65533 mkdir ${n0}/${n1} 0755 -expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} +expect 0 chown ${n0} 65534 65534 +for id in 0 65533; do + create_file dir ${n0}/${n1} ${id} ${id} + expect dir,${id},${id} lstat ${n0}/${n1} type,uid,gid + expect 0 -u 65534 -g 65534 rmdir ${n0}/${n1} + expect ENOENT lstat ${n0}/${n1} type +done # User doesn't own the sticky directory nor the directory to be removed. -expect 0 -u 65534 -g 65534 mkdir ${n0}/${n1} 0755 -expect "EACCES|EPERM" -u 65533 -g 65533 rmdir ${n0}/${n1} -expect 0 rmdir ${n0}/${n1} +for id in 0 65533; do + expect 0 chown ${n0} ${id} ${id} + create_file dir ${n0}/${n1} ${id} ${id} + expect dir,${id},${id} lstat ${n0}/${n1} type,uid,gid + expect "EACCES|EPERM" -u 65534 -g 65534 rmdir ${n0}/${n1} + expect dir,${id},${id} lstat ${n0}/${n1} type,uid,gid + expect 0 rmdir ${n0}/${n1} +done expect 0 rmdir ${n0} Modified: head/tools/regression/fstest/tests/unlink/11.t ============================================================================== --- head/tools/regression/fstest/tests/unlink/11.t Thu Aug 12 20:18:06 2010 (r211241) +++ head/tools/regression/fstest/tests/unlink/11.t Thu Aug 12 20:35:14 2010 (r211242) @@ -6,7 +6,7 @@ desc="unlink returns EACCES or EPERM if dir=`dirname $0` . ${dir}/../misc.sh -echo "1..68" +echo "1..270" n0=`namegen` n1=`namegen` @@ -17,100 +17,45 @@ cdir=`pwd` cd ${n2} expect 0 mkdir ${n0} 0755 -expect 0 chown ${n0} 65534 65534 expect 0 chmod ${n0} 01777 +expect 0 chown ${n0} 65534 65534 -# User owns both: the sticky directory and the file to be removed. -expect 0 -u 65534 -g 65534 create ${n0}/${n1} 0644 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the file to be removed, but doesn't own the sticky directory. -expect 0 -u 65533 -g 65533 create ${n0}/${n1} 0644 -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the file to be removed. -expect 0 -u 65533 -g 65533 create ${n0}/${n1} 0644 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the file to be removed. -expect 0 -u 65534 -g 65534 create ${n0}/${n1} 0644 -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} - -# User owns both: the sticky directory and the fifo to be removed. -expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n1} 0644 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the fifo to be removed, but doesn't own the sticky directory. -expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n1} 0644 -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the fifo to be removed. -expect 0 -u 65533 -g 65533 mkfifo ${n0}/${n1} 0644 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the fifo to be removed. -expect 0 -u 65534 -g 65534 mkfifo ${n0}/${n1} 0644 -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} - -# User owns both: the sticky directory and the block device to be removed. -expect 0 mknod ${n0}/${n1} b 0644 1 2 -expect 0 chown ${n0}/${n1} 65534 65534 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the block device to be removed, but doesn't own the sticky directory. -expect 0 mknod ${n0}/${n1} b 0644 1 2 -expect 0 chown ${n0}/${n1} 65533 65533 -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the block device to be removed. -expect 0 mknod ${n0}/${n1} b 0644 1 2 -expect 0 chown ${n0}/${n1} 65533 65533 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the block directory to be removed. -expect 0 mknod ${n0}/${n1} b 0644 1 2 -expect 0 chown ${n0}/${n1} 65534 65534 -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} - -# User owns both: the sticky directory and the character device to be removed. -expect 0 mknod ${n0}/${n1} c 0644 1 2 -expect 0 chown ${n0}/${n1} 65534 65534 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the character device to be removed, but doesn't own the sticky directory. -expect 0 mknod ${n0}/${n1} c 0644 1 2 -expect 0 chown ${n0}/${n1} 65533 65533 -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the character device to be removed. -expect 0 mknod ${n0}/${n1} c 0644 1 2 -expect 0 chown ${n0}/${n1} 65533 65533 -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the character directory to be removed. -expect 0 mknod ${n0}/${n1} c 0644 1 2 -expect 0 chown ${n0}/${n1} 65534 65534 -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} - -# User owns both: the sticky directory and the socket to be removed. -expect 0 -u 65534 -g 65534 bind ${n0}/${n1} -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the socket to be removed, but doesn't own the sticky directory. -expect 0 -u 65533 -g 65533 bind ${n0}/${n1} -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the socket to be removed. -expect 0 -u 65533 -g 65533 bind ${n0}/${n1} -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the character directory to be removed. -expect 0 -u 65534 -g 65534 bind ${n0}/${n1} -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} - -# User owns both: the sticky directory and the symlink to be removed. -expect 0 -u 65534 -g 65534 symlink test ${n0}/${n1} -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User owns the symlink to be removed, but doesn't own the sticky directory. -expect 0 -u 65533 -g 65533 symlink test ${n0}/${n1} -expect 0 -u 65533 -g 65533 unlink ${n0}/${n1} -# User owns the sticky directory, but doesn't own the symlink to be removed. -expect 0 -u 65533 -g 65533 symlink test ${n0}/${n1} -expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} -# User doesn't own the sticky directory nor the symlink to be removed. -expect 0 -u 65534 -g 65534 symlink test ${n0}/${n1} -expect "EACCES|EPERM" -u 65533 -g 65533 unlink ${n0}/${n1} -expect 0 unlink ${n0}/${n1} +for type in regular fifo block char socket symlink; do + # User owns both: the sticky directory and the file. + expect 0 chown ${n0} 65534 65534 + create_file ${type} ${n0}/${n1} 65534 65534 + expect ${type},65534,65534 lstat ${n0}/${n1} type,uid,gid + expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} + expect ENOENT lstat ${n0}/${n1} type + + # User owns the sticky directory, but doesn't own the file. + for id in 0 65533; do + expect 0 chown ${n0} 65534 65534 + create_file ${type} ${n0}/${n1} ${id} ${id} + expect ${type},${id},${id} lstat ${n0}/${n1} type,uid,gid + expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} + expect ENOENT lstat ${n0}/${n1} type + done + + # User owns the file, but doesn't own the sticky directory. + for id in 0 65533; do + expect 0 chown ${n0} ${id} ${id} + create_file ${type} ${n0}/${n1} 65534 65534 + expect ${type},65534,65534 lstat ${n0}/${n1} type,uid,gid + expect 0 -u 65534 -g 65534 unlink ${n0}/${n1} + expect ENOENT lstat ${n0}/${n1} type + done + + # User doesn't own the sticky directory nor the file. + for id in 0 65533; do + expect 0 chown ${n0} ${id} ${id} + create_file ${type} ${n0}/${n1} ${id} ${id} + expect ${type},${id},${id} lstat ${n0}/${n1} type,uid,gid + expect "EACCES|EPERM" -u 65534 -g 65534 unlink ${n0}/${n1} + expect ${type},${id},${id} lstat ${n0}/${n1} type,uid,gid + expect 0 unlink ${n0}/${n1} + done +done expect 0 rmdir ${n0}