svn commit: r185227 - in head/tools/regression/fstest/tests: chown link open rename truncate unlink

Pawel Jakub Dawidek pjd at FreeBSD.org
Sun Nov 23 12:07:01 PST 2008


Author: pjd
Date: Sun Nov 23 20:07:00 2008
New Revision: 185227
URL: http://svn.freebsd.org/changeset/base/185227

Log:
  fstest for Linux:
  - Use -- when needed so Linux getopt(3) won't get confused.
  - Follow POSIX more closely.
  
  Submitted by:	Szabolcs Szakacsits <szaka at ntfs-3g.org>

Modified:
  head/tools/regression/fstest/tests/chown/00.t
  head/tools/regression/fstest/tests/chown/05.t
  head/tools/regression/fstest/tests/chown/07.t
  head/tools/regression/fstest/tests/link/00.t
  head/tools/regression/fstest/tests/open/23.t
  head/tools/regression/fstest/tests/rename/19.t
  head/tools/regression/fstest/tests/rename/21.t
  head/tools/regression/fstest/tests/truncate/13.t
  head/tools/regression/fstest/tests/unlink/08.t

Modified: head/tools/regression/fstest/tests/chown/00.t
==============================================================================
--- head/tools/regression/fstest/tests/chown/00.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/chown/00.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -61,7 +61,7 @@ expect 0 unlink ${n1}
 expect 0 create ${n0} 0644
 expect 0 chown ${n0} 65534 65533
 expect 65534,65533 lstat ${n0} uid,gid
-expect 0 -u 65534 -g 65532,65531 chown ${n0} -1 65532
+expect 0 -u 65534 -g 65532,65531 -- chown ${n0} -1 65532
 expect 65534,65532 lstat ${n0} uid,gid
 expect 0 -u 65534 -g 65532,65531 chown ${n0} 65534 65531
 expect 65534,65531 lstat ${n0} uid,gid
@@ -72,17 +72,17 @@ expect 0 unlink ${n0}
 # 39
 expect 0 create ${n0} 0644
 expect 0 chown ${n0} 65534 65533
-expect 0 -u 65532 -g 65531 chown ${n0} -1 -1
+expect 0 -u 65532 -g 65531 -- chown ${n0} -1 -1
 expect 0 unlink ${n0}
 
-# when super-user calls chown(2), set-uid and set-gid bits are not removed.
+# when super-user calls chown(2), set-uid and set-gid bits may be removed.
 # 43
 expect 0 create ${n0} 0644
 expect 0 chown ${n0} 65534 65533
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
 expect 0 chown ${n0} 65532 65531
-expect 06555 lstat ${n0} mode
+expect "06555|0555" lstat ${n0} mode
 expect 0 unlink ${n0}
 # 50
 expect 0 create ${n0} 0644
@@ -90,7 +90,7 @@ expect 0 chown ${n0} 0 0
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
 expect 0 chown ${n0} 65534 65533
-expect 06555 lstat ${n0} mode
+expect "06555|0555" lstat ${n0} mode
 expect 0 unlink ${n0}
 # 57
 expect 0 create ${n0} 0644
@@ -98,11 +98,11 @@ expect 0 chown ${n0} 65534 65533
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
 expect 0 chown ${n0} 0 0
-expect 06555 lstat ${n0} mode
+expect "06555|0555" lstat ${n0} mode
 expect 0 unlink ${n0}
 
-# when non-super-user calls chown(2) successfully, set-uid and set-gid bits are
-# removed, except when both uid and gid are equal to -1.
+# when non-super-user calls chown(2) successfully, set-uid and set-gid bits may
+# be removed, except when both uid and gid are equal to -1.
 # 64
 expect 0 create ${n0} 0644
 expect 0 chown ${n0} 65534 65533
@@ -112,12 +112,12 @@ expect 0 -u 65534 -g 65533,65532 chown $
 expect 0555,65534,65532 lstat ${n0} mode,uid,gid
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
-expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533
+expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 65533
 expect 0555,65534,65533 lstat ${n0} mode,uid,gid
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
-expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1
-expect 06555,65534,65533 lstat ${n0} mode,uid,gid
+expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 -1
+expect "06555,65534,65533|0555,65534,65533" lstat ${n0} mode,uid,gid
 expect 0 unlink ${n0}
 # 79
 expect 0 mkdir ${n0} 0755
