]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - tools/regression/fstest/tests/unlink/00.t
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / tools / regression / fstest / 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..55"
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 # TODO: sockets removal
35
36 # successful unlink(2) updates ctime.
37 expect 0 create ${n0} 0644
38 expect 0 link ${n0} ${n1}
39 ctime1=`${fstest} stat ${n0} ctime`
40 sleep 1
41 expect 0 unlink ${n1}
42 ctime2=`${fstest} stat ${n0} ctime`
43 test_check $ctime1 -lt $ctime2
44 expect 0 unlink ${n0}
45
46 expect 0 mkfifo ${n0} 0644
47 expect 0 link ${n0} ${n1}
48 ctime1=`${fstest} stat ${n0} ctime`
49 sleep 1
50 expect 0 unlink ${n1}
51 ctime2=`${fstest} stat ${n0} ctime`
52 test_check $ctime1 -lt $ctime2
53 expect 0 unlink ${n0}
54
55 # unsuccessful unlink(2) does not update ctime.
56 expect 0 create ${n0} 0644
57 ctime1=`${fstest} stat ${n0} ctime`
58 sleep 1
59 expect EACCES -u 65534 unlink ${n0}
60 ctime2=`${fstest} stat ${n0} ctime`
61 test_check $ctime1 -eq $ctime2
62 expect 0 unlink ${n0}
63
64 expect 0 mkfifo ${n0} 0644
65 ctime1=`${fstest} stat ${n0} ctime`
66 sleep 1
67 expect EACCES -u 65534 unlink ${n0}
68 ctime2=`${fstest} stat ${n0} ctime`
69 test_check $ctime1 -eq $ctime2
70 expect 0 unlink ${n0}
71
72 expect 0 mkdir ${n0} 0755
73 expect 0 create ${n0}/${n1} 0644
74 time=`${fstest} stat ${n0} ctime`
75 sleep 1
76 expect 0 unlink ${n0}/${n1}
77 mtime=`${fstest} stat ${n0} mtime`
78 test_check $time -lt $mtime
79 ctime=`${fstest} stat ${n0} ctime`
80 test_check $time -lt $ctime
81 expect 0 rmdir ${n0}
82
83 expect 0 mkdir ${n0} 0755
84 expect 0 mkfifo ${n0}/${n1} 0644
85 time=`${fstest} stat ${n0} ctime`
86 sleep 1
87 expect 0 unlink ${n0}/${n1}
88 mtime=`${fstest} stat ${n0} mtime`
89 test_check $time -lt $mtime
90 ctime=`${fstest} stat ${n0} ctime`
91 test_check $time -lt $ctime
92 expect 0 rmdir ${n0}
93
94 expect 0 mkdir ${n0} 0755
95 expect 0 symlink test ${n0}/${n1}
96 time=`${fstest} stat ${n0} ctime`
97 sleep 1
98 expect 0 unlink ${n0}/${n1}
99 mtime=`${fstest} stat ${n0} mtime`
100 test_check $time -lt $mtime
101 ctime=`${fstest} stat ${n0} ctime`
102 test_check $time -lt $ctime
103 expect 0 rmdir ${n0}
104
105 expect 0 create ${n0} 0644
106 expect 0 link ${n0} ${n1}
107 time=`${fstest} stat ${n0} ctime`
108 sleep 1
109 expect 0 unlink ${n1}
110 ctime=`${fstest} stat ${n0} ctime`
111 test_check $time -lt $ctime
112 expect 0 unlink ${n0}
113
114 cd ${cdir}
115 expect 0 rmdir ${n2}