Deleted Added
full compact
00.t (166065) 00.t (185173)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 166065 2007-01-17 01:42:12Z pjd $
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 185173 2008-11-22 13:27:15Z pjd $
3
4desc="chflags changes flags"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
3
4desc="chflags changes flags"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
11echo "1..191"
11case "${os}:${fs}" in
12FreeBSD:UFS)
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"
12
16
17 echo "1..247"
18 ;;
19FreeBSD:ZFS)
20 allflags="UF_NODUMP,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
21 userflags="UF_NODUMP"
22 systemflags="SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK"
23
24 echo "1..167"
25 ;;
26*)
27 quick_exit
28 ;;
29esac
30
13n0=`namegen`
14n1=`namegen`
15n2=`namegen`
16
17expect 0 mkdir ${n2} 0755
18cdir=`pwd`
19cd ${n2}
20
21expect 0 create ${n0} 0644
22expect none stat ${n0} flags
31n0=`namegen`
32n1=`namegen`
33n2=`namegen`
34
35expect 0 mkdir ${n2} 0755
36cdir=`pwd`
37cd ${n2}
38
39expect 0 create ${n0} 0644
40expect none stat ${n0} flags
23expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
24expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
25expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
26expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
27expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
28expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
41expect 0 chflags ${n0} ${allflags}
42expect ${allflags} stat ${n0} flags
43expect 0 chflags ${n0} ${userflags}
44expect ${userflags} stat ${n0} flags
45expect 0 chflags ${n0} ${systemflags}
46expect ${systemflags} stat ${n0} flags
29expect 0 chflags ${n0} none
30expect none stat ${n0} flags
31expect 0 unlink ${n0}
32
33expect 0 mkdir ${n0} 0644
34expect none stat ${n0} flags
47expect 0 chflags ${n0} none
48expect none stat ${n0} flags
49expect 0 unlink ${n0}
50
51expect 0 mkdir ${n0} 0644
52expect none stat ${n0} flags
35expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
36expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
37expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
38expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
39expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
40expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
53expect 0 chflags ${n0} ${allflags}
54expect ${allflags} stat ${n0} flags
55expect 0 chflags ${n0} ${userflags}
56expect ${userflags} stat ${n0} flags
57expect 0 chflags ${n0} ${systemflags}
58expect ${systemflags} stat ${n0} flags
41expect 0 chflags ${n0} none
42expect none stat ${n0} flags
43expect 0 rmdir ${n0}
44
45expect 0 mkfifo ${n0} 0644
46expect none stat ${n0} flags
59expect 0 chflags ${n0} none
60expect none stat ${n0} flags
61expect 0 rmdir ${n0}
62
63expect 0 mkfifo ${n0} 0644
64expect none stat ${n0} flags
47expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
48expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
49expect 0 chflags ${n0} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
50expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n0} flags
51expect 0 chflags ${n0} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
52expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n0} flags
65expect 0 chflags ${n0} ${allflags}
66expect ${allflags} stat ${n0} flags
67expect 0 chflags ${n0} ${userflags}
68expect ${userflags} stat ${n0} flags
69expect 0 chflags ${n0} ${systemflags}
70expect ${systemflags} stat ${n0} flags
53expect 0 chflags ${n0} none
54expect none stat ${n0} flags
55expect 0 unlink ${n0}
56
57expect 0 create ${n0} 0644
58expect 0 symlink ${n0} ${n1}
59expect none stat ${n1} flags
60expect none lstat ${n1} flags
71expect 0 chflags ${n0} none
72expect none stat ${n0} flags
73expect 0 unlink ${n0}
74
75expect 0 create ${n0} 0644
76expect 0 symlink ${n0} ${n1}
77expect none stat ${n1} flags
78expect none lstat ${n1} flags
61expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
62expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
79expect 0 chflags ${n1} ${allflags}
80expect ${allflags} stat ${n1} flags
63expect none lstat ${n1} flags
81expect none lstat ${n1} flags
64expect 0 chflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
65expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE stat ${n1} flags
82expect 0 chflags ${n1} ${userflags}
83expect ${userflags} stat ${n1} flags
66expect none lstat ${n1} flags
84expect none lstat ${n1} flags
67expect 0 chflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
68expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK stat ${n1} flags
85expect 0 chflags ${n1} ${systemflags}
86expect ${systemflags} stat ${n1} flags
69expect none lstat ${n1} flags
70expect 0 chflags ${n1} none
71expect none stat ${n1} flags
72expect none lstat ${n1} flags
73expect 0 unlink ${n1}
74expect 0 unlink ${n0}
75
76expect 0 create ${n0} 0644
77expect 0 symlink ${n0} ${n1}
78expect none stat ${n1} flags
79expect none lstat ${n1} flags
87expect none lstat ${n1} flags
88expect 0 chflags ${n1} none
89expect none stat ${n1} flags
90expect none lstat ${n1} flags
91expect 0 unlink ${n1}
92expect 0 unlink ${n0}
93
94expect 0 create ${n0} 0644
95expect 0 symlink ${n0} ${n1}
96expect none stat ${n1} flags
97expect none lstat ${n1} flags
80expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
81expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE,SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
98expect 0 lchflags ${n1} ${allflags}
99expect ${allflags} lstat ${n1} flags
82expect none stat ${n1} flags
100expect none stat ${n1} flags
83expect 0 lchflags ${n1} UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE
84expect UF_NODUMP,UF_IMMUTABLE,UF_APPEND,UF_NOUNLINK,UF_OPAQUE lstat ${n1} flags
101expect 0 lchflags ${n1} ${userflags}
102expect ${userflags} lstat ${n1} flags
85expect none stat ${n1} flags
103expect none stat ${n1} flags
86expect 0 lchflags ${n1} SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK
87expect SF_ARCHIVED,SF_IMMUTABLE,SF_APPEND,SF_NOUNLINK lstat ${n1} flags
104expect 0 lchflags ${n1} ${systemflags}
105expect ${systemflags} lstat ${n1} flags
88expect none stat ${n1} flags
89expect 0 lchflags ${n1} none
90expect none lstat ${n1} flags
91expect none stat ${n1} flags
92expect 0 unlink ${n1}
93expect 0 unlink ${n0}
94
95# successful chflags(2) updates ctime.
96expect 0 create ${n0} 0644
106expect none stat ${n1} flags
107expect 0 lchflags ${n1} none
108expect none lstat ${n1} flags
109expect none stat ${n1} flags
110expect 0 unlink ${n1}
111expect 0 unlink ${n0}
112
113# successful chflags(2) updates ctime.
114expect 0 create ${n0} 0644
97for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
115for flag in `echo ${allflags},none | tr ',' ' '`; 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
103done
104expect 0 unlink ${n0}
105
106expect 0 mkdir ${n0} 0755
116 ctime1=`${fstest} stat ${n0} ctime`
117 sleep 1
118 expect 0 chflags ${n0} ${flag}
119 ctime2=`${fstest} stat ${n0} ctime`
120 test_check $ctime1 -lt $ctime2
121done
122expect 0 unlink ${n0}
123
124expect 0 mkdir ${n0} 0755
107for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
125for flag in `echo ${allflags},none | tr ',' ' '`; 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
113done
114expect 0 rmdir ${n0}
115
116expect 0 mkfifo ${n0} 0644
126 ctime1=`${fstest} stat ${n0} ctime`
127 sleep 1
128 expect 0 chflags ${n0} ${flag}
129 ctime2=`${fstest} stat ${n0} ctime`
130 test_check $ctime1 -lt $ctime2
131done
132expect 0 rmdir ${n0}
133
134expect 0 mkfifo ${n0} 0644
117for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
135for flag in `echo ${allflags},none | tr ',' ' '`; 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
123done
124expect 0 unlink ${n0}
125
126expect 0 symlink ${n1} ${n0}
136 ctime1=`${fstest} stat ${n0} ctime`
137 sleep 1
138 expect 0 chflags ${n0} ${flag}
139 ctime2=`${fstest} stat ${n0} ctime`
140 test_check $ctime1 -lt $ctime2
141done
142expect 0 unlink ${n0}
143
144expect 0 symlink ${n1} ${n0}
127for flag in UF_NODUMP UF_IMMUTABLE UF_APPEND UF_NOUNLINK UF_OPAQUE SF_ARCHIVED SF_IMMUTABLE SF_APPEND SF_NOUNLINK none; do
145for flag in `echo ${allflags},none | tr ',' ' '`; 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
133done
134expect 0 unlink ${n0}
135
136# unsuccessful chflags(2) does not update ctime.
137expect 0 create ${n0} 0644
146 ctime1=`${fstest} lstat ${n0} ctime`
147 sleep 1
148 expect 0 lchflags ${n0} ${flag}
149 ctime2=`${fstest} lstat ${n0} ctime`
150 test_check $ctime1 -lt $ctime2
151done
152expect 0 unlink ${n0}
153
154# unsuccessful chflags(2) does not update ctime.
155expect 0 create ${n0} 0644
138for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
156for flag in `echo ${allflags},none | tr ',' ' '`; 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
144done
145expect 0 unlink ${n0}
146
147expect 0 mkdir ${n0} 0755
157 ctime1=`${fstest} stat ${n0} ctime`
158 sleep 1
159 expect EPERM -u 65534 chflags ${n0} ${flag}
160 ctime2=`${fstest} stat ${n0} ctime`
161 test_check $ctime1 -eq $ctime2
162done
163expect 0 unlink ${n0}
164
165expect 0 mkdir ${n0} 0755
148for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
166for flag in `echo ${allflags},none | tr ',' ' '`; 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
154done
155expect 0 rmdir ${n0}
156
157expect 0 mkfifo ${n0} 0644
167 ctime1=`${fstest} stat ${n0} ctime`
168 sleep 1
169 expect EPERM -u 65534 chflags ${n0} ${flag}
170 ctime2=`${fstest} stat ${n0} ctime`
171 test_check $ctime1 -eq $ctime2
172done
173expect 0 rmdir ${n0}
174
175expect 0 mkfifo ${n0} 0644
158for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
176for flag in `echo ${allflags},none | tr ',' ' '`; 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
164done
165expect 0 unlink ${n0}
166
167expect 0 symlink ${n1} ${n0}
177 ctime1=`${fstest} stat ${n0} ctime`
178 sleep 1
179 expect EPERM -u 65534 chflags ${n0} ${flag}
180 ctime2=`${fstest} stat ${n0} ctime`
181 test_check $ctime1 -eq $ctime2
182done
183expect 0 unlink ${n0}
184
185expect 0 symlink ${n1} ${n0}
168for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
186for flag in `echo ${allflags},none | tr ',' ' '`; 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
174done
175expect 0 unlink ${n0}
176
177cd ${cdir}
178expect 0 rmdir ${n2}
187 ctime1=`${fstest} lstat ${n0} ctime`
188 sleep 1
189 expect EPERM -u 65534 lchflags ${n0} ${flag}
190 ctime2=`${fstest} lstat ${n0} ctime`
191 test_check $ctime1 -eq $ctime2
192done
193expect 0 unlink ${n0}
194
195cd ${cdir}
196expect 0 rmdir ${n2}