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