4 desc="unlink removes regular files, symbolic links, fifos and sockets"
15 expect 0 mkdir ${n2} 0755
19 expect 0 create ${n0} 0644
20 expect regular lstat ${n0} type
22 expect ENOENT lstat ${n0} type
24 expect 0 symlink ${n1} ${n0}
25 expect symlink lstat ${n0} type
27 expect ENOENT lstat ${n0} type
29 expect 0 mkfifo ${n0} 0644
30 expect fifo lstat ${n0} type
32 expect ENOENT lstat ${n0} type
34 expect 0 mknod ${n0} b 0644 1 2
35 expect block lstat ${n0} type
37 expect ENOENT lstat ${n0} type
39 expect 0 mknod ${n0} c 0644 1 2
40 expect char lstat ${n0} type
42 expect ENOENT lstat ${n0} type
45 expect socket lstat ${n0} type
47 expect ENOENT lstat ${n0} type
49 # successful unlink(2) updates ctime.
50 expect 0 create ${n0} 0644
51 expect 0 link ${n0} ${n1}
52 ctime1=`${fstest} stat ${n0} ctime`
55 ctime2=`${fstest} stat ${n0} ctime`
56 test_check $ctime1 -lt $ctime2
59 expect 0 mkfifo ${n0} 0644
60 expect 0 link ${n0} ${n1}
61 ctime1=`${fstest} stat ${n0} ctime`
64 ctime2=`${fstest} stat ${n0} ctime`
65 test_check $ctime1 -lt $ctime2
68 expect 0 mknod ${n0} b 0644 1 2
69 expect 0 link ${n0} ${n1}
70 ctime1=`${fstest} stat ${n0} ctime`
73 ctime2=`${fstest} stat ${n0} ctime`
74 test_check $ctime1 -lt $ctime2
77 expect 0 mknod ${n0} c 0644 1 2
78 expect 0 link ${n0} ${n1}
79 ctime1=`${fstest} stat ${n0} ctime`
82 ctime2=`${fstest} stat ${n0} ctime`
83 test_check $ctime1 -lt $ctime2
87 expect 0 link ${n0} ${n1}
88 ctime1=`${fstest} stat ${n0} ctime`
91 ctime2=`${fstest} stat ${n0} ctime`
92 test_check $ctime1 -lt $ctime2
95 # unsuccessful unlink(2) does not update ctime.
96 expect 0 create ${n0} 0644
97 ctime1=`${fstest} stat ${n0} ctime`
99 expect EACCES -u 65534 unlink ${n0}
100 ctime2=`${fstest} stat ${n0} ctime`
101 test_check $ctime1 -eq $ctime2
102 expect 0 unlink ${n0}
104 expect 0 mkfifo ${n0} 0644
105 ctime1=`${fstest} stat ${n0} ctime`
107 expect EACCES -u 65534 unlink ${n0}
108 ctime2=`${fstest} stat ${n0} ctime`
109 test_check $ctime1 -eq $ctime2
110 expect 0 unlink ${n0}
112 expect 0 mknod ${n0} b 0644 1 2
113 ctime1=`${fstest} stat ${n0} ctime`
115 expect EACCES -u 65534 unlink ${n0}
116 ctime2=`${fstest} stat ${n0} ctime`
117 test_check $ctime1 -eq $ctime2
118 expect 0 unlink ${n0}
120 expect 0 mknod ${n0} c 0644 1 2
121 ctime1=`${fstest} stat ${n0} ctime`
123 expect EACCES -u 65534 unlink ${n0}
124 ctime2=`${fstest} stat ${n0} ctime`
125 test_check $ctime1 -eq $ctime2
126 expect 0 unlink ${n0}
129 ctime1=`${fstest} stat ${n0} ctime`
131 expect EACCES -u 65534 unlink ${n0}
132 ctime2=`${fstest} stat ${n0} ctime`
133 test_check $ctime1 -eq $ctime2
134 expect 0 unlink ${n0}
136 expect 0 mkdir ${n0} 0755
137 expect 0 create ${n0}/${n1} 0644
138 time=`${fstest} stat ${n0} ctime`
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
147 expect 0 mkdir ${n0} 0755
148 expect 0 mkfifo ${n0}/${n1} 0644
149 time=`${fstest} stat ${n0} ctime`
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
158 expect 0 mkdir ${n0} 0755
159 expect 0 mknod ${n0}/${n1} b 0644 1 2
160 time=`${fstest} stat ${n0} ctime`
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
169 expect 0 mkdir ${n0} 0755
170 expect 0 mknod ${n0}/${n1} c 0644 1 2
171 time=`${fstest} stat ${n0} ctime`
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
180 expect 0 mkdir ${n0} 0755
181 expect 0 bind ${n0}/${n1}
182 time=`${fstest} stat ${n0} ctime`
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
191 expect 0 mkdir ${n0} 0755
192 expect 0 symlink test ${n0}/${n1}
193 time=`${fstest} stat ${n0} ctime`
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
202 expect 0 create ${n0} 0644
203 expect 0 link ${n0} ${n1}
204 time=`${fstest} stat ${n0} ctime`
206 expect 0 unlink ${n1}
207 ctime=`${fstest} stat ${n0} ctime`
208 test_check $time -lt $ctime
209 expect 0 unlink ${n0}