1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/open/06.t 211352 2010-08-15 21:24:17Z pjd $
3271294Sngie
4271294Sngiedesc="open returns EACCES when the required permissions (for reading and/or writing) are denied for the given flags"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngieecho "1..144"
10271294Sngie
11271294Sngien0=`namegen`
12271294Sngien1=`namegen`
13271294Sngie
14271294Sngieexpect 0 mkdir ${n0} 0755
15271294Sngieexpect 0 chown ${n0} 65534 65534
16271294Sngiecdir=`pwd`
17271294Sngiecd ${n0}
18271294Sngie
19271294Sngie# Regular file.
20271294Sngie
21271294Sngieexpect 0 -u 65534 -g 65534 create ${n1} 0644
22271294Sngie
23271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
24271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
25271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
26271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDWR,
27271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
28271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
29271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
30271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDWR,
31271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
32271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
33271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
34271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDWR,
35271294Sngie
36271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
37271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
38271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
39271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
40271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
41271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
42271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
43271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
44271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
45271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
46271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
47271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
48271294Sngie
49271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0277
50271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
51271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
52271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
53271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0727
54271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
55271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
56271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
57271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0772
58271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
59271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
60271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
61271294Sngie
62271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
63271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
64271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
65271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
66271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
67271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
68271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
69271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
70271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
71271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
72271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
73271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
74271294Sngie
75271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
76271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
77271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
78271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
79271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
80271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
81271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
82271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
83271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
84271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
85271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
86271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
87271294Sngie
88271294Sngieexpect 0 -u 65534 -g 65534 unlink ${n1}
89271294Sngie
90271294Sngie# FIFO.
91271294Sngie
92271294Sngieexpect 0 -u 65534 -g 65534 mkfifo ${n1} 0644
93271294Sngie
94271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
95271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
96271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
97271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
98271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
99271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
100271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
101271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
102271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDWR,O_NONBLOCK
103271294Sngie
104271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
105271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
106271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
107271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
108271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
109271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
110271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
111271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
112271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
113271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
114271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
115271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
116271294Sngie
117271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
118271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
119271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
120271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
121271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
122271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
123271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
124271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
125271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
126271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
127271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
128271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
129271294Sngie
130271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
131271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
132271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
133271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
134271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
135271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
136271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
137271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
138271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
139271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
140271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
141271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
142271294Sngie
143271294Sngieexpect 0 -u 65534 -g 65534 unlink ${n1}
144271294Sngie
145271294Sngie# Directory.
146271294Sngie
147271294Sngieexpect 0 -u 65534 -g 65534 mkdir ${n1} 0755
148271294Sngie
149271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0600
150271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
151271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0060
152271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
153271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0006
154271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
155271294Sngie
156271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0477
157271294Sngieexpect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
158271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0747
159271294Sngieexpect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
160271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0774
161271294Sngieexpect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
162271294Sngie
163271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0277
164271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
165271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0727
166271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
167271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0772
168271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
169271294Sngie
170271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0177
171271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
172271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0717
173271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
174271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0771
175271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
176271294Sngie
177271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0077
178271294Sngieexpect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
179271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0707
180271294Sngieexpect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
181271294Sngieexpect 0 -u 65534 -g 65534 chmod ${n1} 0770
182271294Sngieexpect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
183271294Sngie
184271294Sngieexpect 0 -u 65534 -g 65534 rmdir ${n1}
185271294Sngie
186271294Sngiecd ${cdir}
187271294Sngieexpect 0 rmdir ${n0}
188