2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/truncate/08.t 211352 2010-08-15 21:24:17Z pjd $
5 desc="truncate returns EPERM if the named file has its immutable or append-only flag set"
25 expect 0 create ${n0} 0644
26 expect 0 chflags ${n0} SF_IMMUTABLE
27 expect EPERM truncate ${n0} 123
28 expect 0 stat ${n0} size
29 expect 0 chflags ${n0} none
30 expect 0 truncate ${n0} 123
31 expect 123 stat ${n0} size
34 expect 0 create ${n0} 0644
35 expect 0 chflags ${n0} SF_NOUNLINK
36 expect 0 truncate ${n0} 123
37 expect 123 stat ${n0} size
38 expect 0 chflags ${n0} none
41 expect 0 create ${n0} 0644
42 expect 0 chflags ${n0} SF_APPEND
43 todo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
44 expect EPERM truncate ${n0} 123
45 todo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
46 expect 0 stat ${n0} size
47 expect 0 chflags ${n0} none
48 expect 0 truncate ${n0} 123
49 expect 123 stat ${n0} size
54 expect 0 create ${n0} 0644
55 expect 0 chflags ${n0} UF_IMMUTABLE
56 expect EPERM truncate ${n0} 123
57 expect 0 stat ${n0} size
58 expect 0 chflags ${n0} none
59 expect 0 truncate ${n0} 123
60 expect 123 stat ${n0} size
63 expect 0 create ${n0} 0644
64 expect 0 chflags ${n0} UF_NOUNLINK
65 expect 0 truncate ${n0} 123
66 expect 123 stat ${n0} size
67 expect 0 chflags ${n0} none
70 expect 0 create ${n0} 0644
71 expect 0 chflags ${n0} UF_APPEND
72 expect EPERM truncate ${n0} 123
73 expect 0 stat ${n0} size
74 expect 0 chflags ${n0} none
75 expect 0 truncate ${n0} 123
76 expect 123 stat ${n0} size