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