4 desc="chflags changes flags"
17 expect 0 mkdir ${n2} 0755
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
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
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
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
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
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`
100 expect 0 chflags ${n0} ${flag}
101 ctime2=`${fstest} stat ${n0} ctime`
102 test_check $ctime1 -lt $ctime2
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`
110 expect 0 chflags ${n0} ${flag}
111 ctime2=`${fstest} stat ${n0} ctime`
112 test_check $ctime1 -lt $ctime2
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`
120 expect 0 chflags ${n0} ${flag}
121 ctime2=`${fstest} stat ${n0} ctime`
122 test_check $ctime1 -lt $ctime2
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`
130 expect 0 lchflags ${n0} ${flag}
131 ctime2=`${fstest} lstat ${n0} ctime`
132 test_check $ctime1 -lt $ctime2
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`
141 expect EPERM -u 65534 chflags ${n0} ${flag}
142 ctime2=`${fstest} stat ${n0} ctime`
143 test_check $ctime1 -eq $ctime2
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`
151 expect EPERM -u 65534 chflags ${n0} ${flag}
152 ctime2=`${fstest} stat ${n0} ctime`
153 test_check $ctime1 -eq $ctime2
157 expect 0 mkfifo ${n0} 0644
158 for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
159 ctime1=`${fstest} stat ${n0} ctime`
161 expect EPERM -u 65534 chflags ${n0} ${flag}
162 ctime2=`${fstest} stat ${n0} ctime`
163 test_check $ctime1 -eq $ctime2
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`
171 expect EPERM -u 65534 lchflags ${n0} ${flag}
172 ctime2=`${fstest} lstat ${n0} ctime`
173 test_check $ctime1 -eq $ctime2
175 expect 0 unlink ${n0}