* lib/getcwd.c (__getcwd): Undo previous change; it mishandled
[gnulib.git] / tests / test-sys_stat.c
1 /* Test of <sys/stat.h> substitute.
2    Copyright (C) 2007 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 2, or (at your option)
7    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, write to the Free Software Foundation,
16    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
17
18 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
19
20 #include <config.h>
21
22 #include <sys/stat.h>
23
24 #include "verify.h"
25
26 /* Check the existence of some macros.  */
27 int a[] =
28   {
29     S_IFMT,
30     S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFREG,
31 #ifdef S_IFLNK /* missing on mingw and djgpp */
32     S_IFLNK,
33 #endif
34 #ifdef S_IFSOCK /* missing on mingw and djgpp */
35     S_IFSOCK,
36 #endif
37     S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR,
38     S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP,
39     S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH,
40     S_ISUID, S_ISGID, S_ISVTX,
41     S_ISBLK (S_IFREG),
42     S_ISCHR (S_IFREG),
43     S_ISDIR (S_IFREG),
44     S_ISFIFO (S_IFREG),
45     S_ISREG (S_IFREG),
46     S_ISLNK (S_IFREG),
47     S_ISSOCK (S_IFREG),
48     S_ISDOOR (S_IFREG),
49     S_ISMPB (S_IFREG),
50     S_ISNAM (S_IFREG),
51     S_ISNWK (S_IFREG),
52     S_ISPORT (S_IFREG),
53     S_ISCTG (S_IFREG),
54     S_ISOFD (S_IFREG),
55     S_ISOFL (S_IFREG),
56     S_ISWHT (S_IFREG)
57   };
58
59 /* Sanity checks.  */
60
61 verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR));
62 verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP));
63 verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH));
64
65 verify (S_ISBLK (S_IFBLK));
66 verify (!S_ISBLK (S_IFCHR));
67 verify (!S_ISBLK (S_IFDIR));
68 verify (!S_ISBLK (S_IFIFO));
69 verify (!S_ISBLK (S_IFREG));
70 #ifdef S_IFLNK
71 verify (!S_ISBLK (S_IFLNK));
72 #endif
73 #ifdef S_IFSOCK
74 verify (!S_ISBLK (S_IFSOCK));
75 #endif
76
77 verify (!S_ISCHR (S_IFBLK));
78 verify (S_ISCHR (S_IFCHR));
79 verify (!S_ISCHR (S_IFDIR));
80 verify (!S_ISCHR (S_IFIFO));
81 verify (!S_ISCHR (S_IFREG));
82 #ifdef S_IFLNK
83 verify (!S_ISCHR (S_IFLNK));
84 #endif
85 #ifdef S_IFSOCK
86 verify (!S_ISCHR (S_IFSOCK));
87 #endif
88
89 verify (!S_ISDIR (S_IFBLK));
90 verify (!S_ISDIR (S_IFCHR));
91 verify (S_ISDIR (S_IFDIR));
92 verify (!S_ISDIR (S_IFIFO));
93 verify (!S_ISDIR (S_IFREG));
94 #ifdef S_IFLNK
95 verify (!S_ISDIR (S_IFLNK));
96 #endif
97 #ifdef S_IFSOCK
98 verify (!S_ISDIR (S_IFSOCK));
99 #endif
100
101 verify (!S_ISFIFO (S_IFBLK));
102 verify (!S_ISFIFO (S_IFCHR));
103 verify (!S_ISFIFO (S_IFDIR));
104 verify (S_ISFIFO (S_IFIFO));
105 verify (!S_ISFIFO (S_IFREG));
106 #ifdef S_IFLNK
107 verify (!S_ISFIFO (S_IFLNK));
108 #endif
109 #ifdef S_IFSOCK
110 verify (!S_ISFIFO (S_IFSOCK));
111 #endif
112
113 verify (!S_ISREG (S_IFBLK));
114 verify (!S_ISREG (S_IFCHR));
115 verify (!S_ISREG (S_IFDIR));
116 verify (!S_ISREG (S_IFIFO));
117 verify (S_ISREG (S_IFREG));
118 #ifdef S_IFLNK
119 verify (!S_ISREG (S_IFLNK));
120 #endif
121 #ifdef S_IFSOCK
122 verify (!S_ISREG (S_IFSOCK));
123 #endif
124
125 verify (!S_ISLNK (S_IFBLK));
126 verify (!S_ISLNK (S_IFCHR));
127 verify (!S_ISLNK (S_IFDIR));
128 verify (!S_ISLNK (S_IFIFO));
129 verify (!S_ISLNK (S_IFREG));
130 #ifdef S_IFLNK
131 verify (S_ISLNK (S_IFLNK));
132 #endif
133 #ifdef S_IFSOCK
134 verify (!S_ISLNK (S_IFSOCK));
135 #endif
136
137 verify (!S_ISSOCK (S_IFBLK));
138 verify (!S_ISSOCK (S_IFCHR));
139 verify (!S_ISSOCK (S_IFDIR));
140 verify (!S_ISSOCK (S_IFIFO));
141 verify (!S_ISSOCK (S_IFREG));
142 #ifdef S_IFLNK
143 verify (!S_ISSOCK (S_IFLNK));
144 #endif
145 #ifdef S_IFSOCK
146 verify (S_ISSOCK (S_IFSOCK));
147 #endif
148
149 verify (!S_ISDOOR (S_IFBLK));
150 verify (!S_ISDOOR (S_IFCHR));
151 verify (!S_ISDOOR (S_IFDIR));
152 verify (!S_ISDOOR (S_IFIFO));
153 verify (!S_ISDOOR (S_IFREG));
154 #ifdef S_IFLNK
155 verify (!S_ISDOOR (S_IFLNK));
156 #endif
157 #ifdef S_IFSOCK
158 verify (!S_ISDOOR (S_IFSOCK));
159 #endif
160
161 verify (!S_ISMPB (S_IFBLK));
162 verify (!S_ISMPB (S_IFCHR));
163 verify (!S_ISMPB (S_IFDIR));
164 verify (!S_ISMPB (S_IFIFO));
165 verify (!S_ISMPB (S_IFREG));
166 #ifdef S_IFLNK
167 verify (!S_ISMPB (S_IFLNK));
168 #endif
169 #ifdef S_IFSOCK
170 verify (!S_ISMPB (S_IFSOCK));
171 #endif
172
173 verify (!S_ISNAM (S_IFBLK));
174 verify (!S_ISNAM (S_IFCHR));
175 verify (!S_ISNAM (S_IFDIR));
176 verify (!S_ISNAM (S_IFIFO));
177 verify (!S_ISNAM (S_IFREG));
178 #ifdef S_IFLNK
179 verify (!S_ISNAM (S_IFLNK));
180 #endif
181 #ifdef S_IFSOCK
182 verify (!S_ISNAM (S_IFSOCK));
183 #endif
184
185 verify (!S_ISNWK (S_IFBLK));
186 verify (!S_ISNWK (S_IFCHR));
187 verify (!S_ISNWK (S_IFDIR));
188 verify (!S_ISNWK (S_IFIFO));
189 verify (!S_ISNWK (S_IFREG));
190 #ifdef S_IFLNK
191 verify (!S_ISNWK (S_IFLNK));
192 #endif
193 #ifdef S_IFSOCK
194 verify (!S_ISNWK (S_IFSOCK));
195 #endif
196
197 verify (!S_ISPORT (S_IFBLK));
198 verify (!S_ISPORT (S_IFCHR));
199 verify (!S_ISPORT (S_IFDIR));
200 verify (!S_ISPORT (S_IFIFO));
201 verify (!S_ISPORT (S_IFREG));
202 #ifdef S_IFLNK
203 verify (!S_ISPORT (S_IFLNK));
204 #endif
205 #ifdef S_IFSOCK
206 verify (!S_ISPORT (S_IFSOCK));
207 #endif
208
209 verify (!S_ISCTG (S_IFBLK));
210 verify (!S_ISCTG (S_IFCHR));
211 verify (!S_ISCTG (S_IFDIR));
212 verify (!S_ISCTG (S_IFIFO));
213 verify (!S_ISCTG (S_IFREG));
214 #ifdef S_IFLNK
215 verify (!S_ISCTG (S_IFLNK));
216 #endif
217 #ifdef S_IFSOCK
218 verify (!S_ISCTG (S_IFSOCK));
219 #endif
220
221 verify (!S_ISOFD (S_IFBLK));
222 verify (!S_ISOFD (S_IFCHR));
223 verify (!S_ISOFD (S_IFDIR));
224 verify (!S_ISOFD (S_IFIFO));
225 verify (!S_ISOFD (S_IFREG));
226 #ifdef S_IFLNK
227 verify (!S_ISOFD (S_IFLNK));
228 #endif
229 #ifdef S_IFSOCK
230 verify (!S_ISOFD (S_IFSOCK));
231 #endif
232
233 verify (!S_ISOFL (S_IFBLK));
234 verify (!S_ISOFL (S_IFCHR));
235 verify (!S_ISOFL (S_IFDIR));
236 verify (!S_ISOFL (S_IFIFO));
237 verify (!S_ISOFL (S_IFREG));
238 #ifdef S_IFLNK
239 verify (!S_ISOFL (S_IFLNK));
240 #endif
241 #ifdef S_IFSOCK
242 verify (!S_ISOFL (S_IFSOCK));
243 #endif
244
245 verify (!S_ISWHT (S_IFBLK));
246 verify (!S_ISWHT (S_IFCHR));
247 verify (!S_ISWHT (S_IFDIR));
248 verify (!S_ISWHT (S_IFIFO));
249 verify (!S_ISWHT (S_IFREG));
250 #ifdef S_IFLNK
251 verify (!S_ISWHT (S_IFLNK));
252 #endif
253 #ifdef S_IFSOCK
254 verify (!S_ISWHT (S_IFSOCK));
255 #endif
256
257 int
258 main ()
259 {
260   return 0;
261 }