@@ -125,14 +125,14 @@ expect 0 chown ${n0} 65534 65533
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
 expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532
-expect 0555,65534,65532 lstat ${n0} mode,uid,gid
+expect "0555,65534,65532|06555,65534,65532" lstat ${n0} mode,uid,gid
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
-expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533
-expect 0555,65534,65533 lstat ${n0} mode,uid,gid
+expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 65533
+expect "0555,65534,65533|06555,65534,65533" lstat ${n0} mode,uid,gid
 expect 0 chmod ${n0} 06555
 expect 06555 lstat ${n0} mode
-expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1
+expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 -1
 expect 06555,65534,65533 lstat ${n0} mode,uid,gid
 expect 0 rmdir ${n0}
 # 94
@@ -145,11 +145,11 @@ if supported lchmod; then
 	expect 0555,65534,65532 lstat ${n0} mode,uid,gid
 	expect 0 lchmod ${n0} 06555
 	expect 06555 lstat ${n0} mode
-	expect 0 -u 65534 -g 65533,65532 lchown ${n0} -1 65533
+	expect 0 -u 65534 -g 65533,65532 -- lchown ${n0} -1 65533
 	expect 0555,65534,65533 lstat ${n0} mode,uid,gid
 	expect 0 lchmod ${n0} 06555
 	expect 06555 lstat ${n0} mode
-	expect 0 -u 65534 -g 65533,65532 lchown ${n0} -1 -1
+	expect 0 -u 65534 -g 65533,65532 -- lchown ${n0} -1 -1
 	expect 06555,65534,65533 lstat ${n0} mode,uid,gid
 	expect 0 unlink ${n0}
 fi
@@ -236,7 +236,7 @@ expect 0 unlink ${n0}
 expect 0 create ${n0} 0644
 ctime1=`${fstest} stat ${n0} ctime`
 sleep 1
-expect 0 chown ${n0} -1 -1
+expect 0 -- chown ${n0} -1 -1
 ctime2=`${fstest} stat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 unlink ${n0}
@@ -244,7 +244,7 @@ expect 0 unlink ${n0}
 expect 0 mkdir ${n0} 0644
 ctime1=`${fstest} stat ${n0} ctime`
 sleep 1
-expect 0 chown ${n0} -1 -1
+expect 0 -- chown ${n0} -1 -1
 ctime2=`${fstest} stat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 rmdir ${n0}
@@ -252,7 +252,7 @@ expect 0 rmdir ${n0}
 expect 0 mkfifo ${n0} 0644
 ctime1=`${fstest} stat ${n0} ctime`
 sleep 1
-expect 0 chown ${n0} -1 -1
+expect 0 -- chown ${n0} -1 -1
 ctime2=`${fstest} stat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 unlink ${n0}
@@ -260,7 +260,7 @@ expect 0 unlink ${n0}
 expect 0 symlink ${n1} ${n0}
 ctime1=`${fstest} lstat ${n0} ctime`
 sleep 1
-expect 0 lchown ${n0} -1 -1
+expect 0 -- lchown ${n0} -1 -1
 ctime2=`${fstest} lstat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 unlink ${n0}
@@ -270,7 +270,7 @@ expect 0 unlink ${n0}
 expect 0 create ${n0} 0644
 ctime1=`${fstest} stat ${n0} ctime`
 sleep 1
