VirtualBox

source: kBuild/vendor/grep/2.12/gnulib-tests/test-sys_stat.c

Last change on this file was 2595, checked in by bird, 13 years ago

gnu grep version 2.12 (grep-2.12.tar.xz, md5sum=8d2f0346d08b13c18afb81f0e8aa1e2f)

  • Property svn:eol-style set to native
File size: 6.9 KB
Line 
1/* Test of <sys/stat.h> substitute.
2 Copyright (C) 2007-2012 Free Software Foundation, Inc.
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
16
17/* Written by Bruno Haible <[email protected]>, 2007. */
18
19#include <config.h>
20
21#include <sys/stat.h>
22
23#include "verify.h"
24
25/* Check the existence of some macros. */
26int a[] =
27 {
28 S_IFMT,
29#ifdef S_IFBLK /* missing on MSVC */
30 S_IFBLK,
31#endif
32 S_IFCHR, S_IFDIR, S_IFIFO, S_IFREG,
33#ifdef S_IFLNK /* missing on native Windows and DJGPP */
34 S_IFLNK,
35#endif
36#ifdef S_IFSOCK /* missing on native Windows and DJGPP */
37 S_IFSOCK,
38#endif
39 S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR,
40 S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP,
41 S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH,
42 S_ISUID, S_ISGID, S_ISVTX,
43 S_ISBLK (S_IFREG),
44 S_ISCHR (S_IFREG),
45 S_ISDIR (S_IFREG),
46 S_ISFIFO (S_IFREG),
47 S_ISREG (S_IFREG),
48 S_ISLNK (S_IFREG),
49 S_ISSOCK (S_IFREG),
50 S_ISDOOR (S_IFREG),
51 S_ISMPB (S_IFREG),
52 S_ISNAM (S_IFREG),
53 S_ISNWK (S_IFREG),
54 S_ISPORT (S_IFREG),
55 S_ISCTG (S_IFREG),
56 S_ISOFD (S_IFREG),
57 S_ISOFL (S_IFREG),
58 S_ISWHT (S_IFREG)
59 };
60
61/* Sanity checks. */
62
63verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR));
64verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP));
65verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH));
66
67#ifdef S_IFBLK
68verify (S_ISBLK (S_IFBLK));
69#endif
70verify (!S_ISBLK (S_IFCHR));
71verify (!S_ISBLK (S_IFDIR));
72verify (!S_ISBLK (S_IFIFO));
73verify (!S_ISBLK (S_IFREG));
74#ifdef S_IFLNK
75verify (!S_ISBLK (S_IFLNK));
76#endif
77#ifdef S_IFSOCK
78verify (!S_ISBLK (S_IFSOCK));
79#endif
80
81#ifdef S_IFBLK
82verify (!S_ISCHR (S_IFBLK));
83#endif
84verify (S_ISCHR (S_IFCHR));
85verify (!S_ISCHR (S_IFDIR));
86verify (!S_ISCHR (S_IFIFO));
87verify (!S_ISCHR (S_IFREG));
88#ifdef S_IFLNK
89verify (!S_ISCHR (S_IFLNK));
90#endif
91#ifdef S_IFSOCK
92verify (!S_ISCHR (S_IFSOCK));
93#endif
94
95#ifdef S_IFBLK
96verify (!S_ISDIR (S_IFBLK));
97#endif
98verify (!S_ISDIR (S_IFCHR));
99verify (S_ISDIR (S_IFDIR));
100verify (!S_ISDIR (S_IFIFO));
101verify (!S_ISDIR (S_IFREG));
102#ifdef S_IFLNK
103verify (!S_ISDIR (S_IFLNK));
104#endif
105#ifdef S_IFSOCK
106verify (!S_ISDIR (S_IFSOCK));
107#endif
108
109#ifdef S_IFBLK
110verify (!S_ISFIFO (S_IFBLK));
111#endif
112verify (!S_ISFIFO (S_IFCHR));
113verify (!S_ISFIFO (S_IFDIR));
114verify (S_ISFIFO (S_IFIFO));
115verify (!S_ISFIFO (S_IFREG));
116#ifdef S_IFLNK
117verify (!S_ISFIFO (S_IFLNK));
118#endif
119#ifdef S_IFSOCK
120verify (!S_ISFIFO (S_IFSOCK));
121#endif
122
123#ifdef S_IFBLK
124verify (!S_ISREG (S_IFBLK));
125#endif
126verify (!S_ISREG (S_IFCHR));
127verify (!S_ISREG (S_IFDIR));
128verify (!S_ISREG (S_IFIFO));
129verify (S_ISREG (S_IFREG));
130#ifdef S_IFLNK
131verify (!S_ISREG (S_IFLNK));
132#endif
133#ifdef S_IFSOCK
134verify (!S_ISREG (S_IFSOCK));
135#endif
136
137#ifdef S_IFBLK
138verify (!S_ISLNK (S_IFBLK));
139#endif
140verify (!S_ISLNK (S_IFCHR));
141verify (!S_ISLNK (S_IFDIR));
142verify (!S_ISLNK (S_IFIFO));
143verify (!S_ISLNK (S_IFREG));
144#ifdef S_IFLNK
145verify (S_ISLNK (S_IFLNK));
146#endif
147#ifdef S_IFSOCK
148verify (!S_ISLNK (S_IFSOCK));
149#endif
150
151#ifdef S_IFBLK
152verify (!S_ISSOCK (S_IFBLK));
153#endif
154verify (!S_ISSOCK (S_IFCHR));
155verify (!S_ISSOCK (S_IFDIR));
156verify (!S_ISSOCK (S_IFIFO));
157verify (!S_ISSOCK (S_IFREG));
158#ifdef S_IFLNK
159verify (!S_ISSOCK (S_IFLNK));
160#endif
161#ifdef S_IFSOCK
162verify (S_ISSOCK (S_IFSOCK));
163#endif
164
165#ifdef S_IFBLK
166verify (!S_ISDOOR (S_IFBLK));
167#endif
168verify (!S_ISDOOR (S_IFCHR));
169verify (!S_ISDOOR (S_IFDIR));
170verify (!S_ISDOOR (S_IFIFO));
171verify (!S_ISDOOR (S_IFREG));
172#ifdef S_IFLNK
173verify (!S_ISDOOR (S_IFLNK));
174#endif
175#ifdef S_IFSOCK
176verify (!S_ISDOOR (S_IFSOCK));
177#endif
178
179#ifdef S_IFBLK
180verify (!S_ISMPB (S_IFBLK));
181#endif
182verify (!S_ISMPB (S_IFCHR));
183verify (!S_ISMPB (S_IFDIR));
184verify (!S_ISMPB (S_IFIFO));
185verify (!S_ISMPB (S_IFREG));
186#ifdef S_IFLNK
187verify (!S_ISMPB (S_IFLNK));
188#endif
189#ifdef S_IFSOCK
190verify (!S_ISMPB (S_IFSOCK));
191#endif
192
193#ifdef S_IFBLK
194verify (!S_ISNAM (S_IFBLK));
195#endif
196verify (!S_ISNAM (S_IFCHR));
197verify (!S_ISNAM (S_IFDIR));
198verify (!S_ISNAM (S_IFIFO));
199verify (!S_ISNAM (S_IFREG));
200#ifdef S_IFLNK
201verify (!S_ISNAM (S_IFLNK));
202#endif
203#ifdef S_IFSOCK
204verify (!S_ISNAM (S_IFSOCK));
205#endif
206
207#ifdef S_IFBLK
208verify (!S_ISNWK (S_IFBLK));
209#endif
210verify (!S_ISNWK (S_IFCHR));
211verify (!S_ISNWK (S_IFDIR));
212verify (!S_ISNWK (S_IFIFO));
213verify (!S_ISNWK (S_IFREG));
214#ifdef S_IFLNK
215verify (!S_ISNWK (S_IFLNK));
216#endif
217#ifdef S_IFSOCK
218verify (!S_ISNWK (S_IFSOCK));
219#endif
220
221#ifdef S_IFBLK
222verify (!S_ISPORT (S_IFBLK));
223#endif
224verify (!S_ISPORT (S_IFCHR));
225verify (!S_ISPORT (S_IFDIR));
226verify (!S_ISPORT (S_IFIFO));
227verify (!S_ISPORT (S_IFREG));
228#ifdef S_IFLNK
229verify (!S_ISPORT (S_IFLNK));
230#endif
231#ifdef S_IFSOCK
232verify (!S_ISPORT (S_IFSOCK));
233#endif
234
235#ifdef S_IFBLK
236verify (!S_ISCTG (S_IFBLK));
237#endif
238verify (!S_ISCTG (S_IFCHR));
239verify (!S_ISCTG (S_IFDIR));
240verify (!S_ISCTG (S_IFIFO));
241verify (!S_ISCTG (S_IFREG));
242#ifdef S_IFLNK
243verify (!S_ISCTG (S_IFLNK));
244#endif
245#ifdef S_IFSOCK
246verify (!S_ISCTG (S_IFSOCK));
247#endif
248
249#ifdef S_IFBLK
250verify (!S_ISOFD (S_IFBLK));
251#endif
252verify (!S_ISOFD (S_IFCHR));
253verify (!S_ISOFD (S_IFDIR));
254verify (!S_ISOFD (S_IFIFO));
255verify (!S_ISOFD (S_IFREG));
256#ifdef S_IFLNK
257verify (!S_ISOFD (S_IFLNK));
258#endif
259#ifdef S_IFSOCK
260verify (!S_ISOFD (S_IFSOCK));
261#endif
262
263#ifdef S_IFBLK
264verify (!S_ISOFL (S_IFBLK));
265#endif
266verify (!S_ISOFL (S_IFCHR));
267verify (!S_ISOFL (S_IFDIR));
268verify (!S_ISOFL (S_IFIFO));
269verify (!S_ISOFL (S_IFREG));
270#ifdef S_IFLNK
271verify (!S_ISOFL (S_IFLNK));
272#endif
273#ifdef S_IFSOCK
274verify (!S_ISOFL (S_IFSOCK));
275#endif
276
277#ifdef S_IFBLK
278verify (!S_ISWHT (S_IFBLK));
279#endif
280verify (!S_ISWHT (S_IFCHR));
281verify (!S_ISWHT (S_IFDIR));
282verify (!S_ISWHT (S_IFIFO));
283verify (!S_ISWHT (S_IFREG));
284#ifdef S_IFLNK
285verify (!S_ISWHT (S_IFLNK));
286#endif
287#ifdef S_IFSOCK
288verify (!S_ISWHT (S_IFSOCK));
289#endif
290
291/* POSIX 2008 requires traditional encoding of permission constants. */
292verify (S_IRWXU == 00700);
293verify (S_IRUSR == 00400);
294verify (S_IWUSR == 00200);
295verify (S_IXUSR == 00100);
296verify (S_IRWXG == 00070);
297verify (S_IRGRP == 00040);
298verify (S_IWGRP == 00020);
299verify (S_IXGRP == 00010);
300verify (S_IRWXO == 00007);
301verify (S_IROTH == 00004);
302verify (S_IWOTH == 00002);
303verify (S_IXOTH == 00001);
304verify (S_ISUID == 04000);
305verify (S_ISGID == 02000);
306verify (S_ISVTX == 01000);
307
308#if ((0 <= UTIME_NOW && UTIME_NOW < 1000000000) \
309 || (0 <= UTIME_OMIT && UTIME_OMIT < 1000000000) \
310 || UTIME_NOW == UTIME_OMIT)
311invalid UTIME macros
312#endif
313
314/* Check the existence of some types. */
315nlink_t t1;
316off_t t2;
317mode_t t3;
318
319struct timespec st;
320
321int
322main (void)
323{
324 return 0;
325}
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette