1166065Spjd#!/bin/sh
2166065Spjd# $FreeBSD: releng/10.2/tools/regression/pjdfstest/tests/open/06.t 210955 2010-08-06 19:20:35Z pjd $
3166065Spjd
4166065Spjddesc="open returns EACCES when the required permissions (for reading and/or writing) are denied for the given flags"
5166065Spjd
6166065Spjddir=`dirname $0`
7166065Spjd. ${dir}/../misc.sh
8166065Spjd
9210955Spjdecho "1..144"
10166065Spjd
11166065Spjdn0=`namegen`
12166065Spjdn1=`namegen`
13166065Spjd
14166065Spjdexpect 0 mkdir ${n0} 0755
15166065Spjdexpect 0 chown ${n0} 65534 65534
16166065Spjdcdir=`pwd`
17166065Spjdcd ${n0}
18166065Spjd
19210955Spjd# Regular file.
20210955Spjd
21166065Spjdexpect 0 -u 65534 -g 65534 create ${n1} 0644
22166065Spjd
23166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
24210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
25210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
26210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDWR,
27166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
28210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
29210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
30210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDWR,
31166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
32210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
33210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
34210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDWR,
35166065Spjd
36166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
37210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
38210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
39210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
40210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
41210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
42210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
43210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
44210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
45210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
46210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
47210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
48210955Spjd
49210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0277
50210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
51210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
52210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
53210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0727
54210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
55210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
56210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
57210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0772
58210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
59210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
60210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
61210955Spjd
62210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
63210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
64210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
65210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
66210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
67210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
68210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
69210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
70210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
71210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
72210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
73210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
74210955Spjd
75210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
76210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
77210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
78210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
79210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
80210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
81210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
82210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
83210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
84210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
85210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
86210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
87210955Spjd
88210955Spjdexpect 0 -u 65534 -g 65534 unlink ${n1}
89210955Spjd
90210955Spjd# FIFO.
91210955Spjd
92210955Spjdexpect 0 -u 65534 -g 65534 mkfifo ${n1} 0644
93210955Spjd
94210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
95210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
96210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
97210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
98210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
99210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
100210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
101210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
102210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDWR,O_NONBLOCK
103210955Spjd
104210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
105210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
106166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
107166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
108166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
109210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
110166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
111166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
112166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
113210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
114166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
115166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
116166065Spjd
117166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
118166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
119166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
120166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
121166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
122166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
123166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
124166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
125166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
126166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
127166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
128166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
129166065Spjd
130166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
131166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
132166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
133166065Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
134166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
135166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
136166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
137166065Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
138166065Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
139166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
140166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
141166065Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
142166065Spjd
143166065Spjdexpect 0 -u 65534 -g 65534 unlink ${n1}
144166065Spjd
145210955Spjd# Directory.
146210955Spjd
147210955Spjdexpect 0 -u 65534 -g 65534 mkdir ${n1} 0755
148210955Spjd
149210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
150210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
151210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
152210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
153210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
154210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
155210955Spjd
156210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
157210955Spjdexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
158210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
159210955Spjdexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
160210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
161210955Spjdexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
162210955Spjd
163210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0277
164210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
165210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0727
166210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
167210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0772
168210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
169210955Spjd
170210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
171210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
172210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
173210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
174210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
175210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
176210955Spjd
177210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
178210955Spjdexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
179210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
180210955Spjdexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
181210955Spjdexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
182210955Spjdexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
183210955Spjd
184210955Spjdexpect 0 -u 65534 -g 65534 rmdir ${n1}
185210955Spjd
186166065Spjdcd ${cdir}
187166065Spjdexpect 0 rmdir ${n0}
188