-expect EPERM -u 65534 chown ${n0} 65534 -1
+expect EPERM -u 65534 -- chown ${n0} 65534 -1
 ctime2=`${fstest} stat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 unlink ${n0}
@@ -278,7 +278,7 @@ expect 0 unlink ${n0}
 expect 0 mkdir ${n0} 0755
 ctime1=`${fstest} stat ${n0} ctime`
 sleep 1
-expect EPERM -u 65534 -g 65534 chown ${n0} -1 65534
+expect EPERM -u 65534 -g 65534 -- chown ${n0} -1 65534
 ctime2=`${fstest} stat ${n0} ctime`
 test_check $ctime1 -eq $ctime2
 expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/chown/05.t
==============================================================================
--- head/tools/regression/fstest/tests/chown/05.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/chown/05.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -18,13 +18,13 @@ cd ${n0}
 expect 0 mkdir ${n1} 0755
 expect 0 chown ${n1} 65534 65534
 expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644
-expect 0 -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65533
+expect 0 -u 65534 -g 65533,65534 -- chown ${n1}/${n2} -1 65533
 expect 65534,65533 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid
 expect 0 chmod ${n1} 0644
-expect EACCES -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65534
+expect EACCES -u 65534 -g 65533,65534 -- chown ${n1}/${n2} -1 65534
 expect 0 chmod ${n1} 0755
 expect 65534,65533 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid
-expect 0 -u 65534 -g 65533,65534 chown ${n1}/${n2} -1 65534
+expect 0 -u 65534 -g 65533,65534 -- chown ${n1}/${n2} -1 65534
 expect 65534,65534 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid
 expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
 expect 0 rmdir ${n1}

Modified: head/tools/regression/fstest/tests/chown/07.t
==============================================================================
--- head/tools/regression/fstest/tests/chown/07.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/chown/07.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -21,7 +21,7 @@ expect 0 -u 65534 -g 65534 create ${n1}/
 expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} 65533 65533
 expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65534 65534
 expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65533 65533
-expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} -1 65533
+expect EPERM -u 65534 -g 65534 -- chown ${n1}/${n2} -1 65533
 expect 0 unlink ${n1}/${n2}
 expect 0 rmdir ${n1}
 cd ${cdir}

Modified: head/tools/regression/fstest/tests/link/00.t
==============================================================================
--- head/tools/regression/fstest/tests/link/00.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/link/00.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -118,7 +118,7 @@ expect 0 unlink ${n1}
 
 # unsuccessful link(2) does not update ctime.
 expect 0 create ${n0} 0644
-expect 0 chown ${n0} 65534 -1
+expect 0 -- chown ${n0} 65534 -1
 ctime1=`${fstest} stat ${n0} ctime`
 dctime1=`${fstest} stat . ctime`
 dmtime1=`${fstest} stat . mtime`
@@ -133,7 +133,7 @@ test_check $dctime1 -eq $dmtime2
 expect 0 unlink ${n0}
 
 expect 0 mkfifo ${n0} 0644
-expect 0 chown ${n0} 65534 -1
+expect 0 -- chown ${n0} 65534 -1
 ctime1=`${fstest} stat ${n0} ctime`
 dctime1=`${fstest} stat . ctime`
 dmtime1=`${fstest} stat . mtime`

Modified: head/tools/regression/fstest/tests/open/23.t
==============================================================================
--- head/tools/regression/fstest/tests/open/23.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/open/23.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # $FreeBSD$
 
-desc="open returns EINVAL when an attempt was made to open a descriptor with an illegal combination of O_RDONLY, O_WRONLY, and O_RDWR"
+desc="open may return EINVAL when an attempt was made to open a descriptor with an illegal combination of O_RDONLY, O_WRONLY, and O_RDWR"
 
 dir=`dirname $0`
 . ${dir}/../misc.sh
@@ -11,6 +11,6 @@ echo "1..4"
 n0=`namegen`
 
 expect 0 create ${n0} 0644
-expect EINVAL open ${n0} O_WRONLY,O_RDWR
-expect EINVAL open ${n0} O_RDONLY,O_WRONLY,O_RDWR
+expect "0|EINVAL" open ${n0} O_WRONLY,O_RDWR
+expect "0|EINVAL" open ${n0} O_RDONLY,O_WRONLY,O_RDWR
 expect 0 unlink ${n0}

Modified: head/tools/regression/fstest/tests/rename/19.t
==============================================================================
--- head/tools/regression/fstest/tests/rename/19.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/rename/19.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # $FreeBSD$
 
-desc="rename returns EINVAL when an attempt is made to rename '.' or '..'"
+desc="rename returns EINVAL/EBUSY when an attempt is made to rename '.' or '..'"
 
 dir=`dirname $0`
 . ${dir}/../misc.sh
@@ -15,8 +15,8 @@ n2=`namegen`
 expect 0 mkdir ${n0} 0755
 expect 0 mkdir ${n0}/${n1} 0755
 
-expect EINVAL rename ${n0}/${n1}/. ${n2}
-expect EINVAL rename ${n0}/${n1}/.. ${n2}
+expect "EINVAL|EBUSY" rename ${n0}/${n1}/. ${n2}
+expect "EINVAL|EBUSY" rename ${n0}/${n1}/.. ${n2}
 
 expect 0 rmdir ${n0}/${n1}
 expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/rename/21.t
==============================================================================
--- head/tools/regression/fstest/tests/rename/21.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/rename/21.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -6,7 +6,7 @@ desc="write access to subdirectory is re
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-echo "1..13"
+echo "1..15"
 
 n0=`namegen`
 n1=`namegen`
@@ -18,23 +18,28 @@ expect 0 mkdir ${n3} 0777
 cdir=`pwd`
 
 # Check that write permission on containing directory (${n2}) is enough
-# to rename subdirectory (${n0}).
+# to rename subdirectory (${n0}). If we rename directory write access
+# to this directory may also be required.
 expect 0 mkdir ${n2}/${n0} 0700
-expect 0 -u  65534 -g 65534 rename ${n2}/${n0} ${n2}/${n1}
+expect "0|EACCES" -u 65534 -g 65534 rename ${n2}/${n0} ${n2}/${n1}
+expect "0|EACCES" -u 65534 -g 65534 rename ${n2}/${n1} ${n2}/${n0}
 
 # Check that write permission on containing directory (${n2}) is not enough
 # to move subdirectory (${n0}) from that directory.
-expect EACCES -u  65534 -g 65534 rename ${n2}/${n1} ${n3}/${n0}
-
-expect 0 rmdir ${n2}/${n1}
-expect ENOENT rmdir ${n2}/${n1}
+# Actually POSIX says that write access to ${n2} and ${n3} may be enough
+# to move ${n0} from ${n2} to ${n3}.
+expect "0|EACCES" -u 65534 -g 65534 rename ${n2}/${n0} ${n3}/${n1}
+
+expect 0 rmdir ${n2}/${n0}
+expect ENOENT rmdir ${n2}/${n0}
+expect ENOENT rmdir ${n3}/${n1}
 
 # Check that write permission on containing directory (${n2}) is enough
 # to move file (${n0}) from that directory.
 expect 0 create ${n2}/${n0} 0755
-expect 0 -u  65534 -g 65534 rename ${n2}/${n0} ${n3}/${n0}
+expect 0 -u 65534 -g 65534 rename ${n2}/${n0} ${n3}/${n1}
 
-expect 0 unlink ${n3}/${n0}
+expect 0 unlink ${n3}/${n1}
 expect ENOENT unlink ${n2}/${n0}
 
 expect 0 rmdir ${n3}

Modified: head/tools/regression/fstest/tests/truncate/13.t
==============================================================================
--- head/tools/regression/fstest/tests/truncate/13.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/truncate/13.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -11,6 +11,6 @@ echo "1..4"
 n0=`namegen`
 
 expect 0 create ${n0} 0644
-expect EINVAL truncate ${n0} -1
-expect EINVAL truncate ${n0} -999999
+expect EINVAL -- truncate ${n0} -1
+expect EINVAL -- truncate ${n0} -999999
 expect 0 unlink ${n0}

Modified: head/tools/regression/fstest/tests/unlink/08.t
==============================================================================
--- head/tools/regression/fstest/tests/unlink/08.t	Sun Nov 23 20:05:12 2008	(r185226)
+++ head/tools/regression/fstest/tests/unlink/08.t	Sun Nov 23 20:07:00 2008	(r185227)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # $FreeBSD$
 
-desc="unlink returns EPERM if the named file is a directory"
+desc="unlink may return EPERM if the named file is a directory"
 
 dir=`dirname $0`
 . ${dir}/../misc.sh
@@ -11,13 +11,5 @@ echo "1..3"
 n0=`namegen`
 
 expect 0 mkdir ${n0} 0755
-case "${os}:${fs}" in
-SunOS:UFS)
-	expect 0 unlink ${n0}
-	expect ENOENT rmdir ${n0}
-	;;
-*)
-	expect EPERM unlink ${n0}
-	expect 0 rmdir ${n0}
-	;;
-esac
+expect "0|EPERM" unlink ${n0}
+expect "0|ENOENT" rmdir ${n0}


More information about the svn-src-all mailing list