4 desc="chflags changes flags"
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"
20 allflags="UF_NODUMP,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
22 systemflags="SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
35 expect 0 mkdir ${n2} 0755
39 expect 0 create ${n0} 0644
40 expect none stat ${n0} flags
41 expect 0 chflags ${n0} ${allflags}
42 expect ${allflags} stat ${n0} flags
43 expect 0 chflags ${n0} ${userflags}
44 expect ${userflags} stat ${n0} flags
45 expect 0 chflags ${n0} ${systemflags}
46 expect ${systemflags} stat ${n0} flags
47 expect 0 chflags ${n0} none
48 expect none stat ${n0} flags
51 expect 0 mkdir ${n0} 0644
52 expect none stat ${n0} flags
53 expect 0 chflags ${n0} ${allflags}
54 expect ${allflags} stat ${n0} flags
55 expect 0 chflags ${n0} ${userflags}
56 expect ${userflags} stat ${n0} flags
57 expect 0 chflags ${n0} ${systemflags}
58 expect ${systemflags} stat ${n0} flags
59 expect 0 chflags ${n0} none
60 expect none stat ${n0} flags
63 expect 0 mkfifo ${n0} 0644
64 expect none stat ${n0} flags
65 expect 0 chflags ${n0} ${allflags}
66 expect ${allflags} stat ${n0} flags
67 expect 0 chflags ${n0} ${userflags}
68 expect ${userflags} stat ${n0} flags
69 expect 0 chflags ${n0} ${systemflags}
70 expect ${systemflags} stat ${n0} flags
71 expect 0 chflags ${n0} none
72 expect none stat ${n0} flags
75 expect 0 create ${n0} 0644
76 expect 0 symlink ${n0} ${n1}
77 expect none stat ${n1} flags
78 expect none lstat ${n1} flags
79 expect 0 chflags ${n1} ${allflags}
80 expect ${allflags} stat ${n1} flags
81 expect none lstat ${n1} flags
82 expect 0 chflags ${n1} ${userflags}
83 expect ${userflags} stat ${n1} flags
84 expect none lstat ${n1} flags
85 expect 0 chflags ${n1} ${systemflags}
86 expect ${systemflags} stat ${n1} flags
87 expect none lstat ${n1} flags
88 expect 0 chflags ${n1} none
89 expect none stat ${n1} flags
90 expect none lstat ${n1} flags
94 expect 0 create ${n0} 0644
95 expect 0 symlink ${n0} ${n1}
96 expect none stat ${n1} flags
97 expect none lstat ${n1} flags
98 expect 0 lchflags ${n1} ${allflags}
99 expect ${allflags} lstat ${n1} flags
100 expect none stat ${n1} flags
101 expect 0 lchflags ${n1} ${userflags}
102 expect ${userflags} lstat ${n1} flags
103 expect none stat ${n1} flags
104 expect 0 lchflags ${n1} ${systemflags}
105 expect ${systemflags} lstat ${n1} flags
106 expect none stat ${n1} flags
107 expect 0 lchflags ${n1} none
108 expect none lstat ${n1} flags
109 expect none stat ${n1} flags
110 expect 0 unlink ${n1}
111 expect 0 unlink ${n0}
113 # successful chflags(2) updates ctime.
114 expect 0 create ${n0} 0644
115 for flag in `echo ${allflags},none | tr ',' ' '`; do
116 ctime1=`${fstest} stat ${n0} ctime`
118 expect 0 chflags ${n0} ${flag}
119 ctime2=`${fstest} stat ${n0} ctime`
120 test_check $ctime1 -lt $ctime2
122 expect 0 unlink ${n0}
124 expect 0 mkdir ${n0} 0755
125 for flag in `echo ${allflags},none | tr ',' ' '`; do
126 ctime1=`${fstest} stat ${n0} ctime`
128 expect 0 chflags ${n0} ${flag}
129 ctime2=`${fstest} stat ${n0} ctime`
130 test_check $ctime1 -lt $ctime2
134 expect 0 mkfifo ${n0} 0644
135 for flag in `echo ${allflags},none | tr ',' ' '`; do
136 ctime1=`${fstest} stat ${n0} ctime`
138 expect 0 chflags ${n0} ${flag}
139 ctime2=`${fstest} stat ${n0} ctime`
140 test_check $ctime1 -lt $ctime2
142 expect 0 unlink ${n0}
144 expect 0 symlink ${n1} ${n0}
145 for flag in `echo ${allflags},none | tr ',' ' '`; do
146 ctime1=`${fstest} lstat ${n0} ctime`
148 expect 0 lchflags ${n0} ${flag}
149 ctime2=`${fstest} lstat ${n0} ctime`
150 test_check $ctime1 -lt $ctime2
152 expect 0 unlink ${n0}
154 # unsuccessful chflags(2) does not update ctime.
155 expect 0 create ${n0} 0644
156 for flag in `echo ${allflags},none | tr ',' ' '`; do
157 ctime1=`${fstest} stat ${n0} ctime`
159 expect EPERM -u 65534 chflags ${n0} ${flag}
160 ctime2=`${fstest} stat ${n0} ctime`
161 test_check $ctime1 -eq $ctime2
163 expect 0 unlink ${n0}
165 expect 0 mkdir ${n0} 0755
166 for flag in `echo ${allflags},none | tr ',' ' '`; do
167 ctime1=`${fstest} stat ${n0} ctime`
169 expect EPERM -u 65534 chflags ${n0} ${flag}
170 ctime2=`${fstest} stat ${n0} ctime`
171 test_check $ctime1 -eq $ctime2
175 expect 0 mkfifo ${n0} 0644
176 for flag in `echo ${allflags},none | tr ',' ' '`; do
177 ctime1=`${fstest} stat ${n0} ctime`
179 expect EPERM -u 65534 chflags ${n0} ${flag}
180 ctime2=`${fstest} stat ${n0} ctime`
181 test_check $ctime1 -eq $ctime2
183 expect 0 unlink ${n0}
185 expect 0 symlink ${n1} ${n0}
186 for flag in `echo ${allflags},none | tr ',' ' '`; do
187 ctime1=`${fstest} lstat ${n0} ctime`
189 expect EPERM -u 65534 lchflags ${n0} ${flag}
190 ctime2=`${fstest} lstat ${n0} ctime`
191 test_check $ctime1 -eq $ctime2
193 expect 0 unlink ${n0}