Deleted Added
full compact
00.t (211180) 00.t (211186)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 211180 2010-08-11 16:34:44Z pjd $
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/00.t 211186 2010-08-11 17:34:58Z pjd $
3
4desc="chflags changes flags"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
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"
16
3
4desc="chflags changes flags"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
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"
16
17 echo "1..780"
17 echo "1..742"
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
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..520"
24 echo "1..482"
25 ;;
26*)
27 quick_exit
28 ;;
29esac
30
31n0=`namegen`
32n1=`namegen`
33n2=`namegen`
34
35expect 0 mkdir ${n2} 0755
36cdir=`pwd`
37cd ${n2}
38
39for type in regular dir fifo block char socket; do
25 ;;
26*)
27 quick_exit
28 ;;
29esac
30
31n0=`namegen`
32n1=`namegen`
33n2=`namegen`
34
35expect 0 mkdir ${n2} 0755
36cdir=`pwd`
37cd ${n2}
38
39for type in regular dir fifo block char socket; do
40 create_file ${type} ${n0} 0 0
40 create_file ${type} ${n0}
41 expect none stat ${n0} flags
42 expect 0 chflags ${n0} ${allflags}
43 expect ${allflags} stat ${n0} flags
44 expect 0 chflags ${n0} ${userflags}
45 expect ${userflags} stat ${n0} flags
46 expect 0 chflags ${n0} ${systemflags}
47 expect ${systemflags} stat ${n0} flags
48 expect 0 chflags ${n0} none
49 expect none stat ${n0} flags
50 if [ "${type}" = "dir" ]; then
51 expect 0 rmdir ${n0}
52 else
53 expect 0 unlink ${n0}
54 fi
55
41 expect none stat ${n0} flags
42 expect 0 chflags ${n0} ${allflags}
43 expect ${allflags} stat ${n0} flags
44 expect 0 chflags ${n0} ${userflags}
45 expect ${userflags} stat ${n0} flags
46 expect 0 chflags ${n0} ${systemflags}
47 expect ${systemflags} stat ${n0} flags
48 expect 0 chflags ${n0} none
49 expect none stat ${n0} flags
50 if [ "${type}" = "dir" ]; then
51 expect 0 rmdir ${n0}
52 else
53 expect 0 unlink ${n0}
54 fi
55
56 create_file ${type} ${n0} 0 0
56 create_file ${type} ${n0}
57 expect none stat ${n0} flags
58 expect 0 lchflags ${n0} ${allflags}
59 expect ${allflags} stat ${n0} flags
60 expect 0 lchflags ${n0} ${userflags}
61 expect ${userflags} stat ${n0} flags
62 expect 0 lchflags ${n0} ${systemflags}
63 expect ${systemflags} stat ${n0} flags
64 expect 0 lchflags ${n0} none

--- 41 unchanged lines hidden (view full) ---

106expect none lstat ${n1} flags
107expect none stat ${n1} flags
108expect 0 unlink ${n1}
109expect 0 unlink ${n0}
110
111# successful chflags(2) updates ctime.
112for type in regular dir fifo block char socket symlink; do
113 if [ "${type}" != "symlink" ]; then
57 expect none stat ${n0} flags
58 expect 0 lchflags ${n0} ${allflags}
59 expect ${allflags} stat ${n0} flags
60 expect 0 lchflags ${n0} ${userflags}
61 expect ${userflags} stat ${n0} flags
62 expect 0 lchflags ${n0} ${systemflags}
63 expect ${systemflags} stat ${n0} flags
64 expect 0 lchflags ${n0} none

--- 41 unchanged lines hidden (view full) ---

106expect none lstat ${n1} flags
107expect none stat ${n1} flags
108expect 0 unlink ${n1}
109expect 0 unlink ${n0}
110
111# successful chflags(2) updates ctime.
112for type in regular dir fifo block char socket symlink; do
113 if [ "${type}" != "symlink" ]; then
114 create_file ${type} ${n0} 0 0
114 create_file ${type} ${n0}
115 for flag in `echo ${allflags},none | tr ',' ' '`; do
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
121 done
122 if [ "${type}" = "dir" ]; then
123 expect 0 rmdir ${n0}
124 else
125 expect 0 unlink ${n0}
126 fi
127 fi
128
115 for flag in `echo ${allflags},none | tr ',' ' '`; do
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
121 done
122 if [ "${type}" = "dir" ]; then
123 expect 0 rmdir ${n0}
124 else
125 expect 0 unlink ${n0}
126 fi
127 fi
128
129 create_file ${type} ${n0} 0 0
129 create_file ${type} ${n0}
130 for flag in `echo ${allflags},none | tr ',' ' '`; do
131 ctime1=`${fstest} lstat ${n0} ctime`
132 sleep 1
133 expect 0 lchflags ${n0} ${flag}
134 ctime2=`${fstest} lstat ${n0} ctime`
135 test_check $ctime1 -lt $ctime2
136 done
137 if [ "${type}" = "dir" ]; then
138 expect 0 rmdir ${n0}
139 else
140 expect 0 unlink ${n0}
141 fi
142done
143
144# unsuccessful chflags(2) does not update ctime.
145for type in regular dir fifo block char socket symlink; do
146 if [ "${type}" != "symlink" ]; then
130 for flag in `echo ${allflags},none | tr ',' ' '`; do
131 ctime1=`${fstest} lstat ${n0} ctime`
132 sleep 1
133 expect 0 lchflags ${n0} ${flag}
134 ctime2=`${fstest} lstat ${n0} ctime`
135 test_check $ctime1 -lt $ctime2
136 done
137 if [ "${type}" = "dir" ]; then
138 expect 0 rmdir ${n0}
139 else
140 expect 0 unlink ${n0}
141 fi
142done
143
144# unsuccessful chflags(2) does not update ctime.
145for type in regular dir fifo block char socket symlink; do
146 if [ "${type}" != "symlink" ]; then
147 create_file ${type} ${n0} 0 0
147 create_file ${type} ${n0}
148 for 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
154 done
155 if [ "${type}" = "dir" ]; then
156 expect 0 rmdir ${n0}
157 else
158 expect 0 unlink ${n0}
159 fi
160 fi
161
148 for 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
154 done
155 if [ "${type}" = "dir" ]; then
156 expect 0 rmdir ${n0}
157 else
158 expect 0 unlink ${n0}
159 fi
160 fi
161
162 create_file ${type} ${n0} 0 0
162 create_file ${type} ${n0}
163 for flag in `echo ${allflags},none | tr ',' ' '`; do
164 ctime1=`${fstest} lstat ${n0} ctime`
165 sleep 1
166 expect EPERM -u 65534 lchflags ${n0} ${flag}
167 ctime2=`${fstest} lstat ${n0} ctime`
168 test_check $ctime1 -eq $ctime2
169 done
170 if [ "${type}" = "dir" ]; then
171 expect 0 rmdir ${n0}
172 else
173 expect 0 unlink ${n0}
174 fi
175done
176
177cd ${cdir}
178expect 0 rmdir ${n2}
163 for flag in `echo ${allflags},none | tr ',' ' '`; do
164 ctime1=`${fstest} lstat ${n0} ctime`
165 sleep 1
166 expect EPERM -u 65534 lchflags ${n0} ${flag}
167 ctime2=`${fstest} lstat ${n0} ctime`
168 test_check $ctime1 -eq $ctime2
169 done
170 if [ "${type}" = "dir" ]; then
171 expect 0 rmdir ${n0}
172 else
173 expect 0 unlink ${n0}
174 fi
175done
176
177cd ${cdir}
178expect 0 rmdir ${n2}