1166065Spjd#!/bin/sh
2166065Spjd# $FreeBSD: releng/10.2/tools/regression/pjdfstest/tests/rmdir/09.t 210984 2010-08-06 23:58:54Z pjd $
3166065Spjd
4210984Spjddesc="rmdir returns EPERM if the named directory has its immutable, undeletable or append-only flag set"
5166065Spjd
6166065Spjddir=`dirname $0`
7166065Spjd. ${dir}/../misc.sh
8166065Spjd
9166065Spjdrequire chflags
10166065Spjd
11210984Spjdcase "${os}:${fs}" in
12210984SpjdFreeBSD:ZFS)
13210984Spjd	echo "1..15"
14210984Spjd	;;
15210984SpjdFreeBSD:UFS)
16210984Spjd	echo "1..30"
17210984Spjd	;;
18210984Spjd*)
19210984Spjd	quick_exit
20210984Spjdesac
21166065Spjd
22166065Spjdn0=`namegen`
23166065Spjd
24166065Spjdexpect 0 mkdir ${n0} 0755
25166065Spjdexpect 0 chflags ${n0} SF_IMMUTABLE
26166065Spjdexpect EPERM rmdir ${n0}
27166065Spjdexpect 0 chflags ${n0} none
28166065Spjdexpect 0 rmdir ${n0}
29166065Spjd
30166065Spjdexpect 0 mkdir ${n0} 0755
31166065Spjdexpect 0 chflags ${n0} SF_NOUNLINK
32166065Spjdexpect EPERM rmdir ${n0}
33166065Spjdexpect 0 chflags ${n0} none
34166065Spjdexpect 0 rmdir ${n0}
35166065Spjd
36166065Spjdexpect 0 mkdir ${n0} 0755
37166065Spjdexpect 0 chflags ${n0} SF_APPEND
38210984Spjdtodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
39166065Spjdexpect EPERM rmdir ${n0}
40210984Spjdtodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
41166065Spjdexpect 0 chflags ${n0} none
42210984Spjdtodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
43166065Spjdexpect 0 rmdir ${n0}
44166065Spjd
45210984Spjdcase "${os}:${fs}" in
46210984SpjdFreeBSD:UFS)
47210984Spjd	expect 0 mkdir ${n0} 0755
48210984Spjd	expect 0 chflags ${n0} UF_IMMUTABLE
49210984Spjd	expect EPERM rmdir ${n0}
50210984Spjd	expect 0 chflags ${n0} none
51210984Spjd	expect 0 rmdir ${n0}
52210984Spjd
53210984Spjd	expect 0 mkdir ${n0} 0755
54210984Spjd	expect 0 chflags ${n0} UF_NOUNLINK
55210984Spjd	expect EPERM rmdir ${n0}
56210984Spjd	expect 0 chflags ${n0} none
57210984Spjd	expect 0 rmdir ${n0}
58210984Spjd
59210984Spjd	expect 0 mkdir ${n0} 0755
60210984Spjd	expect 0 chflags ${n0} UF_APPEND
61210984Spjd	expect EPERM rmdir ${n0}
62210984Spjd	expect 0 chflags ${n0} none
63210984Spjd	expect 0 rmdir ${n0}
64210984Spjd	;;
65210984Spjdesac
66