diff options
author | pjd <pjd@FreeBSD.org> | 2008-11-22 13:27:15 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2008-11-22 13:27:15 +0000 |
commit | 8ab042140f8917f576756e581836993ed5741558 (patch) | |
tree | c7ad3e96264ff6d16ad82173f613a84e86094ef5 /tools/regression | |
parent | 00bb8be02ca85977afe8762892828e65a064d890 (diff) | |
download | FreeBSD-src-8ab042140f8917f576756e581836993ed5741558.zip FreeBSD-src-8ab042140f8917f576756e581836993ed5741558.tar.gz |
IFp4: Regression tests for FreeBSD/ZFS chflags(2)/lchflags(2).
Diffstat (limited to 'tools/regression')
-rw-r--r-- | tools/regression/fstest/tests/chflags/00.t | 96 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/01.t | 2 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/02.t | 6 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/03.t | 4 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/04.t | 4 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/05.t | 10 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/06.t | 4 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/07.t | 16 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/08.t | 16 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/09.t | 24 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/11.t | 2 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/12.t | 25 | ||||
-rw-r--r-- | tools/regression/fstest/tests/chflags/13.t | 4 | ||||
-rw-r--r-- | tools/regression/fstest/tests/misc.sh | 11 |
14 files changed, 136 insertions, 88 deletions
diff --git a/tools/regression/fstest/tests/chflags/00.t b/tools/regression/fstest/tests/chflags/00.t index af144b0..5ca5c73 100644 --- a/tools/regression/fstest/tests/chflags/00.t +++ b/tools/regression/fstest/tests/chflags/00.t @@ -8,7 +8,25 @@ dir=`dirname $0` require chflags -echo "1..191" +case "${os}:${fs}" in +FreeBSD:UFS) + allflags="UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" + userflags="UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE" + systemflags="SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" + + echo "1..247" + ;; +FreeBSD:ZFS) + allflags="UF_NODUMP,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" + userflags="UF_NODUMP" + systemflags="SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" + + echo "1..167" + ;; +*) + quick_exit + ;; +esac n0=`namegen` n1=`namegen` @@ -20,36 +38,36 @@ cd ${n2} expect 0 create ${n0} 0644 expect none stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags -expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags +expect 0 chflags ${n0} ${allflags} +expect ${allflags} stat ${n0} flags +expect 0 chflags ${n0} ${userflags} +expect ${userflags} stat ${n0} flags +expect 0 chflags ${n0} ${systemflags} +expect ${systemflags} stat ${n0} flags expect 0 chflags ${n0} none expect none stat ${n0} flags expect 0 unlink ${n0} expect 0 mkdir ${n0} 0644 expect none stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags -expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags +expect 0 chflags ${n0} ${allflags} +expect ${allflags} stat ${n0} flags +expect 0 chflags ${n0} ${userflags} +expect ${userflags} stat ${n0} flags +expect 0 chflags ${n0} ${systemflags} +expect ${systemflags} stat ${n0} flags expect 0 chflags ${n0} none expect none stat ${n0} flags expect 0 rmdir ${n0} expect 0 mkfifo ${n0} 0644 expect none stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags -expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags -expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags +expect 0 chflags ${n0} ${allflags} +expect ${allflags} stat ${n0} flags +expect 0 chflags ${n0} ${userflags} +expect ${userflags} stat ${n0} flags +expect 0 chflags ${n0} ${systemflags} +expect ${systemflags} stat ${n0} flags expect 0 chflags ${n0} none expect none stat ${n0} flags expect 0 unlink ${n0} @@ -58,14 +76,14 @@ expect 0 create ${n0} 0644 expect 0 symlink ${n0} ${n1} expect none stat ${n1} flags expect none lstat ${n1} flags -expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags +expect 0 chflags ${n1} ${allflags} +expect ${allflags} stat ${n1} flags expect none lstat ${n1} flags -expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n1} flags +expect 0 chflags ${n1} ${userflags} +expect ${userflags} stat ${n1} flags expect none lstat ${n1} flags -expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags +expect 0 chflags ${n1} ${systemflags} +expect ${systemflags} stat ${n1} flags expect none lstat ${n1} flags expect 0 chflags ${n1} none expect none stat ${n1} flags @@ -77,14 +95,14 @@ expect 0 create ${n0} 0644 expect 0 symlink ${n0} ${n1} expect none stat ${n1} flags expect none lstat ${n1} flags -expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags +expect 0 lchflags ${n1} ${allflags} +expect ${allflags} lstat ${n1} flags expect none stat ${n1} flags -expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE -expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE lstat ${n1} flags +expect 0 lchflags ${n1} ${userflags} +expect ${userflags} lstat ${n1} flags expect none stat ${n1} flags -expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK -expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags +expect 0 lchflags ${n1} ${systemflags} +expect ${systemflags} lstat ${n1} flags expect none stat ${n1} flags expect 0 lchflags ${n1} none expect none lstat ${n1} flags @@ -94,7 +112,7 @@ expect 0 unlink ${n0} # successful chflags(2) updates ctime. expect 0 create ${n0} 0644 -for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect 0 chflags ${n0} ${flag} @@ -104,7 +122,7 @@ done expect 0 unlink ${n0} expect 0 mkdir ${n0} 0755 -for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect 0 chflags ${n0} ${flag} @@ -114,7 +132,7 @@ done expect 0 rmdir ${n0} expect 0 mkfifo ${n0} 0644 -for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect 0 chflags ${n0} ${flag} @@ -124,7 +142,7 @@ done expect 0 unlink ${n0} expect 0 symlink ${n1} ${n0} -for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} lstat ${n0} ctime` sleep 1 expect 0 lchflags ${n0} ${flag} @@ -135,7 +153,7 @@ expect 0 unlink ${n0} # unsuccessful chflags(2) does not update ctime. expect 0 create ${n0} 0644 -for flag in UF_IMMUTABLE SF_IMMUTABLE none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect EPERM -u 65534 chflags ${n0} ${flag} @@ -145,7 +163,7 @@ done expect 0 unlink ${n0} expect 0 mkdir ${n0} 0755 -for flag in UF_IMMUTABLE SF_IMMUTABLE none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect EPERM -u 65534 chflags ${n0} ${flag} @@ -155,7 +173,7 @@ done expect 0 rmdir ${n0} expect 0 mkfifo ${n0} 0644 -for flag in UF_IMMUTABLE SF_IMMUTABLE none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} stat ${n0} ctime` sleep 1 expect EPERM -u 65534 chflags ${n0} ${flag} @@ -165,7 +183,7 @@ done expect 0 unlink ${n0} expect 0 symlink ${n1} ${n0} -for flag in UF_IMMUTABLE SF_IMMUTABLE none; do +for flag in `echo ${allflags},none | tr ',' ' '`; do ctime1=`${fstest} lstat ${n0} ctime` sleep 1 expect EPERM -u 65534 lchflags ${n0} ${flag} diff --git a/tools/regression/fstest/tests/chflags/01.t b/tools/regression/fstest/tests/chflags/01.t index efdee5c..029ee46 100644 --- a/tools/regression/fstest/tests/chflags/01.t +++ b/tools/regression/fstest/tests/chflags/01.t @@ -15,6 +15,6 @@ n1=`namegen` expect 0 mkdir ${n0} 0755 expect 0 create ${n0}/${n1} 0644 -expect ENOTDIR chflags ${n0}/${n1}/test UF_IMMUTABLE +expect ENOTDIR chflags ${n0}/${n1}/test SF_IMMUTABLE expect 0 unlink ${n0}/${n1} expect 0 rmdir ${n0} diff --git a/tools/regression/fstest/tests/chflags/02.t b/tools/regression/fstest/tests/chflags/02.t index 7579061..03c5c7f 100644 --- a/tools/regression/fstest/tests/chflags/02.t +++ b/tools/regression/fstest/tests/chflags/02.t @@ -11,8 +11,8 @@ require chflags echo "1..6" expect 0 create ${name255} 0644 -expect 0 chflags ${name255} UF_IMMUTABLE -expect UF_IMMUTABLE stat ${name255} flags +expect 0 chflags ${name255} SF_IMMUTABLE +expect SF_IMMUTABLE stat ${name255} flags expect 0 chflags ${name255} none expect 0 unlink ${name255} -expect ENAMETOOLONG chflags ${name256} UF_IMMUTABLE +expect ENAMETOOLONG chflags ${name256} SF_IMMUTABLE diff --git a/tools/regression/fstest/tests/chflags/03.t b/tools/regression/fstest/tests/chflags/03.t index 06a0c04..f50061b 100644 --- a/tools/regression/fstest/tests/chflags/03.t +++ b/tools/regression/fstest/tests/chflags/03.t @@ -15,10 +15,10 @@ expect 0 mkdir ${name255}/${name255} 0755 expect 0 mkdir ${name255}/${name255}/${name255} 0755 expect 0 mkdir ${path1021} 0755 expect 0 create ${path1023} 0644 -expect 0 chflags ${path1023} UF_IMMUTABLE +expect 0 chflags ${path1023} SF_IMMUTABLE expect 0 chflags ${path1023} none expect 0 unlink ${path1023} -expect ENAMETOOLONG chflags ${path1024} UF_IMMUTABLE +expect ENAMETOOLONG chflags ${path1024} SF_IMMUTABLE expect 0 rmdir ${path1021} expect 0 rmdir ${name255}/${name255}/${name255} expect 0 rmdir ${name255}/${name255} diff --git a/tools/regression/fstest/tests/chflags/04.t b/tools/regression/fstest/tests/chflags/04.t index 105732c..591ae69 100644 --- a/tools/regression/fstest/tests/chflags/04.t +++ b/tools/regression/fstest/tests/chflags/04.t @@ -14,6 +14,6 @@ n0=`namegen` n1=`namegen` expect 0 mkdir ${n0} 0755 -expect ENOENT chflags ${n0}/${n1}/test UF_IMMUTABLE -expect ENOENT chflags ${n0}/${n1} UF_IMMUTABLE +expect ENOENT chflags ${n0}/${n1}/test SF_IMMUTABLE +expect ENOENT chflags ${n0}/${n1} SF_IMMUTABLE expect 0 rmdir ${n0} diff --git a/tools/regression/fstest/tests/chflags/05.t b/tools/regression/fstest/tests/chflags/05.t index a534ff5..7409798 100644 --- a/tools/regression/fstest/tests/chflags/05.t +++ b/tools/regression/fstest/tests/chflags/05.t @@ -20,14 +20,14 @@ 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 65534 chflags ${n1}/${n2} UF_IMMUTABLE -expect UF_IMMUTABLE -u 65534 -g 65534 stat ${n1}/${n2} flags +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} UF_NODUMP +expect UF_NODUMP -u 65534 -g 65534 stat ${n1}/${n2} flags expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} none expect 0 chmod ${n1} 0644 -expect EACCES -u 65534 -g 65534 chflags ${n1}/${n2} UF_IMMUTABLE +expect EACCES -u 65534 -g 65534 chflags ${n1}/${n2} UF_NODUMP expect 0 chmod ${n1} 0755 -expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} UF_IMMUTABLE -expect UF_IMMUTABLE -u 65534 -g 65534 stat ${n1}/${n2} flags +expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} UF_NODUMP +expect UF_NODUMP -u 65534 -g 65534 stat ${n1}/${n2} flags expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} none expect 0 -u 65534 -g 65534 unlink ${n1}/${n2} expect 0 rmdir ${n1} diff --git a/tools/regression/fstest/tests/chflags/06.t b/tools/regression/fstest/tests/chflags/06.t index cebfcdd..ae5973e 100644 --- a/tools/regression/fstest/tests/chflags/06.t +++ b/tools/regression/fstest/tests/chflags/06.t @@ -15,7 +15,7 @@ n1=`namegen` expect 0 symlink ${n0} ${n1} expect 0 symlink ${n1} ${n0} -expect ELOOP chflags ${n0}/test UF_IMMUTABLE -expect ELOOP chflags ${n1}/test UF_IMMUTABLE +expect ELOOP chflags ${n0}/test SF_IMMUTABLE +expect ELOOP chflags ${n1}/test SF_IMMUTABLE expect 0 unlink ${n0} expect 0 unlink ${n1} diff --git a/tools/regression/fstest/tests/chflags/07.t b/tools/regression/fstest/tests/chflags/07.t index ef7c19c..25ff7c7 100644 --- a/tools/regression/fstest/tests/chflags/07.t +++ b/tools/regression/fstest/tests/chflags/07.t @@ -19,34 +19,34 @@ cdir=`pwd` cd ${n0} expect 0 create ${n1} 0644 -expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 chown ${n1} 65534 65534 -expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 unlink ${n1} expect 0 mkdir ${n1} 0755 -expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 chown ${n1} 65534 65534 -expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 rmdir ${n1} expect 0 mkfifo ${n1} 0644 -expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 chown ${n1} 65534 65534 -expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE +expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect none stat ${n1} flags expect 0 unlink ${n1} expect 0 symlink ${n2} ${n1} -expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_IMMUTABLE +expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_NODUMP expect none lstat ${n1} flags expect 0 lchown ${n1} 65534 65534 -expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE +expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_NODUMP expect none lstat ${n1} flags expect 0 unlink ${n1} diff --git a/tools/regression/fstest/tests/chflags/08.t b/tools/regression/fstest/tests/chflags/08.t index 9fa97b7..adeb449 100644 --- a/tools/regression/fstest/tests/chflags/08.t +++ b/tools/regression/fstest/tests/chflags/08.t @@ -22,9 +22,9 @@ expect 0 create ${n1} 0644 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -34,9 +34,9 @@ expect 0 mkdir ${n1} 0755 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -46,9 +46,9 @@ expect 0 mkfifo ${n1} 0644 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - expect EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - expect EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + expect EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -58,9 +58,9 @@ expect 0 symlink ${n2} ${n1} expect 0 lchown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 lchflags ${n1} ${flag} - expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE + expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_NODUMP expect ${flag} lstat ${n1} flags - expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_IMMUTABLE + expect EPERM -u 65534 -g 65534 lchflags ${n1} UF_NODUMP expect ${flag} lstat ${n1} flags done expect 0 lchflags ${n1} none diff --git a/tools/regression/fstest/tests/chflags/09.t b/tools/regression/fstest/tests/chflags/09.t index 7b6a2cb..7991c3d 100644 --- a/tools/regression/fstest/tests/chflags/09.t +++ b/tools/regression/fstest/tests/chflags/09.t @@ -25,11 +25,11 @@ expect 0 create ${n1} 0644 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - jexpect 1 `pwd` EPERM chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -39,11 +39,11 @@ expect 0 mkdir ${n1} 0755 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - jexpect 1 `pwd` EPERM chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -53,11 +53,11 @@ expect 0 mkfifo ${n1} 0644 expect 0 chown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 chflags ${n1} ${flag} - jexpect 1 `pwd` EPERM chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65533 -g 65533 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags - jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65534 -g 65534 chflags ${n1} UF_NODUMP expect ${flag} stat ${n1} flags done expect 0 chflags ${n1} none @@ -67,11 +67,11 @@ expect 0 symlink ${n2} ${n1} expect 0 lchown ${n1} 65534 65534 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do expect 0 lchflags ${n1} ${flag} - jexpect 1 `pwd` EPERM lchflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM lchflags ${n1} UF_NODUMP expect ${flag} lstat ${n1} flags - jexpect 1 `pwd` EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65533 -g 65533 lchflags ${n1} UF_NODUMP expect ${flag} lstat ${n1} flags - jexpect 1 `pwd` EPERM -u 65534 -g 65534 lchflags ${n1} UF_IMMUTABLE + jexpect 1 `pwd` EPERM -u 65534 -g 65534 lchflags ${n1} UF_NODUMP expect ${flag} lstat ${n1} flags done expect 0 lchflags ${n1} none diff --git a/tools/regression/fstest/tests/chflags/11.t b/tools/regression/fstest/tests/chflags/11.t index 6c3887f..a7b3dfb 100644 --- a/tools/regression/fstest/tests/chflags/11.t +++ b/tools/regression/fstest/tests/chflags/11.t @@ -6,7 +6,7 @@ desc="chflags returns EPERM if a user tries to set or remove the SF_SNAPSHOT fla dir=`dirname $0` . ${dir}/../misc.sh -require chflags +require chflags_SF_SNAPSHOT echo "1..46" diff --git a/tools/regression/fstest/tests/chflags/12.t b/tools/regression/fstest/tests/chflags/12.t index 7b03436..950458e 100644 --- a/tools/regression/fstest/tests/chflags/12.t +++ b/tools/regression/fstest/tests/chflags/12.t @@ -37,6 +37,31 @@ FreeBSD:UFS) mdconfig -d -u ${n} expect 0 rmdir ${n0} ;; +FreeBSD:ZFS) + echo "1..12" + + n0=`namegen` + n1=`namegen` + + n=`mdconfig -a -n -t malloc -s 128m` + zpool create ${n0} /dev/md${n} + expect 0 create /${n0}/${n1} 0644 + expect 0 chflags /${n0}/${n1} UF_NODUMP + expect UF_NODUMP stat /${n0}/${n1} flags + expect 0 chflags /${n0}/${n1} none + expect none stat /${n0}/${n1} flags + zfs set readonly=on ${n0} + expect EROFS chflags /${n0}/${n1} UF_NODUMP + expect none stat /${n0}/${n1} flags + zfs set readonly=off ${n0} + expect 0 chflags /${n0}/${n1} UF_NODUMP + expect UF_NODUMP stat /${n0}/${n1} flags + expect 0 chflags /${n0}/${n1} none + expect none stat /${n0}/${n1} flags + expect 0 unlink /${n0}/${n1} + zpool destroy ${n0} + mdconfig -d -u ${n} + ;; *) quick_exit ;; diff --git a/tools/regression/fstest/tests/chflags/13.t b/tools/regression/fstest/tests/chflags/13.t index edab3a9..247246a 100644 --- a/tools/regression/fstest/tests/chflags/13.t +++ b/tools/regression/fstest/tests/chflags/13.t @@ -10,5 +10,5 @@ require chflags echo "1..2" -expect EFAULT chflags NULL UF_IMMUTABLE -expect EFAULT chflags DEADCODE UF_IMMUTABLE +expect EFAULT chflags NULL UF_NODUMP +expect EFAULT chflags DEADCODE UF_NODUMP diff --git a/tools/regression/fstest/tests/misc.sh b/tools/regression/fstest/tests/misc.sh index fcb41d1..1b742a0 100644 --- a/tools/regression/fstest/tests/misc.sh +++ b/tools/regression/fstest/tests/misc.sh @@ -73,13 +73,18 @@ quick_exit() supported() { case "${1}" in + lchmod) + if [ "${os}" != "FreeBSD" ]; then + return 1 + fi + ;; chflags) - if [ ${os} != "FreeBSD" -o ${fs} != "UFS" ]; then + if [ "${os}" != "FreeBSD" ]; then return 1 fi ;; - lchmod) - if [ ${os} != "FreeBSD" ]; then + chflags_SF_SNAPSHOT) + if [ "${os}" != "FreeBSD" -o "${fs}" != "UFS" ]; then return 1 fi ;; |