]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - tools/regression/fstest/tests/rename/08.t
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / tools / regression / fstest / tests / rename / 08.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 desc="rename returns EPERM if the parent directory of the file pointed at by the 'to' argument has its immutable flag set"
5
6 dir=`dirname $0`
7 . ${dir}/../misc.sh
8
9 require chflags
10
11 echo "1..126"
12
13 n0=`namegen`
14 n1=`namegen`
15 n2=`namegen`
16
17 expect 0 mkdir ${n0} 0755
18
19 expect 0 create ${n1} 0644
20 for flag in SF_IMMUTABLE UF_IMMUTABLE; do
21         expect 0 chflags ${n0} ${flag}
22         expect ${flag} stat ${n0} flags
23         expect EPERM rename ${n1} ${n0}/${n2}
24 done
25 expect 0 chflags ${n0} none
26 expect 0 unlink ${n1}
27
28 expect 0 mkdir ${n1} 0755
29 for flag in SF_IMMUTABLE UF_IMMUTABLE; do
30         expect 0 chflags ${n0} ${flag}
31         expect ${flag} stat ${n0} flags
32         expect EPERM rename ${n1} ${n0}/${n2}
33 done
34 expect 0 chflags ${n0} none
35 expect 0 rmdir ${n1}
36
37 expect 0 mkfifo ${n1} 0644
38 for flag in SF_IMMUTABLE UF_IMMUTABLE; do
39         expect 0 chflags ${n0} ${flag}
40         expect ${flag} stat ${n0} flags
41         expect EPERM rename ${n1} ${n0}/${n2}
42 done
43 expect 0 chflags ${n0} none
44 expect 0 unlink ${n1}
45
46 expect 0 symlink ${n2} ${n1}
47 for flag in SF_IMMUTABLE UF_IMMUTABLE; do
48         expect 0 chflags ${n0} ${flag}
49         expect ${flag} stat ${n0} flags
50         expect EPERM rename ${n1} ${n0}/${n2}
51 done
52 expect 0 chflags ${n0} none
53 expect 0 unlink ${n1}
54
55 expect 0 create ${n1} 0644
56 for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; 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}
62 done
63 expect 0 unlink ${n1}
64
65 expect 0 mkdir ${n1} 0755
66 for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; 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}
72 done
73 expect 0 rmdir ${n1}
74
75 expect 0 mkfifo ${n1} 0644
76 for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; 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}
82 done
83 expect 0 unlink ${n1}
84
85 expect 0 symlink ${n2} ${n1}
86 for flag in SF_APPEND UF_APPEND SF_NOUNLINK UF_NOUNLINK; 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}
92 done
93 expect 0 unlink ${n1}
94
95 expect 0 rmdir ${n0}