1#!/bin/sh
| 1#!/bin/sh
|
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 166065 2007-01-17 01:42:12Z pjd $
| 2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 185173 2008-11-22 13:27:15Z pjd $
|
3 4desc="chflags changes flags" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9require chflags 10
| 3 4desc="chflags changes flags" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9require chflags 10
|
11echo "1..191"
| 11case "${os}:${fs}" in 12FreeBSD:UFS) 13 allflags="UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" 14 userflags="UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE" 15 systemflags="SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
|
12
| 16
|
| 17 echo "1..247" 18 ;; 19FreeBSD:ZFS) 20 allflags="UF_NODUMP,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" 21 userflags="UF_NODUMP" 22 systemflags="SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK" 23 24 echo "1..167" 25 ;; 26*) 27 quick_exit 28 ;; 29esac 30
|
13n0=`namegen` 14n1=`namegen` 15n2=`namegen` 16 17expect 0 mkdir ${n2} 0755 18cdir=`pwd` 19cd ${n2} 20 21expect 0 create ${n0} 0644 22expect none stat ${n0} flags
| 31n0=`namegen` 32n1=`namegen` 33n2=`namegen` 34 35expect 0 mkdir ${n2} 0755 36cdir=`pwd` 37cd ${n2} 38 39expect 0 create ${n0} 0644 40expect none stat ${n0} flags
|
23expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 24expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags 25expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE 26expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags 27expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 28expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
| 41expect 0 chflags ${n0} ${allflags} 42expect ${allflags} stat ${n0} flags 43expect 0 chflags ${n0} ${userflags} 44expect ${userflags} stat ${n0} flags 45expect 0 chflags ${n0} ${systemflags} 46expect ${systemflags} stat ${n0} flags
|
29expect 0 chflags ${n0} none 30expect none stat ${n0} flags 31expect 0 unlink ${n0} 32 33expect 0 mkdir ${n0} 0644 34expect none stat ${n0} flags
| 47expect 0 chflags ${n0} none 48expect none stat ${n0} flags 49expect 0 unlink ${n0} 50 51expect 0 mkdir ${n0} 0644 52expect none stat ${n0} flags
|
35expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 36expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags 37expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE 38expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags 39expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 40expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
| 53expect 0 chflags ${n0} ${allflags} 54expect ${allflags} stat ${n0} flags 55expect 0 chflags ${n0} ${userflags} 56expect ${userflags} stat ${n0} flags 57expect 0 chflags ${n0} ${systemflags} 58expect ${systemflags} stat ${n0} flags
|
41expect 0 chflags ${n0} none 42expect none stat ${n0} flags 43expect 0 rmdir ${n0} 44 45expect 0 mkfifo ${n0} 0644 46expect none stat ${n0} flags
| 59expect 0 chflags ${n0} none 60expect none stat ${n0} flags 61expect 0 rmdir ${n0} 62 63expect 0 mkfifo ${n0} 0644 64expect none stat ${n0} flags
|
47expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 48expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags 49expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE 50expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags 51expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 52expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
| 65expect 0 chflags ${n0} ${allflags} 66expect ${allflags} stat ${n0} flags 67expect 0 chflags ${n0} ${userflags} 68expect ${userflags} stat ${n0} flags 69expect 0 chflags ${n0} ${systemflags} 70expect ${systemflags} stat ${n0} flags
|
53expect 0 chflags ${n0} none 54expect none stat ${n0} flags 55expect 0 unlink ${n0} 56 57expect 0 create ${n0} 0644 58expect 0 symlink ${n0} ${n1} 59expect none stat ${n1} flags 60expect none lstat ${n1} flags
| 71expect 0 chflags ${n0} none 72expect none stat ${n0} flags 73expect 0 unlink ${n0} 74 75expect 0 create ${n0} 0644 76expect 0 symlink ${n0} ${n1} 77expect none stat ${n1} flags 78expect none lstat ${n1} flags
|
61expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 62expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
| 79expect 0 chflags ${n1} ${allflags} 80expect ${allflags} stat ${n1} flags
|
63expect none lstat ${n1} flags
| 81expect none lstat ${n1} flags
|
64expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE 65expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n1} flags
| 82expect 0 chflags ${n1} ${userflags} 83expect ${userflags} stat ${n1} flags
|
66expect none lstat ${n1} flags
| 84expect none lstat ${n1} flags
|
67expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 68expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
| 85expect 0 chflags ${n1} ${systemflags} 86expect ${systemflags} stat ${n1} flags
|
69expect none lstat ${n1} flags 70expect 0 chflags ${n1} none 71expect none stat ${n1} flags 72expect none lstat ${n1} flags 73expect 0 unlink ${n1} 74expect 0 unlink ${n0} 75 76expect 0 create ${n0} 0644 77expect 0 symlink ${n0} ${n1} 78expect none stat ${n1} flags 79expect none lstat ${n1} flags
| 87expect none lstat ${n1} flags 88expect 0 chflags ${n1} none 89expect none stat ${n1} flags 90expect none lstat ${n1} flags 91expect 0 unlink ${n1} 92expect 0 unlink ${n0} 93 94expect 0 create ${n0} 0644 95expect 0 symlink ${n0} ${n1} 96expect none stat ${n1} flags 97expect none lstat ${n1} flags
|
80expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 81expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
| 98expect 0 lchflags ${n1} ${allflags} 99expect ${allflags} lstat ${n1} flags
|
82expect none stat ${n1} flags
| 100expect none stat ${n1} flags
|
83expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE 84expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE lstat ${n1} flags
| 101expect 0 lchflags ${n1} ${userflags} 102expect ${userflags} lstat ${n1} flags
|
85expect none stat ${n1} flags
| 103expect none stat ${n1} flags
|
86expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK 87expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
| 104expect 0 lchflags ${n1} ${systemflags} 105expect ${systemflags} lstat ${n1} flags
|
88expect none stat ${n1} flags 89expect 0 lchflags ${n1} none 90expect none lstat ${n1} flags 91expect none stat ${n1} flags 92expect 0 unlink ${n1} 93expect 0 unlink ${n0} 94 95# successful chflags(2) updates ctime. 96expect 0 create ${n0} 0644
| 106expect none stat ${n1} flags 107expect 0 lchflags ${n1} none 108expect none lstat ${n1} flags 109expect none stat ${n1} flags 110expect 0 unlink ${n1} 111expect 0 unlink ${n0} 112 113# successful chflags(2) updates ctime. 114expect 0 create ${n0} 0644
|
97for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
| 115for flag in `echo ${allflags},none | tr ',' ' '`; do
|
98 ctime1=`${fstest} stat ${n0} ctime` 99 sleep 1 100 expect 0 chflags ${n0} ${flag} 101 ctime2=`${fstest} stat ${n0} ctime` 102 test_check $ctime1 -lt $ctime2 103done 104expect 0 unlink ${n0} 105 106expect 0 mkdir ${n0} 0755
| 116 ctime1=`${fstest} stat ${n0} ctime` 117 sleep 1 118 expect 0 chflags ${n0} ${flag} 119 ctime2=`${fstest} stat ${n0} ctime` 120 test_check $ctime1 -lt $ctime2 121done 122expect 0 unlink ${n0} 123 124expect 0 mkdir ${n0} 0755
|
107for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
| 125for flag in `echo ${allflags},none | tr ',' ' '`; do
|
108 ctime1=`${fstest} stat ${n0} ctime` 109 sleep 1 110 expect 0 chflags ${n0} ${flag} 111 ctime2=`${fstest} stat ${n0} ctime` 112 test_check $ctime1 -lt $ctime2 113done 114expect 0 rmdir ${n0} 115 116expect 0 mkfifo ${n0} 0644
| 126 ctime1=`${fstest} stat ${n0} ctime` 127 sleep 1 128 expect 0 chflags ${n0} ${flag} 129 ctime2=`${fstest} stat ${n0} ctime` 130 test_check $ctime1 -lt $ctime2 131done 132expect 0 rmdir ${n0} 133 134expect 0 mkfifo ${n0} 0644
|
117for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
| 135for flag in `echo ${allflags},none | tr ',' ' '`; do
|
118 ctime1=`${fstest} stat ${n0} ctime` 119 sleep 1 120 expect 0 chflags ${n0} ${flag} 121 ctime2=`${fstest} stat ${n0} ctime` 122 test_check $ctime1 -lt $ctime2 123done 124expect 0 unlink ${n0} 125 126expect 0 symlink ${n1} ${n0}
| 136 ctime1=`${fstest} stat ${n0} ctime` 137 sleep 1 138 expect 0 chflags ${n0} ${flag} 139 ctime2=`${fstest} stat ${n0} ctime` 140 test_check $ctime1 -lt $ctime2 141done 142expect 0 unlink ${n0} 143 144expect 0 symlink ${n1} ${n0}
|
127for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
| 145for flag in `echo ${allflags},none | tr ',' ' '`; do
|
128 ctime1=`${fstest} lstat ${n0} ctime` 129 sleep 1 130 expect 0 lchflags ${n0} ${flag} 131 ctime2=`${fstest} lstat ${n0} ctime` 132 test_check $ctime1 -lt $ctime2 133done 134expect 0 unlink ${n0} 135 136# unsuccessful chflags(2) does not update ctime. 137expect 0 create ${n0} 0644
| 146 ctime1=`${fstest} lstat ${n0} ctime` 147 sleep 1 148 expect 0 lchflags ${n0} ${flag} 149 ctime2=`${fstest} lstat ${n0} ctime` 150 test_check $ctime1 -lt $ctime2 151done 152expect 0 unlink ${n0} 153 154# unsuccessful chflags(2) does not update ctime. 155expect 0 create ${n0} 0644
|
138for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
| 156for flag in `echo ${allflags},none | tr ',' ' '`; do
|
139 ctime1=`${fstest} stat ${n0} ctime` 140 sleep 1 141 expect EPERM -u 65534 chflags ${n0} ${flag} 142 ctime2=`${fstest} stat ${n0} ctime` 143 test_check $ctime1 -eq $ctime2 144done 145expect 0 unlink ${n0} 146 147expect 0 mkdir ${n0} 0755
| 157 ctime1=`${fstest} stat ${n0} ctime` 158 sleep 1 159 expect EPERM -u 65534 chflags ${n0} ${flag} 160 ctime2=`${fstest} stat ${n0} ctime` 161 test_check $ctime1 -eq $ctime2 162done 163expect 0 unlink ${n0} 164 165expect 0 mkdir ${n0} 0755
|
148for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
| 166for flag in `echo ${allflags},none | tr ',' ' '`; do
|
149 ctime1=`${fstest} stat ${n0} ctime` 150 sleep 1 151 expect EPERM -u 65534 chflags ${n0} ${flag} 152 ctime2=`${fstest} stat ${n0} ctime` 153 test_check $ctime1 -eq $ctime2 154done 155expect 0 rmdir ${n0} 156 157expect 0 mkfifo ${n0} 0644
| 167 ctime1=`${fstest} stat ${n0} ctime` 168 sleep 1 169 expect EPERM -u 65534 chflags ${n0} ${flag} 170 ctime2=`${fstest} stat ${n0} ctime` 171 test_check $ctime1 -eq $ctime2 172done 173expect 0 rmdir ${n0} 174 175expect 0 mkfifo ${n0} 0644
|
158for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
| 176for flag in `echo ${allflags},none | tr ',' ' '`; do
|
159 ctime1=`${fstest} stat ${n0} ctime` 160 sleep 1 161 expect EPERM -u 65534 chflags ${n0} ${flag} 162 ctime2=`${fstest} stat ${n0} ctime` 163 test_check $ctime1 -eq $ctime2 164done 165expect 0 unlink ${n0} 166 167expect 0 symlink ${n1} ${n0}
| 177 ctime1=`${fstest} stat ${n0} ctime` 178 sleep 1 179 expect EPERM -u 65534 chflags ${n0} ${flag} 180 ctime2=`${fstest} stat ${n0} ctime` 181 test_check $ctime1 -eq $ctime2 182done 183expect 0 unlink ${n0} 184 185expect 0 symlink ${n1} ${n0}
|
168for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
| 186for flag in `echo ${allflags},none | tr ',' ' '`; do
|
169 ctime1=`${fstest} lstat ${n0} ctime` 170 sleep 1 171 expect EPERM -u 65534 lchflags ${n0} ${flag} 172 ctime2=`${fstest} lstat ${n0} ctime` 173 test_check $ctime1 -eq $ctime2 174done 175expect 0 unlink ${n0} 176 177cd ${cdir} 178expect 0 rmdir ${n2}
| 187 ctime1=`${fstest} lstat ${n0} ctime` 188 sleep 1 189 expect EPERM -u 65534 lchflags ${n0} ${flag} 190 ctime2=`${fstest} lstat ${n0} ctime` 191 test_check $ctime1 -eq $ctime2 192done 193expect 0 unlink ${n0} 194 195cd ${cdir} 196expect 0 rmdir ${n2}
|