From 8c5f55739a9f606525eb38e40921ad1211356bdc Mon Sep 17 00:00:00 2001 From: pjd Date: Sun, 23 Nov 2008 20:07:00 +0000 Subject: fstest for Linux: - Use -- when needed so Linux getopt(3) won't get confused. - Follow POSIX more closely. Submitted by: Szabolcs Szakacsits --- tools/regression/fstest/tests/chown/00.t | 46 ++++++++++++++--------------- tools/regression/fstest/tests/chown/05.t | 6 ++-- tools/regression/fstest/tests/chown/07.t | 2 +- tools/regression/fstest/tests/link/00.t | 4 +-- tools/regression/fstest/tests/open/23.t | 6 ++-- tools/regression/fstest/tests/rename/19.t | 6 ++-- tools/regression/fstest/tests/rename/21.t | 21 ++++++++----- tools/regression/fstest/tests/truncate/13.t | 4 +-- tools/regression/fstest/tests/unlink/08.t | 14 ++------- 9 files changed, 53 insertions(+), 56 deletions(-) (limited to 'tools/regression/fstest/tests') diff --git a/tools/regression/fstest/tests/chown/00.t b/tools/regression/fstest/tests/chown/00.t index 154129a..103ff59 100644 --- a/tools/regression/fstest/tests/chown/00.t +++ b/tools/regression/fstest/tests/chown/00.t @@ -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 ${n0} 65534 65532 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} diff --git a/tools/regression/fstest/tests/chown/05.t b/tools/regression/fstest/tests/chown/05.t index 844ffca..6017f2d 100644 --- a/tools/regression/fstest/tests/chown/05.t +++ b/tools/regression/fstest/tests/chown/05.t @@ -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} diff --git a/tools/regression/fstest/tests/chown/07.t b/tools/regression/fstest/tests/chown/07.t index a9789eb..3fd4437 100644 --- a/tools/regression/fstest/tests/chown/07.t +++ b/tools/regression/fstest/tests/chown/07.t @@ -21,7 +21,7 @@ expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644 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} diff --git a/tools/regression/fstest/tests/link/00.t b/tools/regression/fstest/tests/link/00.t index e5ac67d..3c124aa 100644 --- a/tools/regression/fstest/tests/link/00.t +++ b/tools/regression/fstest/tests/link/00.t @@ -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` diff --git a/tools/regression/fstest/tests/open/23.t b/tools/regression/fstest/tests/open/23.t index ea6335f..b7eec4d 100644 --- a/tools/regression/fstest/tests/open/23.t +++ b/tools/regression/fstest/tests/open/23.t @@ -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} diff --git a/tools/regression/fstest/tests/rename/19.t b/tools/regression/fstest/tests/rename/19.t index b068a01..7459523 100644 --- a/tools/regression/fstest/tests/rename/19.t +++ b/tools/regression/fstest/tests/rename/19.t @@ -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} diff --git a/tools/regression/fstest/tests/rename/21.t b/tools/regression/fstest/tests/rename/21.t index db69f26..a9445c7 100644 --- a/tools/regression/fstest/tests/rename/21.t +++ b/tools/regression/fstest/tests/rename/21.t @@ -6,7 +6,7 @@ desc="write access to subdirectory is required to move it to another directory" 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} +# 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}/${n1} -expect ENOENT rmdir ${n2}/${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} diff --git a/tools/regression/fstest/tests/truncate/13.t b/tools/regression/fstest/tests/truncate/13.t index 1084c43..9e40928 100644 --- a/tools/regression/fstest/tests/truncate/13.t +++ b/tools/regression/fstest/tests/truncate/13.t @@ -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} diff --git a/tools/regression/fstest/tests/unlink/08.t b/tools/regression/fstest/tests/unlink/08.t index 5b0f03b..e872a19 100644 --- a/tools/regression/fstest/tests/unlink/08.t +++ b/tools/regression/fstest/tests/unlink/08.t @@ -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} -- cgit v1.1