]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/pjdfstest/tests/link/12.t
Update svn-1.9.7 to 1.10.0.
[FreeBSD/FreeBSD.git] / contrib / pjdfstest / tests / link / 12.t
1 #!/bin/sh
2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/link/12.t 211352 2010-08-15 21:24:17Z pjd $
4
5 desc="link returns EPERM if the source file has its immutable or append-only 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..28"
15         ;;
16 FreeBSD:UFS)
17         echo "1..48"
18         ;;
19 *)
20         quick_exit
21 esac
22
23 n0=`namegen`
24 n1=`namegen`
25
26 expect 0 create ${n0} 0644
27
28 expect 1 stat ${n0} nlink
29 expect 0 link ${n0} ${n1}
30 expect 2 stat ${n0} nlink
31 expect 0 unlink ${n1}
32 expect 1 stat ${n0} nlink
33
34 expect 0 chflags ${n0} SF_IMMUTABLE
35 expect EPERM link ${n0} ${n1}
36 expect 1 stat ${n0} nlink
37 expect 0 chflags ${n0} none
38 expect 0 link ${n0} ${n1}
39 expect 2 stat ${n0} nlink
40 expect 0 unlink ${n1}
41 expect 1 stat ${n0} nlink
42
43 expect 0 chflags ${n0} SF_NOUNLINK
44 expect 0 link ${n0} ${n1}
45 expect 2 stat ${n0} nlink
46 expect 0 chflags ${n0} none
47 expect 0 unlink ${n1}
48 expect 1 stat ${n0} nlink
49
50 expect 0 chflags ${n0} SF_APPEND
51 expect EPERM link ${n0} ${n1}
52 expect 0 chflags ${n0} none
53 expect 0 link ${n0} ${n1}
54 expect 2 stat ${n0} nlink
55 expect 0 unlink ${n1}
56 expect 1 stat ${n0} nlink
57
58 case "${os}:${fs}" in
59 FreeBSD:UFS)
60         expect 0 chflags ${n0} UF_IMMUTABLE
61         expect EPERM link ${n0} ${n1}
62         expect 0 chflags ${n0} none
63         expect 0 link ${n0} ${n1}
64         expect 2 stat ${n0} nlink
65         expect 0 unlink ${n1}
66         expect 1 stat ${n0} nlink
67
68         expect 0 chflags ${n0} UF_NOUNLINK
69         expect 0 link ${n0} ${n1}
70         expect 2 stat ${n0} nlink
71         expect 0 chflags ${n0} none
72         expect 0 unlink ${n1}
73         expect 1 stat ${n0} nlink
74
75         expect 0 chflags ${n0} UF_APPEND
76         expect EPERM link ${n0} ${n1}
77         expect 0 chflags ${n0} none
78         expect 0 link ${n0} ${n1}
79         expect 2 stat ${n0} nlink
80         expect 0 unlink ${n1}
81         expect 1 stat ${n0} nlink
82         ;;
83 esac
84
85 expect 0 unlink ${n0}