Deleted Added
full compact
08.t (166065) 08.t (210984)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/rename/08.t 166065 2007-01-17 01:42:12Z pjd $
2# $FreeBSD: head/tools/regression/fstest/tests/rename/08.t 210984 2010-08-06 23:58:54Z pjd $
3
4desc="rename returns EPERM if the parent directory of the file pointed at by the 'to' argument has its immutable flag set"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
3
4desc="rename returns EPERM if the parent directory of the file pointed at by the 'to' argument has its immutable flag set"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
11echo "1..126"
11case "${os}:${fs}" in
12FreeBSD:ZFS)
13 flags1="SF_IMMUTABLE"
14 flags2="SF_NOUNLINK SF_APPEND"
15 echo "1..110"
16 ;;
17FreeBSD:UFS)
18 flags1="SF_IMMUTABLE UF_IMMUTABLE"
19 flags2="SF_NOUNLINK SF_APPEND UF_NOUNLINK UF_APPEND"
20 echo "1..188"
21 ;;
22*)
23 quick_exit
24esac
12
13n0=`namegen`
14n1=`namegen`
15n2=`namegen`
16
17expect 0 mkdir ${n0} 0755
18
19expect 0 create ${n1} 0644
25
26n0=`namegen`
27n1=`namegen`
28n2=`namegen`
29
30expect 0 mkdir ${n0} 0755
31
32expect 0 create ${n1} 0644
20for flag in SF_IMMUTABLE UF_IMMUTABLE; do
33for flag in ${flags1}; do
21 expect 0 chflags ${n0} ${flag}
22 expect ${flag} stat ${n0} flags
23 expect EPERM rename ${n1} ${n0}/${n2}
24done
25expect 0 chflags ${n0} none
26expect 0 unlink ${n1}
27
28expect 0 mkdir ${n1} 0755
34 expect 0 chflags ${n0} ${flag}
35 expect ${flag} stat ${n0} flags
36 expect EPERM rename ${n1} ${n0}/${n2}
37done
38expect 0 chflags ${n0} none
39expect 0 unlink ${n1}
40
41expect 0 mkdir ${n1} 0755
29for flag in SF_IMMUTABLE UF_IMMUTABLE; do
42for flag in ${flags1}; do
30 expect 0 chflags ${n0} ${flag}
31 expect ${flag} stat ${n0} flags
32 expect EPERM rename ${n1} ${n0}/${n2}
33done
34expect 0 chflags ${n0} none
35expect 0 rmdir ${n1}
36
37expect 0 mkfifo ${n1} 0644
43 expect 0 chflags ${n0} ${flag}
44 expect ${flag} stat ${n0} flags
45 expect EPERM rename ${n1} ${n0}/${n2}
46done
47expect 0 chflags ${n0} none
48expect 0 rmdir ${n1}
49
50expect 0 mkfifo ${n1} 0644
38for flag in SF_IMMUTABLE UF_IMMUTABLE; do
51for flag in ${flags1}; do
39 expect 0 chflags ${n0} ${flag}
40 expect ${flag} stat ${n0} flags
41 expect EPERM rename ${n1} ${n0}/${n2}
42done
43expect 0 chflags ${n0} none
44expect 0 unlink ${n1}
45
52 expect 0 chflags ${n0} ${flag}
53 expect ${flag} stat ${n0} flags
54 expect EPERM rename ${n1} ${n0}/${n2}
55done
56expect 0 chflags ${n0} none
57expect 0 unlink ${n1}
58
59expect 0 mknod ${n1} c 0644 1 2
60for flag in ${flags1}; do
61 expect 0 chflags ${n0} ${flag}
62 expect ${flag} stat ${n0} flags
63 expect EPERM rename ${n1} ${n0}/${n2}
64done
65expect 0 chflags ${n0} none
66expect 0 unlink ${n1}
67
68expect 0 bind ${n1}
69for flag in ${flags1}; do
70 expect 0 chflags ${n0} ${flag}
71 expect ${flag} stat ${n0} flags
72 expect EPERM rename ${n1} ${n0}/${n2}
73done
74expect 0 chflags ${n0} none
75expect 0 unlink ${n1}
76
46expect 0 symlink ${n2} ${n1}
77expect 0 symlink ${n2} ${n1}
47for flag in SF_IMMUTABLE UF_IMMUTABLE; do
78for flag in ${flags1}; do
48 expect 0 chflags ${n0} ${flag}
49 expect ${flag} stat ${n0} flags
50 expect EPERM rename ${n1} ${n0}/${n2}
51done
52expect 0 chflags ${n0} none
53expect 0 unlink ${n1}
54
55expect 0 create ${n1} 0644
79 expect 0 chflags ${n0} ${flag}
80 expect ${flag} stat ${n0} flags
81 expect EPERM rename ${n1} ${n0}/${n2}
82done
83expect 0 chflags ${n0} none
84expect 0 unlink ${n1}
85
86expect 0 create ${n1} 0644
56for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
87for flag in ${flags2}; do
57 expect 0 chflags ${n0} ${flag}
58 expect ${flag} stat ${n0} flags
59 expect 0 rename ${n1} ${n0}/${n2}
60 expect 0 chflags ${n0} none
61 expect 0 rename ${n0}/${n2} ${n1}
62done
63expect 0 unlink ${n1}
64
65expect 0 mkdir ${n1} 0755
88 expect 0 chflags ${n0} ${flag}
89 expect ${flag} stat ${n0} flags
90 expect 0 rename ${n1} ${n0}/${n2}
91 expect 0 chflags ${n0} none
92 expect 0 rename ${n0}/${n2} ${n1}
93done
94expect 0 unlink ${n1}
95
96expect 0 mkdir ${n1} 0755
66for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
97for flag in ${flags2}; do
67 expect 0 chflags ${n0} ${flag}
68 expect ${flag} stat ${n0} flags
69 expect 0 rename ${n1} ${n0}/${n2}
70 expect 0 chflags ${n0} none
71 expect 0 rename ${n0}/${n2} ${n1}
72done
73expect 0 rmdir ${n1}
74
75expect 0 mkfifo ${n1} 0644
98 expect 0 chflags ${n0} ${flag}
99 expect ${flag} stat ${n0} flags
100 expect 0 rename ${n1} ${n0}/${n2}
101 expect 0 chflags ${n0} none
102 expect 0 rename ${n0}/${n2} ${n1}
103done
104expect 0 rmdir ${n1}
105
106expect 0 mkfifo ${n1} 0644
76for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
107for flag in ${flags2}; do
77 expect 0 chflags ${n0} ${flag}
78 expect ${flag} stat ${n0} flags
79 expect 0 rename ${n1} ${n0}/${n2}
80 expect 0 chflags ${n0} none
81 expect 0 rename ${n0}/${n2} ${n1}
82done
83expect 0 unlink ${n1}
84
108 expect 0 chflags ${n0} ${flag}
109 expect ${flag} stat ${n0} flags
110 expect 0 rename ${n1} ${n0}/${n2}
111 expect 0 chflags ${n0} none
112 expect 0 rename ${n0}/${n2} ${n1}
113done
114expect 0 unlink ${n1}
115
116expect 0 mknod ${n1} c 0644 1 2
117for flag in ${flags2}; do
118 expect 0 chflags ${n0} ${flag}
119 expect ${flag} stat ${n0} flags
120 expect 0 rename ${n1} ${n0}/${n2}
121 expect 0 chflags ${n0} none
122 expect 0 rename ${n0}/${n2} ${n1}
123done
124expect 0 unlink ${n1}
125
126expect 0 bind ${n1}
127for flag in ${flags2}; do
128 expect 0 chflags ${n0} ${flag}
129 expect ${flag} stat ${n0} flags
130 expect 0 rename ${n1} ${n0}/${n2}
131 expect 0 chflags ${n0} none
132 expect 0 rename ${n0}/${n2} ${n1}
133done
134expect 0 unlink ${n1}
135
85expect 0 symlink ${n2} ${n1}
136expect 0 symlink ${n2} ${n1}
86for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; do
137for flag in ${flags2}; do
87 expect 0 chflags ${n0} ${flag}
88 expect ${flag} stat ${n0} flags
89 expect 0 rename ${n1} ${n0}/${n2}
90 expect 0 chflags ${n0} none
91 expect 0 rename ${n0}/${n2} ${n1}
92done
93expect 0 unlink ${n1}
94
95expect 0 rmdir ${n0}
138 expect 0 chflags ${n0} ${flag}
139 expect ${flag} stat ${n0} flags
140 expect 0 rename ${n1} ${n0}/${n2}
141 expect 0 chflags ${n0} none
142 expect 0 rename ${n0}/${n2} ${n1}
143done
144expect 0 unlink ${n1}
145
146expect 0 rmdir ${n0}