1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/chown/08.t 211352 2010-08-15 21:24:17Z pjd $
3271294Sngie
4271294Sngiedesc="chown returns EPERM if the named file has its immutable or append-only flag set"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngierequire chflags
10271294Sngie
11271294Sngiecase "${os}:${fs}" in
12271294SngieFreeBSD:ZFS)
13271294Sngie	echo "1..20"
14271294Sngie	;;
15271294SngieFreeBSD:UFS)
16271294Sngie	echo "1..44"
17271294Sngie	;;
18271294Sngie*)
19271294Sngie	quick_exit
20271294Sngieesac
21271294Sngie
22271294Sngien0=`namegen`
23271294Sngie
24271294Sngieexpect 0 create ${n0} 0644
25271294Sngieexpect 0 chflags ${n0} SF_IMMUTABLE
26271294Sngieexpect EPERM chown ${n0} 65534 65534
27271294Sngieexpect 0,0 stat ${n0} uid,gid
28271294Sngieexpect 0 chflags ${n0} none
29271294Sngieexpect 0 chown ${n0} 65534 65534
30271294Sngieexpect 65534,65534 stat ${n0} uid,gid
31271294Sngieexpect 0 unlink ${n0}
32271294Sngie
33271294Sngieexpect 0 create ${n0} 0644
34271294Sngieexpect 0 chflags ${n0} SF_NOUNLINK
35271294Sngieexpect 0 chown ${n0} 65534 65534
36271294Sngieexpect 65534,65534 stat ${n0} uid,gid
37271294Sngieexpect 0 chflags ${n0} none
38271294Sngieexpect 0 unlink ${n0}
39271294Sngie
40271294Sngiecase "${os}:${fs}" in
41271294SngieFreeBSD:ZFS)
42271294Sngie	expect 0 create ${n0} 0644
43271294Sngie	expect 0 chflags ${n0} SF_APPEND
44271294Sngie	expect 0 chown ${n0} 65534 65534
45271294Sngie	expect 65534,65534 stat ${n0} uid,gid
46271294Sngie	expect 0 chflags ${n0} none
47271294Sngie	expect 0 unlink ${n0}
48271294Sngie	;;
49271294SngieFreeBSD:UFS)
50271294Sngie	expect 0 create ${n0} 0644
51271294Sngie	expect 0 chflags ${n0} SF_APPEND
52271294Sngie	expect EPERM chown ${n0} 65534 65534
53271294Sngie	expect 0,0 stat ${n0} uid,gid
54271294Sngie	expect 0 chflags ${n0} none
55271294Sngie	expect 0 chown ${n0} 65534 65534
56271294Sngie	expect 65534,65534 stat ${n0} uid,gid
57271294Sngie	expect 0 unlink ${n0}
58271294Sngie
59271294Sngie	expect 0 create ${n0} 0644
60271294Sngie	expect 0 chflags ${n0} UF_IMMUTABLE
61271294Sngie	expect EPERM chown ${n0} 65534 65534
62271294Sngie	expect 0,0 stat ${n0} uid,gid
63271294Sngie	expect 0 chflags ${n0} none
64271294Sngie	expect 0 chown ${n0} 65534 65534
65271294Sngie	expect 65534,65534 stat ${n0} uid,gid
66271294Sngie	expect 0 unlink ${n0}
67271294Sngie
68271294Sngie	expect 0 create ${n0} 0644
69271294Sngie	expect 0 chflags ${n0} UF_NOUNLINK
70271294Sngie	expect 0 chown ${n0} 65534 65534
71271294Sngie	expect 65534,65534 stat ${n0} uid,gid
72271294Sngie	expect 0 chflags ${n0} none
73271294Sngie	expect 0 unlink ${n0}
74271294Sngie
75271294Sngie	expect 0 create ${n0} 0644
76271294Sngie	expect 0 chflags ${n0} UF_APPEND
77271294Sngie	expect EPERM chown ${n0} 65534 65534
78271294Sngie	expect 0,0 stat ${n0} uid,gid
79271294Sngie	expect 0 chflags ${n0} none
80271294Sngie	expect 0 chown ${n0} 65534 65534
81271294Sngie	expect 65534,65534 stat ${n0} uid,gid
82271294Sngie	expect 0 unlink ${n0}
83271294Sngie	;;
84271294Sngieesac
85