2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/rename/00.t 211352 2010-08-15 21:24:17Z pjd $
5 desc="rename changes file name"
17 expect 0 mkdir ${n3} 0755
21 for type in regular fifo block char socket; do
22 create_file ${type} ${n0} 0644
23 expect ${type},0644,1 lstat ${n0} type,mode,nlink
24 inode=`${fstest} lstat ${n0} inode`
25 expect 0 rename ${n0} ${n1}
26 expect ENOENT lstat ${n0} type,mode,nlink
27 expect ${type},${inode},0644,1 lstat ${n1} type,inode,mode,nlink
28 expect 0 link ${n1} ${n0}
29 expect ${type},${inode},0644,2 lstat ${n0} type,inode,mode,nlink
30 expect ${type},${inode},0644,2 lstat ${n1} type,inode,mode,nlink
31 expect 0 rename ${n1} ${n2}
32 expect ${type},${inode},0644,2 lstat ${n0} type,inode,mode,nlink
33 expect ENOENT lstat ${n1} type,mode,nlink
34 expect ${type},${inode},0644,2 lstat ${n2} type,inode,mode,nlink
39 expect 0 mkdir ${n0} 0755
40 expect dir,0755 lstat ${n0} type,mode
41 inode=`${fstest} lstat ${n0} inode`
42 expect 0 rename ${n0} ${n1}
43 expect ENOENT lstat ${n0} type,mode
44 expect dir,${inode},0755 lstat ${n1} type,inode,mode
47 expect 0 create ${n0} 0644
48 rinode=`${fstest} lstat ${n0} inode`
49 expect regular,0644 lstat ${n0} type,mode
50 expect 0 symlink ${n0} ${n1}
51 sinode=`${fstest} lstat ${n1} inode`
52 expect regular,${rinode},0644 stat ${n1} type,inode,mode
53 expect symlink,${sinode} lstat ${n1} type,inode
54 expect 0 rename ${n1} ${n2}
55 expect regular,${rinode},0644 stat ${n0} type,inode,mode
56 expect ENOENT lstat ${n1} type,mode
57 expect symlink,${sinode} lstat ${n2} type,inode
61 # successful rename(2) updates ctime.
62 for type in regular dir fifo block char socket symlink; do
63 create_file ${type} ${n0}
64 ctime1=`${fstest} lstat ${n0} ctime`
66 expect 0 rename ${n0} ${n1}
67 ctime2=`${fstest} lstat ${n1} ctime`
68 test_check $ctime1 -lt $ctime2
69 if [ "${type}" = "dir" ]; then
76 # unsuccessful link(2) does not update ctime.
77 for type in regular dir fifo block char socket symlink; do
78 create_file ${type} ${n0}
79 ctime1=`${fstest} lstat ${n0} ctime`
81 expect EACCES -u 65534 rename ${n0} ${n1}
82 ctime2=`${fstest} lstat ${n0} ctime`
83 test_check $ctime1 -eq $ctime2
84 if [ "${type}" = "dir" ]; then