summaryrefslogtreecommitdiffstats
path: root/tools/regression/fstest/tests/chflags/00.t
diff options
context:
space:
mode:
Diffstat (limited to 'tools/regression/fstest/tests/chflags/00.t')
-rw-r--r--tools/regression/fstest/tests/chflags/00.t208
1 files changed, 95 insertions, 113 deletions
diff --git a/tools/regression/fstest/tests/chflags/00.t b/tools/regression/fstest/tests/chflags/00.t
index 5ca5c73..33d3195 100644
--- a/tools/regression/fstest/tests/chflags/00.t
+++ b/tools/regression/fstest/tests/chflags/00.t
@@ -14,14 +14,14 @@ FreeBSD:UFS)
userflags="UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE"
systemflags="SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
- echo "1..247"
+ echo "1..780"
;;
FreeBSD:ZFS)
allflags="UF_NODUMP,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
userflags="UF_NODUMP"
systemflags="SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
- echo "1..167"
+ echo "1..520"
;;
*)
quick_exit
@@ -36,41 +36,39 @@ expect 0 mkdir ${n2} 0755
cdir=`pwd`
cd ${n2}
-expect 0 create ${n0} 0644
-expect none 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} ${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} ${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}
+for type in regular dir fifo block char socket; do
+ create_file ${type} ${n0} 0 0
+ expect none 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
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
+
+ create_file ${type} ${n0} 0 0
+ expect none stat ${n0} flags
+ expect 0 lchflags ${n0} ${allflags}
+ expect ${allflags} stat ${n0} flags
+ expect 0 lchflags ${n0} ${userflags}
+ expect ${userflags} stat ${n0} flags
+ expect 0 lchflags ${n0} ${systemflags}
+ expect ${systemflags} stat ${n0} flags
+ expect 0 lchflags ${n0} none
+ expect none stat ${n0} flags
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
+done
expect 0 create ${n0} 0644
expect 0 symlink ${n0} ${n1}
@@ -111,86 +109,70 @@ expect 0 unlink ${n1}
expect 0 unlink ${n0}
# successful chflags(2) updates ctime.
-expect 0 create ${n0} 0644
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect 0 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -lt $ctime2
+for type in regular dir fifo block char socket symlink; do
+ if [ "${type}" != "symlink" ]; then
+ create_file ${type} ${n0} 0 0
+ for flag in `echo ${allflags},none | tr ',' ' '`; do
+ ctime1=`${fstest} stat ${n0} ctime`
+ sleep 1
+ expect 0 chflags ${n0} ${flag}
+ ctime2=`${fstest} stat ${n0} ctime`
+ test_check $ctime1 -lt $ctime2
+ done
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
+ fi
+
+ create_file ${type} ${n0} 0 0
+ for flag in `echo ${allflags},none | tr ',' ' '`; do
+ ctime1=`${fstest} lstat ${n0} ctime`
+ sleep 1
+ expect 0 lchflags ${n0} ${flag}
+ ctime2=`${fstest} lstat ${n0} ctime`
+ test_check $ctime1 -lt $ctime2
+ done
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
done
-expect 0 unlink ${n0}
-
-expect 0 mkdir ${n0} 0755
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect 0 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -lt $ctime2
-done
-expect 0 rmdir ${n0}
-
-expect 0 mkfifo ${n0} 0644
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect 0 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -lt $ctime2
-done
-expect 0 unlink ${n0}
-
-expect 0 symlink ${n1} ${n0}
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} lstat ${n0} ctime`
- sleep 1
- expect 0 lchflags ${n0} ${flag}
- ctime2=`${fstest} lstat ${n0} ctime`
- test_check $ctime1 -lt $ctime2
-done
-expect 0 unlink ${n0}
# unsuccessful chflags(2) does not update ctime.
-expect 0 create ${n0} 0644
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect EPERM -u 65534 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -eq $ctime2
-done
-expect 0 unlink ${n0}
-
-expect 0 mkdir ${n0} 0755
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect EPERM -u 65534 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -eq $ctime2
+for type in regular dir fifo block char socket symlink; do
+ if [ "${type}" != "symlink" ]; then
+ create_file ${type} ${n0} 0 0
+ for flag in `echo ${allflags},none | tr ',' ' '`; do
+ ctime1=`${fstest} stat ${n0} ctime`
+ sleep 1
+ expect EPERM -u 65534 chflags ${n0} ${flag}
+ ctime2=`${fstest} stat ${n0} ctime`
+ test_check $ctime1 -eq $ctime2
+ done
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
+ fi
+
+ create_file ${type} ${n0} 0 0
+ for flag in `echo ${allflags},none | tr ',' ' '`; do
+ ctime1=`${fstest} lstat ${n0} ctime`
+ sleep 1
+ expect EPERM -u 65534 lchflags ${n0} ${flag}
+ ctime2=`${fstest} lstat ${n0} ctime`
+ test_check $ctime1 -eq $ctime2
+ done
+ if [ "${type}" = "dir" ]; then
+ expect 0 rmdir ${n0}
+ else
+ expect 0 unlink ${n0}
+ fi
done
-expect 0 rmdir ${n0}
-
-expect 0 mkfifo ${n0} 0644
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} stat ${n0} ctime`
- sleep 1
- expect EPERM -u 65534 chflags ${n0} ${flag}
- ctime2=`${fstest} stat ${n0} ctime`
- test_check $ctime1 -eq $ctime2
-done
-expect 0 unlink ${n0}
-
-expect 0 symlink ${n1} ${n0}
-for flag in `echo ${allflags},none | tr ',' ' '`; do
- ctime1=`${fstest} lstat ${n0} ctime`
- sleep 1
- expect EPERM -u 65534 lchflags ${n0} ${flag}
- ctime2=`${fstest} lstat ${n0} ctime`
- test_check $ctime1 -eq $ctime2
-done
-expect 0 unlink ${n0}
cd ${cdir}
expect 0 rmdir ${n2}
OpenPOWER on IntegriCloud