]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - tools/regression/pjdfstest/tests/truncate/08.t
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / tools / regression / pjdfstest / tests / truncate / 08.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 desc="truncate returns EPERM if the named file has its immutable or append-only flag set"
5
6 dir=`dirname $0`
7 . ${dir}/../misc.sh
8
9 require chflags
10
11 case "${os}:${fs}" in
12 FreeBSD:ZFS)
13         echo "1..22"
14         ;;
15 FreeBSD:UFS)
16         echo "1..44"
17         ;;
18 *)
19         quick_exit
20 esac
21
22 n0=`namegen`
23
24 expect 0 create ${n0} 0644
25 expect 0 chflags ${n0} SF_IMMUTABLE
26 expect EPERM truncate ${n0} 123
27 expect 0 stat ${n0} size
28 expect 0 chflags ${n0} none
29 expect 0 truncate ${n0} 123
30 expect 123 stat ${n0} size
31 expect 0 unlink ${n0}
32
33 expect 0 create ${n0} 0644
34 expect 0 chflags ${n0} SF_NOUNLINK
35 expect 0 truncate ${n0} 123
36 expect 123 stat ${n0} size
37 expect 0 chflags ${n0} none
38 expect 0 unlink ${n0}
39
40 expect 0 create ${n0} 0644
41 expect 0 chflags ${n0} SF_APPEND
42 todo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
43 expect EPERM truncate ${n0} 123
44 todo FreeBSD:ZFS "Truncating a file protected by SF_APPEND should return EPERM."
45 expect 0 stat ${n0} size
46 expect 0 chflags ${n0} none
47 expect 0 truncate ${n0} 123
48 expect 123 stat ${n0} size
49 expect 0 unlink ${n0}
50
51 case "${os}:${fs}" in
52 FreeBSD:UFS)
53         expect 0 create ${n0} 0644
54         expect 0 chflags ${n0} UF_IMMUTABLE
55         expect EPERM truncate ${n0} 123
56         expect 0 stat ${n0} size
57         expect 0 chflags ${n0} none
58         expect 0 truncate ${n0} 123
59         expect 123 stat ${n0} size
60         expect 0 unlink ${n0}
61
62         expect 0 create ${n0} 0644
63         expect 0 chflags ${n0} UF_NOUNLINK
64         expect 0 truncate ${n0} 123
65         expect 123 stat ${n0} size
66         expect 0 chflags ${n0} none
67         expect 0 unlink ${n0}
68
69         expect 0 create ${n0} 0644
70         expect 0 chflags ${n0} UF_APPEND
71         expect EPERM truncate ${n0} 123
72         expect 0 stat ${n0} size
73         expect 0 chflags ${n0} none
74         expect 0 truncate ${n0} 123
75         expect 123 stat ${n0} size
76         expect 0 unlink ${n0}
77         ;;
78 esac