]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/pjdfstest/tests/unlink/00.t
Merge lldb trunk r366426, resolve conflicts, and update FREEBSD-Xlist.
[FreeBSD/FreeBSD.git] / contrib / pjdfstest / tests / unlink / 00.t
1 #!/bin/sh
2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/unlink/00.t 211352 2010-08-15 21:24:17Z pjd $
4
5 desc="unlink removes regular files, symbolic links, fifos and sockets"
6
7 dir=`dirname $0`
8 . ${dir}/../misc.sh
9
10 echo "1..112"
11
12 n0=`namegen`
13 n1=`namegen`
14 n2=`namegen`
15
16 expect 0 mkdir ${n2} 0755
17 cdir=`pwd`
18 cd ${n2}
19
20 expect 0 create ${n0} 0644
21 expect regular lstat ${n0} type
22 expect 0 unlink ${n0}
23 expect ENOENT lstat ${n0} type
24
25 expect 0 symlink ${n1} ${n0}
26 expect symlink lstat ${n0} type
27 expect 0 unlink ${n0}
28 expect ENOENT lstat ${n0} type
29
30 expect 0 mkfifo ${n0} 0644
31 expect fifo lstat ${n0} type
32 expect 0 unlink ${n0}
33 expect ENOENT lstat ${n0} type
34
35 expect 0 mknod ${n0} b 0644 1 2
36 expect block lstat ${n0} type
37 expect 0 unlink ${n0}
38 expect ENOENT lstat ${n0} type
39
40 expect 0 mknod ${n0} c 0644 1 2
41 expect char lstat ${n0} type
42 expect 0 unlink ${n0}
43 expect ENOENT lstat ${n0} type
44
45 expect 0 bind ${n0}
46 expect socket lstat ${n0} type
47 expect 0 unlink ${n0}
48 expect ENOENT lstat ${n0} type
49
50 # successful unlink(2) updates ctime.
51 expect 0 create ${n0} 0644
52 expect 0 link ${n0} ${n1}
53 ctime1=`${fstest} stat ${n0} ctime`
54 sleep 1
55 expect 0 unlink ${n1}
56 ctime2=`${fstest} stat ${n0} ctime`
57 test_check $ctime1 -lt $ctime2
58 expect 0 unlink ${n0}
59
60 expect 0 mkfifo ${n0} 0644
61 expect 0 link ${n0} ${n1}
62 ctime1=`${fstest} stat ${n0} ctime`
63 sleep 1
64 expect 0 unlink ${n1}
65 ctime2=`${fstest} stat ${n0} ctime`
66 test_check $ctime1 -lt $ctime2
67 expect 0 unlink ${n0}
68
69 expect 0 mknod ${n0} b 0644 1 2
70 expect 0 link ${n0} ${n1}
71 ctime1=`${fstest} stat ${n0} ctime`
72 sleep 1
73 expect 0 unlink ${n1}
74 ctime2=`${fstest} stat ${n0} ctime`
75 test_check $ctime1 -lt $ctime2
76 expect 0 unlink ${n0}
77
78 expect 0 mknod ${n0} c 0644 1 2
79 expect 0 link ${n0} ${n1}
80 ctime1=`${fstest} stat ${n0} ctime`
81 sleep 1
82 expect 0 unlink ${n1}
83 ctime2=`${fstest} stat ${n0} ctime`
84 test_check $ctime1 -lt $ctime2
85 expect 0 unlink ${n0}
86
87 expect 0 bind ${n0}
88 expect 0 link ${n0} ${n1}
89 ctime1=`${fstest} stat ${n0} ctime`
90 sleep 1
91 expect 0 unlink ${n1}
92 ctime2=`${fstest} stat ${n0} ctime`
93 test_check $ctime1 -lt $ctime2
94 expect 0 unlink ${n0}
95
96 # unsuccessful unlink(2) does not update ctime.
97 expect 0 create ${n0} 0644
98 ctime1=`${fstest} stat ${n0} ctime`
99 sleep 1
100 expect EACCES -u 65534 unlink ${n0}
101 ctime2=`${fstest} stat ${n0} ctime`
102 test_check $ctime1 -eq $ctime2
103 expect 0 unlink ${n0}
104
105 expect 0 mkfifo ${n0} 0644
106 ctime1=`${fstest} stat ${n0} ctime`
107 sleep 1
108 expect EACCES -u 65534 unlink ${n0}
109 ctime2=`${fstest} stat ${n0} ctime`
110 test_check $ctime1 -eq $ctime2
111 expect 0 unlink ${n0}
112
113 expect 0 mknod ${n0} b 0644 1 2
114 ctime1=`${fstest} stat ${n0} ctime`
115 sleep 1
116 expect EACCES -u 65534 unlink ${n0}
117 ctime2=`${fstest} stat ${n0} ctime`
118 test_check $ctime1 -eq $ctime2
119 expect 0 unlink ${n0}
120
121 expect 0 mknod ${n0} c 0644 1 2
122 ctime1=`${fstest} stat ${n0} ctime`
123 sleep 1
124 expect EACCES -u 65534 unlink ${n0}
125 ctime2=`${fstest} stat ${n0} ctime`
126 test_check $ctime1 -eq $ctime2
127 expect 0 unlink ${n0}
128
129 expect 0 bind ${n0}
130 ctime1=`${fstest} stat ${n0} ctime`
131 sleep 1
132 expect EACCES -u 65534 unlink ${n0}
133 ctime2=`${fstest} stat ${n0} ctime`
134 test_check $ctime1 -eq $ctime2
135 expect 0 unlink ${n0}
136
137 expect 0 mkdir ${n0} 0755
138 expect 0 create ${n0}/${n1} 0644
139 time=`${fstest} stat ${n0} ctime`
140 sleep 1
141 expect 0 unlink ${n0}/${n1}
142 mtime=`${fstest} stat ${n0} mtime`
143 test_check $time -lt $mtime
144 ctime=`${fstest} stat ${n0} ctime`
145 test_check $time -lt $ctime
146 expect 0 rmdir ${n0}
147
148 expect 0 mkdir ${n0} 0755
149 expect 0 mkfifo ${n0}/${n1} 0644
150 time=`${fstest} stat ${n0} ctime`
151 sleep 1
152 expect 0 unlink ${n0}/${n1}
153 mtime=`${fstest} stat ${n0} mtime`
154 test_check $time -lt $mtime
155 ctime=`${fstest} stat ${n0} ctime`
156 test_check $time -lt $ctime
157 expect 0 rmdir ${n0}
158
159 expect 0 mkdir ${n0} 0755
160 expect 0 mknod ${n0}/${n1} b 0644 1 2
161 time=`${fstest} stat ${n0} ctime`
162 sleep 1
163 expect 0 unlink ${n0}/${n1}
164 mtime=`${fstest} stat ${n0} mtime`
165 test_check $time -lt $mtime
166 ctime=`${fstest} stat ${n0} ctime`
167 test_check $time -lt $ctime
168 expect 0 rmdir ${n0}
169
170 expect 0 mkdir ${n0} 0755
171 expect 0 mknod ${n0}/${n1} c 0644 1 2
172 time=`${fstest} stat ${n0} ctime`
173 sleep 1
174 expect 0 unlink ${n0}/${n1}
175 mtime=`${fstest} stat ${n0} mtime`
176 test_check $time -lt $mtime
177 ctime=`${fstest} stat ${n0} ctime`
178 test_check $time -lt $ctime
179 expect 0 rmdir ${n0}
180
181 expect 0 mkdir ${n0} 0755
182 expect 0 bind ${n0}/${n1}
183 time=`${fstest} stat ${n0} ctime`
184 sleep 1
185 expect 0 unlink ${n0}/${n1}
186 mtime=`${fstest} stat ${n0} mtime`
187 test_check $time -lt $mtime
188 ctime=`${fstest} stat ${n0} ctime`
189 test_check $time -lt $ctime
190 expect 0 rmdir ${n0}
191
192 expect 0 mkdir ${n0} 0755
193 expect 0 symlink test ${n0}/${n1}
194 time=`${fstest} stat ${n0} ctime`
195 sleep 1
196 expect 0 unlink ${n0}/${n1}
197 mtime=`${fstest} stat ${n0} mtime`
198 test_check $time -lt $mtime
199 ctime=`${fstest} stat ${n0} ctime`
200 test_check $time -lt $ctime
201 expect 0 rmdir ${n0}
202
203 expect 0 create ${n0} 0644
204 expect 0 link ${n0} ${n1}
205 time=`${fstest} stat ${n0} ctime`
206 sleep 1
207 expect 0 unlink ${n1}
208 ctime=`${fstest} stat ${n0} ctime`
209 test_check $time -lt $ctime
210 expect 0 unlink ${n0}
211
212 cd ${cdir}
213 expect 0 rmdir ${n2}