1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/rmdir/09.t 211352 2010-08-15 21:24:17Z pjd $
3271294Sngie
4271294Sngiedesc="rmdir returns EPERM if the named directory has its immutable, undeletable or append-only flag set"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngierequire chflags
10271294Sngie
11271294Sngiecase "${os}:${fs}" in
12271294SngieFreeBSD:ZFS)
13271294Sngie	echo "1..15"
14271294Sngie	;;
15271294SngieFreeBSD:UFS)
16271294Sngie	echo "1..30"
17271294Sngie	;;
18271294Sngie*)
19271294Sngie	quick_exit
20271294Sngieesac
21271294Sngie
22271294Sngien0=`namegen`
23271294Sngie
24271294Sngieexpect 0 mkdir ${n0} 0755
25271294Sngieexpect 0 chflags ${n0} SF_IMMUTABLE
26271294Sngieexpect EPERM rmdir ${n0}
27271294Sngieexpect 0 chflags ${n0} none
28271294Sngieexpect 0 rmdir ${n0}
29271294Sngie
30271294Sngieexpect 0 mkdir ${n0} 0755
31271294Sngieexpect 0 chflags ${n0} SF_NOUNLINK
32271294Sngieexpect EPERM rmdir ${n0}
33271294Sngieexpect 0 chflags ${n0} none
34271294Sngieexpect 0 rmdir ${n0}
35271294Sngie
36271294Sngieexpect 0 mkdir ${n0} 0755
37271294Sngieexpect 0 chflags ${n0} SF_APPEND
38271294Sngietodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
39271294Sngieexpect EPERM rmdir ${n0}
40271294Sngietodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
41271294Sngieexpect 0 chflags ${n0} none
42271294Sngietodo FreeBSD:ZFS "Removing a directory protected by SF_APPEND should return EPERM."
43271294Sngieexpect 0 rmdir ${n0}
44271294Sngie
45271294Sngiecase "${os}:${fs}" in
46271294SngieFreeBSD:UFS)
47271294Sngie	expect 0 mkdir ${n0} 0755
48271294Sngie	expect 0 chflags ${n0} UF_IMMUTABLE
49271294Sngie	expect EPERM rmdir ${n0}
50271294Sngie	expect 0 chflags ${n0} none
51271294Sngie	expect 0 rmdir ${n0}
52271294Sngie
53271294Sngie	expect 0 mkdir ${n0} 0755
54271294Sngie	expect 0 chflags ${n0} UF_NOUNLINK
55271294Sngie	expect EPERM rmdir ${n0}
56271294Sngie	expect 0 chflags ${n0} none
57271294Sngie	expect 0 rmdir ${n0}
58271294Sngie
59271294Sngie	expect 0 mkdir ${n0} 0755
60271294Sngie	expect 0 chflags ${n0} UF_APPEND
61271294Sngie	expect EPERM rmdir ${n0}
62271294Sngie	expect 0 chflags ${n0} none
63271294Sngie	expect 0 rmdir ${n0}
64271294Sngie	;;
65271294Sngieesac
66