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 $
5 desc="unlink removes regular files, symbolic links, fifos and sockets"
16 expect 0 mkdir ${n2} 0755
20 expect 0 create ${n0} 0644
21 expect regular lstat ${n0} type
23 expect ENOENT lstat ${n0} type
25 expect 0 symlink ${n1} ${n0}
26 expect symlink lstat ${n0} type
28 expect ENOENT lstat ${n0} type
30 expect 0 mkfifo ${n0} 0644
31 expect fifo lstat ${n0} type
33 expect ENOENT lstat ${n0} type
35 expect 0 mknod ${n0} b 0644 1 2
36 expect block lstat ${n0} type
38 expect ENOENT lstat ${n0} type
40 expect 0 mknod ${n0} c 0644 1 2
41 expect char lstat ${n0} type
43 expect ENOENT lstat ${n0} type
46 expect socket lstat ${n0} type
48 expect ENOENT lstat ${n0} type
50 # successful unlink(2) updates ctime.
51 expect 0 create ${n0} 0644
52 expect 0 link ${n0} ${n1}
53 ctime1=`${fstest} stat ${n0} ctime`
56 ctime2=`${fstest} stat ${n0} ctime`
57 test_check $ctime1 -lt $ctime2
60 expect 0 mkfifo ${n0} 0644
61 expect 0 link ${n0} ${n1}
62 ctime1=`${fstest} stat ${n0} ctime`
65 ctime2=`${fstest} stat ${n0} ctime`
66 test_check $ctime1 -lt $ctime2
69 expect 0 mknod ${n0} b 0644 1 2
70 expect 0 link ${n0} ${n1}
71 ctime1=`${fstest} stat ${n0} ctime`
74 ctime2=`${fstest} stat ${n0} ctime`
75 test_check $ctime1 -lt $ctime2
78 expect 0 mknod ${n0} c 0644 1 2
79 expect 0 link ${n0} ${n1}
80 ctime1=`${fstest} stat ${n0} ctime`
83 ctime2=`${fstest} stat ${n0} ctime`
84 test_check $ctime1 -lt $ctime2
88 expect 0 link ${n0} ${n1}
89 ctime1=`${fstest} stat ${n0} ctime`
92 ctime2=`${fstest} stat ${n0} ctime`
93 test_check $ctime1 -lt $ctime2
96 # unsuccessful unlink(2) does not update ctime.
97 expect 0 create ${n0} 0644
98 ctime1=`${fstest} stat ${n0} ctime`
100 expect EACCES -u 65534 unlink ${n0}
101 ctime2=`${fstest} stat ${n0} ctime`
102 test_check $ctime1 -eq $ctime2
103 expect 0 unlink ${n0}
105 expect 0 mkfifo ${n0} 0644
106 ctime1=`${fstest} stat ${n0} ctime`
108 expect EACCES -u 65534 unlink ${n0}
109 ctime2=`${fstest} stat ${n0} ctime`
110 test_check $ctime1 -eq $ctime2
111 expect 0 unlink ${n0}
113 expect 0 mknod ${n0} b 0644 1 2
114 ctime1=`${fstest} stat ${n0} ctime`
116 expect EACCES -u 65534 unlink ${n0}
117 ctime2=`${fstest} stat ${n0} ctime`
118 test_check $ctime1 -eq $ctime2
119 expect 0 unlink ${n0}
121 expect 0 mknod ${n0} c 0644 1 2
122 ctime1=`${fstest} stat ${n0} ctime`
124 expect EACCES -u 65534 unlink ${n0}
125 ctime2=`${fstest} stat ${n0} ctime`
126 test_check $ctime1 -eq $ctime2
127 expect 0 unlink ${n0}
130 ctime1=`${fstest} stat ${n0} ctime`
132 expect EACCES -u 65534 unlink ${n0}
133 ctime2=`${fstest} stat ${n0} ctime`
134 test_check $ctime1 -eq $ctime2
135 expect 0 unlink ${n0}
137 expect 0 mkdir ${n0} 0755
138 expect 0 create ${n0}/${n1} 0644
139 time=`${fstest} stat ${n0} ctime`
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
148 expect 0 mkdir ${n0} 0755
149 expect 0 mkfifo ${n0}/${n1} 0644
150 time=`${fstest} stat ${n0} ctime`
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
159 expect 0 mkdir ${n0} 0755
160 expect 0 mknod ${n0}/${n1} b 0644 1 2
161 time=`${fstest} stat ${n0} ctime`
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
170 expect 0 mkdir ${n0} 0755
171 expect 0 mknod ${n0}/${n1} c 0644 1 2
172 time=`${fstest} stat ${n0} ctime`
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
181 expect 0 mkdir ${n0} 0755
182 expect 0 bind ${n0}/${n1}
183 time=`${fstest} stat ${n0} ctime`
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
192 expect 0 mkdir ${n0} 0755
193 expect 0 symlink test ${n0}/${n1}
194 time=`${fstest} stat ${n0} ctime`
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
203 expect 0 create ${n0} 0644
204 expect 0 link ${n0} ${n1}
205 time=`${fstest} stat ${n0} ctime`
207 expect 0 unlink ${n1}
208 ctime=`${fstest} stat ${n0} ctime`
209 test_check $time -lt $ctime
210 expect 0 unlink ${n0}