4 desc
="rename changes file name"
16 expect
0 mkdir
${n3} 0755
20 expect
0 create
${n0} 0644
21 expect regular
,0644,1 lstat
${n0} type,mode
,nlink
22 inode
=`${fstest} lstat ${n0} inode`
23 expect
0 rename
${n0} ${n1}
24 expect ENOENT lstat
${n0} type,mode
,nlink
25 expect regular
,${inode},0644,1 lstat
${n1} type,inode
,mode
,nlink
26 expect
0 link
${n1} ${n0}
27 expect regular
,${inode},0644,2 lstat
${n0} type,inode
,mode
,nlink
28 expect regular
,${inode},0644,2 lstat
${n1} type,inode
,mode
,nlink
29 expect
0 rename
${n1} ${n2}
30 expect regular
,${inode},0644,2 lstat
${n0} type,inode
,mode
,nlink
31 expect ENOENT lstat
${n1} type,mode
,nlink
32 expect regular
,${inode},0644,2 lstat
${n2} type,inode
,mode
,nlink
36 expect
0 mkdir
${n0} 0755
37 expect dir
,0755 lstat
${n0} type,mode
38 inode
=`${fstest} lstat ${n0} inode`
39 expect
0 rename
${n0} ${n1}
40 expect ENOENT lstat
${n0} type,mode
41 expect dir
,${inode},0755 lstat
${n1} type,inode
,mode
44 expect
0 mkfifo ${n0} 0644
45 expect fifo
,0644,1 lstat
${n0} type,mode
,nlink
46 inode
=`${fstest} lstat ${n0} inode`
47 expect
0 rename
${n0} ${n1}
48 expect ENOENT lstat
${n0} type,mode
,nlink
49 expect fifo
,${inode},0644,1 lstat
${n1} type,inode
,mode
,nlink
50 expect
0 link
${n1} ${n0}
51 expect fifo
,${inode},0644,2 lstat
${n0} type,inode
,mode
,nlink
52 expect fifo
,${inode},0644,2 lstat
${n1} type,inode
,mode
,nlink
53 expect
0 rename
${n1} ${n2}
54 expect fifo
,${inode},0644,2 lstat
${n0} type,inode
,mode
,nlink
55 expect ENOENT lstat
${n1} type,mode
,nlink
56 expect fifo
,${inode},0644,2 lstat
${n2} type,inode
,mode
,nlink
60 expect
0 create
${n0} 0644
61 rinode
=`${fstest} lstat ${n0} inode`
62 expect regular
,0644 lstat
${n0} type,mode
63 expect
0 symlink
${n0} ${n1}
64 sinode
=`${fstest} lstat ${n1} inode`
65 expect regular
,${rinode},0644 stat
${n1} type,inode
,mode
66 expect symlink
,${sinode} lstat
${n1} type,inode
67 expect
0 rename
${n1} ${n2}
68 expect regular
,${rinode},0644 stat
${n0} type,inode
,mode
69 expect ENOENT lstat
${n1} type,mode
70 expect symlink
,${sinode} lstat
${n2} type,inode
74 # successful rename(2) updates ctime.
75 expect
0 create
${n0} 0644
76 ctime1
=`${fstest} stat ${n0} ctime`
78 expect
0 rename
${n0} ${n1}
79 ctime2
=`${fstest} stat ${n1} ctime`
80 test_check
$ctime1 -lt $ctime2
83 expect
0 mkdir
${n0} 0755
84 ctime1
=`${fstest} stat ${n0} ctime`
86 expect
0 rename
${n0} ${n1}
87 ctime2
=`${fstest} stat ${n1} ctime`
88 test_check
$ctime1 -lt $ctime2
91 expect
0 mkfifo ${n0} 0644
92 ctime1
=`${fstest} stat ${n0} ctime`
94 expect
0 rename
${n0} ${n1}
95 ctime2
=`${fstest} stat ${n1} ctime`
96 test_check
$ctime1 -lt $ctime2
99 expect
0 symlink
${n2} ${n0}
100 ctime1
=`${fstest} lstat ${n0} ctime`
102 expect
0 rename
${n0} ${n1}
103 ctime2
=`${fstest} lstat ${n1} ctime`
104 test_check
$ctime1 -lt $ctime2
105 expect
0 unlink
${n1}
107 # unsuccessful link(2) does not update ctime.
108 expect
0 create
${n0} 0644
109 ctime1
=`${fstest} stat ${n0} ctime`
111 expect EACCES
-u 65534 rename
${n0} ${n1}
112 ctime2
=`${fstest} stat ${n0} ctime`
113 test_check
$ctime1 -eq $ctime2
114 expect
0 unlink
${n0}
116 expect
0 mkdir
${n0} 0755
117 ctime1
=`${fstest} stat ${n0} ctime`
119 expect EACCES
-u 65534 rename
${n0} ${n1}
120 ctime2
=`${fstest} stat ${n0} ctime`
121 test_check
$ctime1 -eq $ctime2
124 expect
0 mkfifo ${n0} 0644
125 ctime1
=`${fstest} stat ${n0} ctime`
127 expect EACCES
-u 65534 rename
${n0} ${n1}
128 ctime2
=`${fstest} stat ${n0} ctime`
129 test_check
$ctime1 -eq $ctime2
130 expect
0 unlink
${n0}
132 expect
0 symlink
${n2} ${n0}
133 ctime1
=`${fstest} lstat ${n0} ctime`
135 expect EACCES
-u 65534 rename
${n0} ${n1}
136 ctime2
=`${fstest} lstat ${n0} ctime`
137 test_check
$ctime1 -eq $ctime2
138 expect
0 unlink
${n0}