]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/pjdfstest/tests/rmdir/10.t
dts: Update our copy to Linux 4.17
[FreeBSD/FreeBSD.git] / contrib / pjdfstest / tests / rmdir / 10.t
1 #!/bin/sh
2 # vim: filetype=sh noexpandtab ts=8 sw=8
3 # $FreeBSD: head/tools/regression/pjdfstest/tests/rmdir/10.t 211352 2010-08-15 21:24:17Z pjd $
4
5 desc="rmdir returns EPERM if the parent directory of the named file has its immutable or append-only flag set"
6
7 dir=`dirname $0`
8 . ${dir}/../misc.sh
9
10 require chflags
11
12 case "${os}:${fs}" in
13 FreeBSD:ZFS)
14         echo "1..16"
15         ;;
16 FreeBSD:UFS)
17         echo "1..30"
18         ;;
19 *)
20         quick_exit
21 esac
22
23 n0=`namegen`
24 n1=`namegen`
25
26 expect 0 mkdir ${n0} 0755
27
28 expect 0 mkdir ${n0}/${n1} 0755
29 expect 0 chflags ${n0} SF_IMMUTABLE
30 expect EPERM rmdir ${n0}/${n1}
31 expect 0 chflags ${n0} none
32 expect 0 rmdir ${n0}/${n1}
33
34 expect 0 mkdir ${n0}/${n1} 0755
35 expect 0 chflags ${n0} SF_NOUNLINK
36 expect 0 rmdir ${n0}/${n1}
37 expect 0 chflags ${n0} none
38
39 expect 0 mkdir ${n0}/${n1} 0755
40 expect 0 chflags ${n0} SF_APPEND
41 todo FreeBSD:ZFS "Removing an entry from directory protected by SF_APPEND should return EPERM."
42 expect EPERM rmdir ${n0}/${n1}
43 expect 0 chflags ${n0} none
44 todo FreeBSD:ZFS "Removing an entry from directory protected by SF_APPEND should return EPERM."
45 expect 0 rmdir ${n0}/${n1}
46
47 case "${os}:${fs}" in
48 FreeBSD:UFS)
49         expect 0 mkdir ${n0}/${n1} 0755
50         expect 0 chflags ${n0} UF_IMMUTABLE
51         expect EPERM rmdir ${n0}/${n1}
52         expect 0 chflags ${n0} none
53         expect 0 rmdir ${n0}/${n1}
54
55         expect 0 mkdir ${n0}/${n1} 0755
56         expect 0 chflags ${n0} UF_NOUNLINK
57         expect 0 rmdir ${n0}/${n1}
58         expect 0 chflags ${n0} none
59
60         expect 0 mkdir ${n0}/${n1} 0755
61         expect 0 chflags ${n0} UF_APPEND
62         expect EPERM rmdir ${n0}/${n1}
63         expect 0 chflags ${n0} none
64         expect 0 rmdir ${n0}/${n1}
65         ;;
66 esac
67
68 expect 0 rmdir ${n0}