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}