00.t (185173) | 00.t (211180) |
---|---|
1#!/bin/sh | 1#!/bin/sh |
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 185173 2008-11-22 13:27:15Z pjd $ | 2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 211180 2010-08-11 16:34:44Z pjd $ |
3 4desc="chflags changes flags" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9require chflags 10 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" 16 | 3 4desc="chflags changes flags" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9require chflags 10 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" 16 |
17 echo "1..247" | 17 echo "1..780" |
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 | 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" | 24 echo "1..520" |
25 ;; 26*) 27 quick_exit 28 ;; 29esac 30 31n0=`namegen` 32n1=`namegen` 33n2=`namegen` 34 35expect 0 mkdir ${n2} 0755 36cdir=`pwd` 37cd ${n2} 38 | 25 ;; 26*) 27 quick_exit 28 ;; 29esac 30 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 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 47expect 0 chflags ${n0} none 48expect none stat ${n0} flags 49expect 0 unlink ${n0} | 39for type in regular dir fifo block char socket; do 40 create_file ${type} ${n0} 0 0 41 expect none stat ${n0} flags 42 expect 0 chflags ${n0} ${allflags} 43 expect ${allflags} stat ${n0} flags 44 expect 0 chflags ${n0} ${userflags} 45 expect ${userflags} stat ${n0} flags 46 expect 0 chflags ${n0} ${systemflags} 47 expect ${systemflags} stat ${n0} flags 48 expect 0 chflags ${n0} none 49 expect none stat ${n0} flags 50 if [ "${type}" = "dir" ]; then 51 expect 0 rmdir ${n0} 52 else 53 expect 0 unlink ${n0} 54 fi |
50 | 55 |
51expect 0 mkdir ${n0} 0644 52expect none 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 59expect 0 chflags ${n0} none 60expect none stat ${n0} flags 61expect 0 rmdir ${n0} | 56 create_file ${type} ${n0} 0 0 57 expect none stat ${n0} flags 58 expect 0 lchflags ${n0} ${allflags} 59 expect ${allflags} stat ${n0} flags 60 expect 0 lchflags ${n0} ${userflags} 61 expect ${userflags} stat ${n0} flags 62 expect 0 lchflags ${n0} ${systemflags} 63 expect ${systemflags} stat ${n0} flags 64 expect 0 lchflags ${n0} none 65 expect none stat ${n0} flags 66 if [ "${type}" = "dir" ]; then 67 expect 0 rmdir ${n0} 68 else 69 expect 0 unlink ${n0} 70 fi 71done |
62 | 72 |
63expect 0 mkfifo ${n0} 0644 64expect none 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 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 79expect 0 chflags ${n1} ${allflags} 80expect ${allflags} stat ${n1} flags 81expect none lstat ${n1} flags 82expect 0 chflags ${n1} ${userflags} --- 23 unchanged lines hidden (view full) --- 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. | 73expect 0 create ${n0} 0644 74expect 0 symlink ${n0} ${n1} 75expect none stat ${n1} flags 76expect none lstat ${n1} flags 77expect 0 chflags ${n1} ${allflags} 78expect ${allflags} stat ${n1} flags 79expect none lstat ${n1} flags 80expect 0 chflags ${n1} ${userflags} --- 23 unchanged lines hidden (view full) --- 104expect none stat ${n1} flags 105expect 0 lchflags ${n1} none 106expect none lstat ${n1} flags 107expect none stat ${n1} flags 108expect 0 unlink ${n1} 109expect 0 unlink ${n0} 110 111# successful chflags(2) updates ctime. |
114expect 0 create ${n0} 0644 115for flag in `echo ${allflags},none | tr ',' ' '`; do 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} | 112for type in regular dir fifo block char socket symlink; do 113 if [ "${type}" != "symlink" ]; then 114 create_file ${type} ${n0} 0 0 115 for flag in `echo ${allflags},none | tr ',' ' '`; do 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 121 done 122 if [ "${type}" = "dir" ]; then 123 expect 0 rmdir ${n0} 124 else 125 expect 0 unlink ${n0} 126 fi 127 fi |
123 | 128 |
124expect 0 mkdir ${n0} 0755 125for flag in `echo ${allflags},none | tr ',' ' '`; do 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 | 129 create_file ${type} ${n0} 0 0 130 for flag in `echo ${allflags},none | tr ',' ' '`; do 131 ctime1=`${fstest} lstat ${n0} ctime` 132 sleep 1 133 expect 0 lchflags ${n0} ${flag} 134 ctime2=`${fstest} lstat ${n0} ctime` 135 test_check $ctime1 -lt $ctime2 136 done 137 if [ "${type}" = "dir" ]; then 138 expect 0 rmdir ${n0} 139 else 140 expect 0 unlink ${n0} 141 fi |
131done | 142done |
132expect 0 rmdir ${n0} | |
133 | 143 |
134expect 0 mkfifo ${n0} 0644 135for flag in `echo ${allflags},none | tr ',' ' '`; do 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} 145for flag in `echo ${allflags},none | tr ',' ' '`; do 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. | 144# unsuccessful chflags(2) does not update ctime. |
155expect 0 create ${n0} 0644 156for flag in `echo ${allflags},none | tr ',' ' '`; do 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} | 145for type in regular dir fifo block char socket symlink; do 146 if [ "${type}" != "symlink" ]; then 147 create_file ${type} ${n0} 0 0 148 for 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 154 done 155 if [ "${type}" = "dir" ]; then 156 expect 0 rmdir ${n0} 157 else 158 expect 0 unlink ${n0} 159 fi 160 fi |
164 | 161 |
165expect 0 mkdir ${n0} 0755 166for flag in `echo ${allflags},none | tr ',' ' '`; do 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 | 162 create_file ${type} ${n0} 0 0 163 for flag in `echo ${allflags},none | tr ',' ' '`; do 164 ctime1=`${fstest} lstat ${n0} ctime` 165 sleep 1 166 expect EPERM -u 65534 lchflags ${n0} ${flag} 167 ctime2=`${fstest} lstat ${n0} ctime` 168 test_check $ctime1 -eq $ctime2 169 done 170 if [ "${type}" = "dir" ]; then 171 expect 0 rmdir ${n0} 172 else 173 expect 0 unlink ${n0} 174 fi |
172done | 175done |
173expect 0 rmdir ${n0} | |
174 | 176 |
175expect 0 mkfifo ${n0} 0644 176for flag in `echo ${allflags},none | tr ',' ' '`; do 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} 186for flag in `echo ${allflags},none | tr ',' ' '`; do 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} | 177cd ${cdir} 178expect 0 rmdir ${n2} |