2 # $FreeBSD: src/tools/regression/fstest/tests/chflags/00.t,v 1.1 2007/01/17 01:42:08 pjd Exp $
4 desc="chflags changes flags"
10 expect 0 mkdir ${n2} 0755
14 expect 0 create ${n0} 0644
15 expect none stat ${n0} flags
16 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
17 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
18 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE
19 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags
20 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
21 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
22 expect 0 chflags ${n0} none
23 expect none stat ${n0} flags
26 expect 0 mkdir ${n0} 0644
27 expect none stat ${n0} flags
28 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
29 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
30 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE
31 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags
32 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
33 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
34 expect 0 chflags ${n0} none
35 expect none stat ${n0} flags
38 expect 0 mkfifo ${n0} 0644
39 expect none stat ${n0} flags
40 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
41 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
42 expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE
43 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n0} flags
44 expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
45 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n0} flags
46 expect 0 chflags ${n0} none
47 expect none stat ${n0} flags
50 expect 0 create ${n0} 0644
51 expect 0 symlink ${n0} ${n1}
52 expect none stat ${n1} flags
53 expect none lstat ${n1} flags
54 expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
55 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n1} flags
56 expect none lstat ${n1} flags
57 expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE
58 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE stat ${n1} flags
59 expect none lstat ${n1} flags
60 expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
61 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND stat ${n1} flags
62 expect none lstat ${n1} flags
63 expect 0 chflags ${n1} none
64 expect none stat ${n1} flags
65 expect none lstat ${n1} flags
69 expect 0 create ${n0} 0644
70 expect 0 symlink ${n0} ${n1}
71 expect none stat ${n1} flags
72 expect none lstat ${n1} flags
73 expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
74 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND lstat ${n1} flags
75 expect none stat ${n1} flags
76 expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE
77 expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_OPAQUE lstat ${n1} flags
78 expect none stat ${n1} flags
79 expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND
80 expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND lstat ${n1} flags
81 expect none stat ${n1} flags
82 expect 0 lchflags ${n1} none
83 expect none lstat ${n1} flags
84 expect none stat ${n1} flags
88 # successful chflags(2) updates ctime.
89 expect 0 create ${n0} 0644
90 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do
91 ctime1=`${FSTEST} stat ${n0} ctime`
93 expect 0 chflags ${n0} ${flag}
94 ctime2=`${FSTEST} stat ${n0} ctime`
95 test_check $ctime1 -lt $ctime2
99 expect 0 mkdir ${n0} 0755
100 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do
101 ctime1=`${FSTEST} stat ${n0} ctime`
103 expect 0 chflags ${n0} ${flag}
104 ctime2=`${FSTEST} stat ${n0} ctime`
105 test_check $ctime1 -lt $ctime2
109 expect 0 mkfifo ${n0} 0644
110 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do
111 ctime1=`${FSTEST} stat ${n0} ctime`
113 expect 0 chflags ${n0} ${flag}
114 ctime2=`${FSTEST} stat ${n0} ctime`
115 test_check $ctime1 -lt $ctime2
117 expect 0 unlink ${n0}
119 expect 0 symlink ${n1} ${n0}
120 for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND none; do
121 ctime1=`${FSTEST} lstat ${n0} ctime`
123 expect 0 lchflags ${n0} ${flag}
124 ctime2=`${FSTEST} lstat ${n0} ctime`
125 test_check $ctime1 -lt $ctime2
127 expect 0 unlink ${n0}
129 # unsuccessful chflags(2) does not update ctime.
130 expect 0 create ${n0} 0644
131 for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
132 ctime1=`${FSTEST} stat ${n0} ctime`
134 expect EPERM -u 65534 chflags ${n0} ${flag}
135 ctime2=`${FSTEST} stat ${n0} ctime`
136 test_check $ctime1 -eq $ctime2
138 expect 0 unlink ${n0}
140 expect 0 mkdir ${n0} 0755
141 for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
142 ctime1=`${FSTEST} stat ${n0} ctime`
144 expect EPERM -u 65534 chflags ${n0} ${flag}
145 ctime2=`${FSTEST} stat ${n0} ctime`
146 test_check $ctime1 -eq $ctime2
150 expect 0 mkfifo ${n0} 0644
151 for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
152 ctime1=`${FSTEST} stat ${n0} ctime`
154 expect EPERM -u 65534 chflags ${n0} ${flag}
155 ctime2=`${FSTEST} stat ${n0} ctime`
156 test_check $ctime1 -eq $ctime2
158 expect 0 unlink ${n0}
160 expect 0 symlink ${n1} ${n0}
161 for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
162 ctime1=`${FSTEST} lstat ${n0} ctime`
164 expect EPERM -u 65534 lchflags ${n0} ${flag}
165 ctime2=`${FSTEST} lstat ${n0} ctime`
166 test_check $ctime1 -eq $ctime2
168 expect 0 unlink ${n0}