aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/regression/fstest/tests/chflags/00.t96
-rw-r--r--tools/regression/fstest/tests/chflags/01.t2
-rw-r--r--tools/regression/fstest/tests/chflags/02.t6
-rw-r--r--tools/regression/fstest/tests/chflags/03.t4
-rw-r--r--tools/regression/fstest/tests/chflags/04.t4
-rw-r--r--tools/regression/fstest/tests/chflags/05.t10
-rw-r--r--tools/regression/fstest/tests/chflags/06.t4
-rw-r--r--tools/regression/fstest/tests/chflags/07.t16
-rw-r--r--tools/regression/fstest/tests/chflags/08.t16
-rw-r--r--tools/regression/fstest/tests/chflags/09.t24
-rw-r--r--tools/regression/fstest/tests/chflags/11.t2
-rw-r--r--tools/regression/fstest/tests/chflags/12.t25
-rw-r--r--tools/regression/fstest/tests/chflags/13.t4
-rw-r--r--tools/regression/fstest/tests/misc.sh11
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 af144b08e1bf..5ca5c73397eb 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 efdee5c8a1a5..029ee4688eca 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 7579061e64b0..03c5c7f80bd4 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 06a0c04c54f2..f50061b26b9e 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 105732ca3e9d..591ae69e130e 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 a534ff5b3a23..7409798f889e 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 cebfcdd52bf4..ae5973e288b2 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 ef7c19cfe19c..25ff7c79c1e8 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 9fa97b760b8b..adeb4491a7f9 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 7b6a2cb7dbdb..7991c3dafa96 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 6c3887f9af97..a7b3dfb99788 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 7b03436cf4da..950458e775c4 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 edab3a95528b..247246a6cc1d 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 fcb41d115181..1b742a0365b7 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
;;