]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - tools/regression/fstest/tests/link/13.t
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / tools / regression / fstest / tests / link / 13.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 desc="link returns EPERM if the parent directory of the destination file has its immutable flag set"
5
6 dir=`dirname $0`
7 . ${dir}/../misc.sh
8
9 require chflags
10
11 echo "1..32"
12
13 n0=`namegen`
14 n1=`namegen`
15 n2=`namegen`
16
17 expect 0 mkdir ${n0} 0755
18
19 expect 0 create ${n0}/${n1} 0644
20 expect 0 link ${n0}/${n1} ${n0}/${n2}
21 expect 0 unlink ${n0}/${n2}
22
23 expect 0 chflags ${n0} SF_IMMUTABLE
24 expect EPERM link ${n0}/${n1} ${n0}/${n2}
25 expect 0 chflags ${n0} none
26 expect 0 link ${n0}/${n1} ${n0}/${n2}
27 expect 0 unlink ${n0}/${n2}
28
29 expect 0 chflags ${n0} UF_IMMUTABLE
30 expect EPERM link ${n0}/${n1} ${n0}/${n2}
31 expect 0 chflags ${n0} none
32 expect 0 link ${n0}/${n1} ${n0}/${n2}
33 expect 0 unlink ${n0}/${n2}
34
35 expect 0 chflags ${n0} SF_APPEND
36 expect 0 link ${n0}/${n1} ${n0}/${n2}
37 expect 0 chflags ${n0} none
38 expect 0 unlink ${n0}/${n2}
39
40 expect 0 chflags ${n0} UF_APPEND
41 expect 0 link ${n0}/${n1} ${n0}/${n2}
42 expect 0 chflags ${n0} none
43 expect 0 unlink ${n0}/${n2}
44
45 expect 0 chflags ${n0} SF_NOUNLINK
46 expect 0 link ${n0}/${n1} ${n0}/${n2}
47 expect 0 chflags ${n0} none
48 expect 0 unlink ${n0}/${n2}
49
50 expect 0 chflags ${n0} UF_NOUNLINK
51 expect 0 link ${n0}/${n1} ${n0}/${n2}
52 expect 0 chflags ${n0} none
53 expect 0 unlink ${n0}/${n2}
54
55 expect 0 unlink ${n0}/${n1}
56 expect 0 rmdir ${n0}