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}