]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - tools/regression/pjdfstest/tests/open/06.t
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / tools / regression / pjdfstest / tests / open / 06.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 desc="open returns EACCES when the required permissions (for reading and/or writing) are denied for the given flags"
5
6 dir=`dirname $0`
7 . ${dir}/../misc.sh
8
9 echo "1..144"
10
11 n0=`namegen`
12 n1=`namegen`
13
14 expect 0 mkdir ${n0} 0755
15 expect 0 chown ${n0} 65534 65534
16 cdir=`pwd`
17 cd ${n0}
18
19 # Regular file.
20
21 expect 0 -u 65534 -g 65534 create ${n1} 0644
22
23 expect 0 -u 65534 -g 65534 chmod ${n1} 0600
24 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
25 expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
26 expect 0 -u 65534 -g 65534 open ${n1} O_RDWR,
27 expect 0 -u 65534 -g 65534 chmod ${n1} 0060
28 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
29 expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
30 expect 0 -u 65533 -g 65534 open ${n1} O_RDWR,
31 expect 0 -u 65534 -g 65534 chmod ${n1} 0006
32 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
33 expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
34 expect 0 -u 65533 -g 65533 open ${n1} O_RDWR,
35
36 expect 0 -u 65534 -g 65534 chmod ${n1} 0477
37 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,
38 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
39 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
40 expect 0 -u 65534 -g 65534 chmod ${n1} 0747
41 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,
42 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
43 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
44 expect 0 -u 65534 -g 65534 chmod ${n1} 0774
45 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,
46 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
47 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
48
49 expect 0 -u 65534 -g 65534 chmod ${n1} 0277
50 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
51 expect 0 -u 65534 -g 65534 open ${n1} O_WRONLY,
52 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
53 expect 0 -u 65534 -g 65534 chmod ${n1} 0727
54 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
55 expect 0 -u 65533 -g 65534 open ${n1} O_WRONLY,
56 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
57 expect 0 -u 65534 -g 65534 chmod ${n1} 0772
58 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
59 expect 0 -u 65533 -g 65533 open ${n1} O_WRONLY,
60 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
61
62 expect 0 -u 65534 -g 65534 chmod ${n1} 0177
63 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
64 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
65 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
66 expect 0 -u 65534 -g 65534 chmod ${n1} 0717
67 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
68 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
69 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
70 expect 0 -u 65534 -g 65534 chmod ${n1} 0771
71 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
72 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
73 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
74
75 expect 0 -u 65534 -g 65534 chmod ${n1} 0077
76 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,
77 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY,
78 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR,
79 expect 0 -u 65534 -g 65534 chmod ${n1} 0707
80 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY,
81 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY,
82 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR,
83 expect 0 -u 65534 -g 65534 chmod ${n1} 0770
84 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,
85 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY,
86 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR,
87
88 expect 0 -u 65534 -g 65534 unlink ${n1}
89
90 # FIFO.
91
92 expect 0 -u 65534 -g 65534 mkfifo ${n1} 0644
93
94 expect 0 -u 65534 -g 65534 chmod ${n1} 0600
95 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
96 expect 0 -u 65534 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
97 expect 0 -u 65534 -g 65534 chmod ${n1} 0060
98 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
99 expect 0 -u 65533 -g 65534 open ${n1} O_RDWR,O_NONBLOCK
100 expect 0 -u 65534 -g 65534 chmod ${n1} 0006
101 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
102 expect 0 -u 65533 -g 65533 open ${n1} O_RDWR,O_NONBLOCK
103
104 expect 0 -u 65534 -g 65534 chmod ${n1} 0477
105 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
106 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
107 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
108 expect 0 -u 65534 -g 65534 chmod ${n1} 0747
109 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY,O_NONBLOCK
110 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
111 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
112 expect 0 -u 65534 -g 65534 chmod ${n1} 0774
113 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY,O_NONBLOCK
114 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
115 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
116
117 expect 0 -u 65534 -g 65534 chmod ${n1} 0177
118 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
119 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
120 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
121 expect 0 -u 65534 -g 65534 chmod ${n1} 0717
122 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
123 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
124 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
125 expect 0 -u 65534 -g 65534 chmod ${n1} 0771
126 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
127 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
128 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
129
130 expect 0 -u 65534 -g 65534 chmod ${n1} 0077
131 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
132 expect EACCES -u 65534 -g 65534 open ${n1} O_WRONLY
133 expect EACCES -u 65534 -g 65534 open ${n1} O_RDWR
134 expect 0 -u 65534 -g 65534 chmod ${n1} 0707
135 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
136 expect EACCES -u 65533 -g 65534 open ${n1} O_WRONLY
137 expect EACCES -u 65533 -g 65534 open ${n1} O_RDWR
138 expect 0 -u 65534 -g 65534 chmod ${n1} 0770
139 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
140 expect EACCES -u 65533 -g 65533 open ${n1} O_WRONLY
141 expect EACCES -u 65533 -g 65533 open ${n1} O_RDWR
142
143 expect 0 -u 65534 -g 65534 unlink ${n1}
144
145 # Directory.
146
147 expect 0 -u 65534 -g 65534 mkdir ${n1} 0755
148
149 expect 0 -u 65534 -g 65534 chmod ${n1} 0600
150 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
151 expect 0 -u 65534 -g 65534 chmod ${n1} 0060
152 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
153 expect 0 -u 65534 -g 65534 chmod ${n1} 0006
154 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
155
156 expect 0 -u 65534 -g 65534 chmod ${n1} 0477
157 expect 0 -u 65534 -g 65534 open ${n1} O_RDONLY
158 expect 0 -u 65534 -g 65534 chmod ${n1} 0747
159 expect 0 -u 65533 -g 65534 open ${n1} O_RDONLY
160 expect 0 -u 65534 -g 65534 chmod ${n1} 0774
161 expect 0 -u 65533 -g 65533 open ${n1} O_RDONLY
162
163 expect 0 -u 65534 -g 65534 chmod ${n1} 0277
164 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
165 expect 0 -u 65534 -g 65534 chmod ${n1} 0727
166 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
167 expect 0 -u 65534 -g 65534 chmod ${n1} 0772
168 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
169
170 expect 0 -u 65534 -g 65534 chmod ${n1} 0177
171 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
172 expect 0 -u 65534 -g 65534 chmod ${n1} 0717
173 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
174 expect 0 -u 65534 -g 65534 chmod ${n1} 0771
175 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
176
177 expect 0 -u 65534 -g 65534 chmod ${n1} 0077
178 expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY
179 expect 0 -u 65534 -g 65534 chmod ${n1} 0707
180 expect EACCES -u 65533 -g 65534 open ${n1} O_RDONLY
181 expect 0 -u 65534 -g 65534 chmod ${n1} 0770
182 expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY
183
184 expect 0 -u 65534 -g 65534 rmdir ${n1}
185
186 cd ${cdir}
187 expect 0 rmdir ${n0}