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