09.t revision 166065
1258945Sroberto#!/bin/sh
2258945Sroberto# $FreeBSD: head/tools/regression/fstest/tests/open/09.t 166065 2007-01-17 01:42:12Z pjd $
3258945Sroberto
4280849Scydesc="O_CREAT is specified, the file does not exist, and the directory in which it is to be created has its immutable flag set"
5280849Scy
6258945Srobertodir=`dirname $0`
7258945Sroberto. ${dir}/../misc.sh
8280849Scy
9258945Srobertorequire chflags
10258945Sroberto
11258945Srobertoecho "1..30"
12258945Sroberto
13280849Scyn0=`namegen`
14280849Scyn1=`namegen`
15258945Sroberto
16280849Scyexpect 0 mkdir ${n0} 0755
17280849Scy
18280849Scyexpect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
19280849Scyexpect 0 unlink ${n0}/${n1}
20280849Scy
21280849Scyexpect 0 chflags ${n0} SF_IMMUTABLE
22258945Srobertoexpect EPERM open ${n0}/${n1} O_RDONLY,O_CREAT 0644
23258945Srobertoexpect 0 chflags ${n0} none
24258945Srobertoexpect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
25280849Scyexpect 0 unlink ${n0}/${n1}
26280849Scy
27280849Scyexpect 0 chflags ${n0} UF_IMMUTABLE
28280849Scyexpect EPERM open ${n0}/${n1} O_RDONLY,O_CREAT 0644
29280849Scyexpect 0 chflags ${n0} none
30280849Scyexpect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
31258945Srobertoexpect 0 unlink ${n0}/${n1}
32280849Scy
33expect 0 chflags ${n0} SF_APPEND
34expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
35expect 0 chflags ${n0} none
36expect 0 unlink ${n0}/${n1}
37
38expect 0 chflags ${n0} UF_APPEND
39expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
40expect 0 chflags ${n0} none
41expect 0 unlink ${n0}/${n1}
42
43expect 0 chflags ${n0} SF_NOUNLINK
44expect 0 open ${n0}/${n1} O_RDONLY,O_CREAT 0644
45expect 0 chflags ${n0} none
46expect 0 unlink ${n0}/${n1}
47
48expect 0 chflags ${n0} UF_NOUNLINK
49expect 0 symlink test ${n0}/${n1}
50expect 0 chflags ${n0} none
51expect 0 unlink ${n0}/${n1}
52
53expect 0 rmdir ${n0}
54