svn commit: r211242 - in head/tools/regression/fstest/tests: rmdir unlink

Pawel Jakub Dawidek pjd at FreeBSD.org
Thu Aug 12 20:35:14 UTC 2010


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}
 


More information about the svn-src-head mailing list