08.t revision 210984
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/chmod/08.t 210984 2010-08-06 23:58:54Z pjd $
3
4desc="chmod returns EPERM if the named file has its immutable or append-only flag set"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
11case "${os}:${fs}" in
12FreeBSD:ZFS)
13	echo "1..22"
14	;;
15FreeBSD:UFS)
16	echo "1..44"
17	;;
18*)
19	quick_exit
20esac
21
22n0=`namegen`
23
24expect 0 create ${n0} 0644
25expect 0 chflags ${n0} SF_IMMUTABLE
26expect EPERM chmod ${n0} 0600
27expect 0644 stat ${n0} mode
28expect 0 chflags ${n0} none
29expect 0 chmod ${n0} 0600
30expect 0600 stat ${n0} mode
31expect 0 unlink ${n0}
32
33expect 0 create ${n0} 0644
34expect 0 chflags ${n0} SF_NOUNLINK
35expect 0 chmod ${n0} 0600
36expect 0600 stat ${n0} mode
37expect 0 chflags ${n0} none
38expect 0 unlink ${n0}
39
40case "${os}:${fs}" in
41FreeBSD:ZFS)
42	expect 0 create ${n0} 0644
43	expect 0 chflags ${n0} SF_APPEND
44	expect 0 chmod ${n0} 0600
45	expect 0600 stat ${n0} mode
46	expect 0 chflags ${n0} none
47	expect 0 chmod ${n0} 0600
48	expect 0600 stat ${n0} mode
49	expect 0 unlink ${n0}
50	;;
51FreeBSD:UFS)
52	expect 0 create ${n0} 0644
53	expect 0 chflags ${n0} SF_APPEND
54	expect EPERM chmod ${n0} 0600
55	expect 0644 stat ${n0} mode
56	expect 0 chflags ${n0} none
57	expect 0 chmod ${n0} 0600
58	expect 0600 stat ${n0} mode
59	expect 0 unlink ${n0}
60
61	expect 0 create ${n0} 0644
62	expect 0 chflags ${n0} UF_IMMUTABLE
63	expect EPERM chmod ${n0} 0600
64	expect 0644 stat ${n0} mode
65	expect 0 chflags ${n0} none
66	expect 0 chmod ${n0} 0600
67	expect 0600 stat ${n0} mode
68	expect 0 unlink ${n0}
69
70	expect 0 create ${n0} 0644
71	expect 0 chflags ${n0} UF_NOUNLINK
72	expect 0 chmod ${n0} 0600
73	expect 0600 stat ${n0} mode
74	expect 0 chflags ${n0} none
75	expect 0 unlink ${n0}
76
77	expect 0 create ${n0} 0644
78	expect 0 chflags ${n0} UF_APPEND
79	expect EPERM chmod ${n0} 0600
80	expect 0644 stat ${n0} mode
81	expect 0 chflags ${n0} none
82	expect 0 chmod ${n0} 0600
83	expect 0600 stat ${n0} mode
84	expect 0 unlink ${n0}
85	;;
86esac
87