Ignore machine-check MSRs
[freebsd-src/fkvm-freebsd.git] / tools / regression / fstest / tests / chflags / 00.t
blobaf144b08e1bfa8f41a5e68d06c413afed52e2a3c
1 #!/bin/sh
2 # $FreeBSD$
4 desc="chflags changes flags"
6 dir=`dirname $0`
7 . ${dir}/../misc.sh
9 require chflags
11 echo "1..191"
13 n0=`namegen`
14 n1=`namegen`
15 n2=`namegen`
17 expect 0 mkdir ${n2} 0755
18 cdir=`pwd`
19 cd ${n2}
21 expect 0 create ${n0} 0644
22 expect none stat ${n0} flags
23 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
24 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
25 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
26 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
27 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
28 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
29 expect 0 chflags ${n0} none
30 expect none stat ${n0} flags
31 expect 0 unlink ${n0}
33 expect 0 mkdir ${n0} 0644
34 expect none stat ${n0} flags
35 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
36 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
37 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
38 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
39 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
40 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
41 expect 0 chflags ${n0} none
42 expect none stat ${n0} flags
43 expect 0 rmdir ${n0}
45 expect 0 mkfifo ${n0} 0644
46 expect none stat ${n0} flags
47 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
48 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
49 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
50 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
51 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
52 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
53 expect 0 chflags ${n0} none
54 expect none stat ${n0} flags
55 expect 0 unlink ${n0}
57 expect 0 create ${n0} 0644
58 expect 0 symlink ${n0} ${n1}
59 expect none stat ${n1} flags
60 expect none lstat ${n1} flags
61 expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
62 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
63 expect none lstat ${n1} flags
64 expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
65 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n1} flags
66 expect none lstat ${n1} flags
67 expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
68 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
69 expect none lstat ${n1} flags
70 expect 0 chflags ${n1} none
71 expect none stat ${n1} flags
72 expect none lstat ${n1} flags
73 expect 0 unlink ${n1}
74 expect 0 unlink ${n0}
76 expect 0 create ${n0} 0644
77 expect 0 symlink ${n0} ${n1}
78 expect none stat ${n1} flags
79 expect none lstat ${n1} flags
80 expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
81 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
82 expect none stat ${n1} flags
83 expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
84 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE lstat ${n1} flags
85 expect none stat ${n1} flags
86 expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
87 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
88 expect none stat ${n1} flags
89 expect 0 lchflags ${n1} none
90 expect none lstat ${n1} flags
91 expect none stat ${n1} flags
92 expect 0 unlink ${n1}
93 expect 0 unlink ${n0}
95 # successful chflags(2) updates ctime.
96 expect 0 create ${n0} 0644
97 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; 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
103 done
104 expect 0 unlink ${n0}
106 expect 0 mkdir ${n0} 0755
107 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; 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
113 done
114 expect 0 rmdir ${n0}
116 expect 0 mkfifo ${n0} 0644
117 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; 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
123 done
124 expect 0 unlink ${n0}
126 expect 0 symlink ${n1} ${n0}
127 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; 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
133 done
134 expect 0 unlink ${n0}
136 # unsuccessful chflags(2) does not update ctime.
137 expect 0 create ${n0} 0644
138 for flag in UF_IMMUTABLE SF_IMMUTABLE none; 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
144 done
145 expect 0 unlink ${n0}
147 expect 0 mkdir ${n0} 0755
148 for flag in UF_IMMUTABLE SF_IMMUTABLE none; 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 expect 0 rmdir ${n0}
157 expect 0 mkfifo ${n0} 0644
158 for flag in UF_IMMUTABLE SF_IMMUTABLE none; 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
164 done
165 expect 0 unlink ${n0}
167 expect 0 symlink ${n1} ${n0}
168 for flag in UF_IMMUTABLE SF_IMMUTABLE none; 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
174 done
175 expect 0 unlink ${n0}
177 cd ${cdir}
178 expect 0 rmdir ${n2}