Deleted Added
full compact
07.t (211156) 07.t (211186)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/rename/07.t 211156 2010-08-10 22:57:43Z pjd $
2# $FreeBSD: head/tools/regression/fstest/tests/rename/07.t 211186 2010-08-11 17:34:58Z pjd $
3
4desc="rename returns EPERM if the parent directory of the file pointed at by the 'from' argument has its immutable or append-only flag set"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10

--- 13 unchanged lines hidden (view full) ---

24esac
25
26n0=`namegen`
27n1=`namegen`
28n2=`namegen`
29
30expect 0 mkdir ${n0} 0755
31
3
4desc="rename returns EPERM if the parent directory of the file pointed at by the 'from' argument has its immutable or append-only flag set"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10

--- 13 unchanged lines hidden (view full) ---

24esac
25
26n0=`namegen`
27n1=`namegen`
28n2=`namegen`
29
30expect 0 mkdir ${n0} 0755
31
32expect 0 create ${n0}/${n1} 0644
33for flag in ${flags1}; do
34 expect 0 chflags ${n0} ${flag}
35 expect ${flag} stat ${n0} flags
36 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
37 expect EPERM rename ${n0}/${n1} ${n2}
38 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
39 expect ENOENT rename ${n2} ${n0}/${n1}
32for type in regular dir fifo block char socket symlink; do
33 create_file ${type} ${n0}/${n1}
34 for flag in ${flags1}; do
35 expect 0 chflags ${n0} ${flag}
36 expect ${flag} stat ${n0} flags
37 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
38 expect EPERM rename ${n0}/${n1} ${n2}
39 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
40 expect ENOENT rename ${n2} ${n0}/${n1}
41 done
42 expect 0 chflags ${n0} none
43 if [ "${type}" = "dir" ]; then
44 expect 0 rmdir ${n0}/${n1}
45 else
46 expect 0 unlink ${n0}/${n1}
47 fi
40done
48done
41expect 0 chflags ${n0} none
42expect 0 unlink ${n0}/${n1}
43
49
44expect 0 mkdir ${n0}/${n1} 0755
45for flag in ${flags1}; do
46 expect 0 chflags ${n0} ${flag}
47 expect ${flag} stat ${n0} flags
48 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
49 expect EPERM rename ${n0}/${n1} ${n2}
50 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
51 expect ENOENT rename ${n2} ${n0}/${n1}
50for type in regular dir fifo block char socket symlink; do
51 create_file ${type} ${n0}/${n1}
52 for flag in ${flags2}; do
53 expect 0 chflags ${n0} ${flag}
54 expect ${flag} stat ${n0} flags
55 expect 0 rename ${n0}/${n1} ${n2}
56 expect 0 rename ${n2} ${n0}/${n1}
57 done
58 expect 0 chflags ${n0} none
59 if [ "${type}" = "dir" ]; then
60 expect 0 rmdir ${n0}/${n1}
61 else
62 expect 0 unlink ${n0}/${n1}
63 fi
52done
64done
53expect 0 chflags ${n0} none
54expect 0 rmdir ${n0}/${n1}
55
65
56expect 0 mkfifo ${n0}/${n1} 0644
57for flag in ${flags1}; do
58 expect 0 chflags ${n0} ${flag}
59 expect ${flag} stat ${n0} flags
60 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
61 expect EPERM rename ${n0}/${n1} ${n2}
62 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
63 expect ENOENT rename ${n2} ${n0}/${n1}
64done
65expect 0 chflags ${n0} none
66expect 0 unlink ${n0}/${n1}
67
68expect 0 mknod ${n0}/${n1} b 0644 1 2
69for flag in ${flags1}; do
70 expect 0 chflags ${n0} ${flag}
71 expect ${flag} stat ${n0} flags
72 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
73 expect EPERM rename ${n0}/${n1} ${n2}
74 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
75 expect ENOENT rename ${n2} ${n0}/${n1}
76done
77expect 0 chflags ${n0} none
78expect 0 unlink ${n0}/${n1}
79
80expect 0 mknod ${n0}/${n1} c 0644 1 2
81for flag in ${flags1}; do
82 expect 0 chflags ${n0} ${flag}
83 expect ${flag} stat ${n0} flags
84 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
85 expect EPERM rename ${n0}/${n1} ${n2}
86 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
87 expect ENOENT rename ${n2} ${n0}/${n1}
88done
89expect 0 chflags ${n0} none
90expect 0 unlink ${n0}/${n1}
91
92expect 0 bind ${n0}/${n1}
93for flag in ${flags1}; do
94 expect 0 chflags ${n0} ${flag}
95 expect ${flag} stat ${n0} flags
96 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
97 expect EPERM rename ${n0}/${n1} ${n2}
98 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
99 expect ENOENT rename ${n2} ${n0}/${n1}
100done
101expect 0 chflags ${n0} none
102expect 0 unlink ${n0}/${n1}
103
104expect 0 symlink ${n2} ${n0}/${n1}
105for flag in ${flags1}; do
106 expect 0 chflags ${n0} ${flag}
107 expect ${flag} stat ${n0} flags
108 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
109 expect EPERM rename ${n0}/${n1} ${n2}
110 [ "${flag}" = "SF_APPEND" ] && todo FreeBSD:ZFS "Renaming a file protected by SF_APPEND should return EPERM."
111 expect ENOENT rename ${n2} ${n0}/${n1}
112done
113expect 0 chflags ${n0} none
114expect 0 unlink ${n0}/${n1}
115
116expect 0 create ${n0}/${n1} 0644
117for flag in ${flags2}; do
118 expect 0 chflags ${n0} ${flag}
119 expect ${flag} stat ${n0} flags
120 expect 0 rename ${n0}/${n1} ${n2}
121 expect 0 rename ${n2} ${n0}/${n1}
122done
123expect 0 chflags ${n0} none
124expect 0 unlink ${n0}/${n1}
125
126expect 0 mkdir ${n0}/${n1} 0755
127for flag in ${flags2}; do
128 expect 0 chflags ${n0} ${flag}
129 expect ${flag} stat ${n0} flags
130 expect 0 rename ${n0}/${n1} ${n2}
131 expect 0 rename ${n2} ${n0}/${n1}
132done
133expect 0 chflags ${n0} none
134expect 0 rmdir ${n0}/${n1}
135
136expect 0 mkfifo ${n0}/${n1} 0644
137for flag in ${flags2}; do
138 expect 0 chflags ${n0} ${flag}
139 expect ${flag} stat ${n0} flags
140 expect 0 rename ${n0}/${n1} ${n2}
141 expect 0 rename ${n2} ${n0}/${n1}
142done
143expect 0 chflags ${n0} none
144expect 0 unlink ${n0}/${n1}
145
146expect 0 mknod ${n0}/${n1} b 0644 1 2
147for flag in ${flags2}; do
148 expect 0 chflags ${n0} ${flag}
149 expect ${flag} stat ${n0} flags
150 expect 0 rename ${n0}/${n1} ${n2}
151 expect 0 rename ${n2} ${n0}/${n1}
152done
153expect 0 chflags ${n0} none
154expect 0 unlink ${n0}/${n1}
155
156expect 0 mknod ${n0}/${n1} c 0644 1 2
157for flag in ${flags2}; do
158 expect 0 chflags ${n0} ${flag}
159 expect ${flag} stat ${n0} flags
160 expect 0 rename ${n0}/${n1} ${n2}
161 expect 0 rename ${n2} ${n0}/${n1}
162done
163expect 0 chflags ${n0} none
164expect 0 unlink ${n0}/${n1}
165
166expect 0 bind ${n0}/${n1}
167for flag in ${flags2}; do
168 expect 0 chflags ${n0} ${flag}
169 expect ${flag} stat ${n0} flags
170 expect 0 rename ${n0}/${n1} ${n2}
171 expect 0 rename ${n2} ${n0}/${n1}
172done
173expect 0 chflags ${n0} none
174expect 0 unlink ${n0}/${n1}
175
176expect 0 symlink ${n2} ${n0}/${n1}
177for flag in ${flags2}; do
178 expect 0 chflags ${n0} ${flag}
179 expect ${flag} stat ${n0} flags
180 expect 0 rename ${n0}/${n1} ${n2}
181 expect 0 rename ${n2} ${n0}/${n1}
182done
183expect 0 chflags ${n0} none
184expect 0 unlink ${n0}/${n1}
185
186expect 0 rmdir ${n0}
66expect 0 rmdir ${n0}