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