08.t revision 275504
1155324Simp#!/bin/sh
2155324Simp# $FreeBSD: head/tools/regression/pjdfstest/tests/truncate/08.t 211352 2010-08-15 21:24:17Z pjd $
3155324Simp
4155324Simpdesc="truncate returns EPERM if the named file has its immutable or append-only flag set"
5155324Simp
6155324Simpdir=`dirname $0`
7155324Simp. ${dir}/../misc.sh
8155324Simp
9155324Simprequire chflags
10155324Simp
11155324Simpcase "${os}:${fs}" in
12155324SimpFreeBSD:ZFS)
13155324Simp	echo "1..22"
14155324Simp	;;
15155324SimpFreeBSD:UFS)
16155324Simp	echo "1..44"
17155324Simp	;;
18155324Simp*)
19155324Simp	quick_exit
20155324Simpesac
21155324Simp
22155324Simpn0=`namegen`
23155324Simp
24155324Simpexpect 0 create ${n0} 0644
25155324Simpexpect 0 chflags ${n0} SF_IMMUTABLE
26155324Simpexpect EPERM truncate ${n0} 123
27155324Simpexpect 0 stat ${n0} size
28155324Simpexpect 0 chflags ${n0} none
29155324Simpexpect 0 truncate ${n0} 123
30155324Simpexpect 123 stat ${n0} size
31155324Simpexpect 0 unlink ${n0}
32155324Simp
33155324Simpexpect 0 create ${n0} 0644
34155324Simpexpect 0 chflags ${n0} SF_NOUNLINK
35155324Simpexpect 0 truncate ${n0} 123
36155324Simpexpect 123 stat ${n0} size
37155324Simpexpect 0 chflags ${n0} none
38155324Simpexpect 0 unlink ${n0}
39155324Simp
40155324Simpexpect 0 create ${n0} 0644
41155324Simpexpect 0 chflags ${n0} SF_APPEND
42155324Simptodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
43155324Simpexpect EPERM truncate ${n0} 123
44155324Simptodo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
45155324Simpexpect 0 stat ${n0} size
46155324Simpexpect 0 chflags ${n0} none
47155324Simpexpect 0 truncate ${n0} 123
48155324Simpexpect 123 stat ${n0} size
49155324Simpexpect 0 unlink ${n0}
50178366Scognet
51178366Scognetcase "${os}:${fs}" in
52155324SimpFreeBSD:UFS)
53155324Simp	expect 0 create ${n0} 0644
54155324Simp	expect 0 chflags ${n0} UF_IMMUTABLE
55155324Simp	expect EPERM truncate ${n0} 123
56155324Simp	expect 0 stat ${n0} size
57155324Simp	expect 0 chflags ${n0} none
58155324Simp	expect 0 truncate ${n0} 123
59161704Scognet	expect 123 stat ${n0} size
60161704Scognet	expect 0 unlink ${n0}
61155324Simp
62161704Scognet	expect 0 create ${n0} 0644
63161704Scognet	expect 0 chflags ${n0} UF_NOUNLINK
64161704Scognet	expect 0 truncate ${n0} 123
65155324Simp	expect 123 stat ${n0} size
66155324Simp	expect 0 chflags ${n0} none
67155324Simp	expect 0 unlink ${n0}
68155324Simp
69155324Simp	expect 0 create ${n0} 0644
70155324Simp	expect 0 chflags ${n0} UF_APPEND
71155324Simp	expect EPERM truncate ${n0} 123
72155324Simp	expect 0 stat ${n0} size
73164425Ssam	expect 0 chflags ${n0} none
74155324Simp	expect 0 truncate ${n0} 123
75155324Simp	expect 123 stat ${n0} size
76155324Simp	expect 0 unlink ${n0}
77155324Simp	;;
78155324Simpesac
79155324Simp