]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/pjdfstest/tests/link/13.t
Upgrade Unbound to 1.6.2. More to follow.
[FreeBSD/FreeBSD.git] / contrib / pjdfstest / tests / link / 13.t
1 #!/bin/sh
2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/link/13.t 211352 2010-08-15 21:24:17Z pjd $
4
5 desc="link returns EPERM if the parent directory of the destination file has its immutable flag set"
6
7 dir=`dirname $0`
8 . ${dir}/../misc.sh
9
10 require chflags
11
12 case "${os}:${fs}" in
13 FreeBSD:ZFS)
14         echo "1..29"
15         ;;
16 FreeBSD:UFS)
17         echo "1..49"
18         ;;
19 *)
20         quick_exit
21 esac
22
23 n0=`namegen`
24 n1=`namegen`
25 n2=`namegen`
26
27 expect 0 mkdir ${n0} 0755
28
29 expect 0 create ${n0}/${n1} 0644
30 expect 1 stat ${n0}/${n1} nlink
31 expect 0 link ${n0}/${n1} ${n0}/${n2}
32 expect 2 stat ${n0}/${n1} nlink
33 expect 0 unlink ${n0}/${n2}
34 expect 1 stat ${n0}/${n1} nlink
35
36 expect 0 chflags ${n0} SF_IMMUTABLE
37 expect EPERM link ${n0}/${n1} ${n0}/${n2}
38 expect 1 stat ${n0}/${n1} nlink
39 expect 0 chflags ${n0} none
40 expect 0 link ${n0}/${n1} ${n0}/${n2}
41 expect 2 stat ${n0}/${n1} nlink
42 expect 0 unlink ${n0}/${n2}
43 expect 1 stat ${n0}/${n1} nlink
44
45 expect 0 chflags ${n0} SF_NOUNLINK
46 expect 0 link ${n0}/${n1} ${n0}/${n2}
47 expect 2 stat ${n0}/${n1} nlink
48 expect 0 chflags ${n0} none
49 expect 0 unlink ${n0}/${n2}
50 expect 1 stat ${n0}/${n1} nlink
51
52 expect 0 chflags ${n0} SF_APPEND
53 expect 0 link ${n0}/${n1} ${n0}/${n2}
54 expect 2 stat ${n0}/${n1} nlink
55 expect 0 chflags ${n0} none
56 expect 0 unlink ${n0}/${n2}
57 expect 1 stat ${n0}/${n1} nlink
58
59 case "${os}:${fs}" in
60 FreeBSD:UFS)
61         expect 0 chflags ${n0} UF_IMMUTABLE
62         expect EPERM link ${n0}/${n1} ${n0}/${n2}
63         expect 1 stat ${n0}/${n1} nlink
64         expect 0 chflags ${n0} none
65         expect 0 link ${n0}/${n1} ${n0}/${n2}
66         expect 2 stat ${n0}/${n1} nlink
67         expect 0 unlink ${n0}/${n2}
68         expect 1 stat ${n0}/${n1} nlink
69
70         expect 0 chflags ${n0} UF_NOUNLINK
71         expect 0 link ${n0}/${n1} ${n0}/${n2}
72         expect 2 stat ${n0}/${n1} nlink
73         expect 0 chflags ${n0} none
74         expect 0 unlink ${n0}/${n2}
75         expect 1 stat ${n0}/${n1} nlink
76
77         expect 0 chflags ${n0} UF_APPEND
78         expect 0 link ${n0}/${n1} ${n0}/${n2}
79         expect 2 stat ${n0}/${n1} nlink
80         expect 0 chflags ${n0} none
81         expect 0 unlink ${n0}/${n2}
82         expect 1 stat ${n0}/${n1} nlink
83         ;;
84 esac
85
86 expect 0 unlink ${n0}/${n1}
87 expect 0 rmdir ${n0}