Blame gnulib-tests/test-sys_stat.c

Packit Service fdd496
/* Test of <sys/stat.h> substitute.
Packit Service fdd496
   Copyright (C) 2007-2017 Free Software Foundation, Inc.
Packit Service fdd496
Packit Service fdd496
   This program is free software: you can redistribute it and/or modify
Packit Service fdd496
   it under the terms of the GNU General Public License as published by
Packit Service fdd496
   the Free Software Foundation; either version 3 of the License, or
Packit Service fdd496
   (at your option) any later version.
Packit Service fdd496
Packit Service fdd496
   This program is distributed in the hope that it will be useful,
Packit Service fdd496
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fdd496
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fdd496
   GNU General Public License for more details.
Packit Service fdd496
Packit Service fdd496
   You should have received a copy of the GNU General Public License
Packit Service fdd496
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service fdd496
Packit Service fdd496
/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
Packit Service fdd496
Packit Service fdd496
#include <config.h>
Packit Service fdd496
Packit Service fdd496
#include <sys/stat.h>
Packit Service fdd496
Packit Service fdd496
#include "verify.h"
Packit Service fdd496
Packit Service fdd496
/* Check the existence of some macros.  */
Packit Service fdd496
int a[] =
Packit Service fdd496
  {
Packit Service fdd496
    S_IFMT,
Packit Service fdd496
#ifdef S_IFBLK /* missing on MSVC */
Packit Service fdd496
    S_IFBLK,
Packit Service fdd496
#endif
Packit Service fdd496
    S_IFCHR, S_IFDIR, S_IFIFO, S_IFREG,
Packit Service fdd496
#ifdef S_IFLNK /* missing on native Windows and DJGPP */
Packit Service fdd496
    S_IFLNK,
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK /* missing on native Windows and DJGPP */
Packit Service fdd496
    S_IFSOCK,
Packit Service fdd496
#endif
Packit Service fdd496
    S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR,
Packit Service fdd496
    S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP,
Packit Service fdd496
    S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH,
Packit Service fdd496
    S_ISUID, S_ISGID, S_ISVTX,
Packit Service fdd496
    S_ISBLK (S_IFREG),
Packit Service fdd496
    S_ISCHR (S_IFREG),
Packit Service fdd496
    S_ISDIR (S_IFREG),
Packit Service fdd496
    S_ISFIFO (S_IFREG),
Packit Service fdd496
    S_ISREG (S_IFREG),
Packit Service fdd496
    S_ISLNK (S_IFREG),
Packit Service fdd496
    S_ISSOCK (S_IFREG),
Packit Service fdd496
    S_ISDOOR (S_IFREG),
Packit Service fdd496
    S_ISMPB (S_IFREG),
Packit Service fdd496
    S_ISMPX (S_IFREG),
Packit Service fdd496
    S_ISNAM (S_IFREG),
Packit Service fdd496
    S_ISNWK (S_IFREG),
Packit Service fdd496
    S_ISPORT (S_IFREG),
Packit Service fdd496
    S_ISCTG (S_IFREG),
Packit Service fdd496
    S_ISOFD (S_IFREG),
Packit Service fdd496
    S_ISOFL (S_IFREG),
Packit Service fdd496
    S_ISWHT (S_IFREG)
Packit Service fdd496
  };
Packit Service fdd496
Packit Service fdd496
/* Sanity checks.  */
Packit Service fdd496
Packit Service fdd496
verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR));
Packit Service fdd496
verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP));
Packit Service fdd496
verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH));
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (S_ISBLK (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISBLK (S_IFCHR));
Packit Service fdd496
verify (!S_ISBLK (S_IFDIR));
Packit Service fdd496
verify (!S_ISBLK (S_IFIFO));
Packit Service fdd496
verify (!S_ISBLK (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISBLK (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISBLK (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISCHR (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (S_ISCHR (S_IFCHR));
Packit Service fdd496
verify (!S_ISCHR (S_IFDIR));
Packit Service fdd496
verify (!S_ISCHR (S_IFIFO));
Packit Service fdd496
verify (!S_ISCHR (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISCHR (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISCHR (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISDIR (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISDIR (S_IFCHR));
Packit Service fdd496
verify (S_ISDIR (S_IFDIR));
Packit Service fdd496
verify (!S_ISDIR (S_IFIFO));
Packit Service fdd496
verify (!S_ISDIR (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISDIR (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISDIR (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISFIFO (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISFIFO (S_IFCHR));
Packit Service fdd496
verify (!S_ISFIFO (S_IFDIR));
Packit Service fdd496
verify (S_ISFIFO (S_IFIFO));
Packit Service fdd496
verify (!S_ISFIFO (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISFIFO (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISFIFO (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISREG (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISREG (S_IFCHR));
Packit Service fdd496
verify (!S_ISREG (S_IFDIR));
Packit Service fdd496
verify (!S_ISREG (S_IFIFO));
Packit Service fdd496
verify (S_ISREG (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISREG (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISREG (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISLNK (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISLNK (S_IFCHR));
Packit Service fdd496
verify (!S_ISLNK (S_IFDIR));
Packit Service fdd496
verify (!S_ISLNK (S_IFIFO));
Packit Service fdd496
verify (!S_ISLNK (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (S_ISLNK (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISLNK (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISSOCK (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISSOCK (S_IFCHR));
Packit Service fdd496
verify (!S_ISSOCK (S_IFDIR));
Packit Service fdd496
verify (!S_ISSOCK (S_IFIFO));
Packit Service fdd496
verify (!S_ISSOCK (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISSOCK (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (S_ISSOCK (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISDOOR (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISDOOR (S_IFCHR));
Packit Service fdd496
verify (!S_ISDOOR (S_IFDIR));
Packit Service fdd496
verify (!S_ISDOOR (S_IFIFO));
Packit Service fdd496
verify (!S_ISDOOR (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISDOOR (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISDOOR (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISMPB (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISMPB (S_IFCHR));
Packit Service fdd496
verify (!S_ISMPB (S_IFDIR));
Packit Service fdd496
verify (!S_ISMPB (S_IFIFO));
Packit Service fdd496
verify (!S_ISMPB (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISMPB (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISMPB (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISMPX (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISMPX (S_IFCHR));
Packit Service fdd496
verify (!S_ISMPX (S_IFDIR));
Packit Service fdd496
verify (!S_ISMPX (S_IFIFO));
Packit Service fdd496
verify (!S_ISMPX (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISMPX (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISMPX (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISNAM (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISNAM (S_IFCHR));
Packit Service fdd496
verify (!S_ISNAM (S_IFDIR));
Packit Service fdd496
verify (!S_ISNAM (S_IFIFO));
Packit Service fdd496
verify (!S_ISNAM (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISNAM (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISNAM (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISNWK (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISNWK (S_IFCHR));
Packit Service fdd496
verify (!S_ISNWK (S_IFDIR));
Packit Service fdd496
verify (!S_ISNWK (S_IFIFO));
Packit Service fdd496
verify (!S_ISNWK (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISNWK (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISNWK (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISPORT (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISPORT (S_IFCHR));
Packit Service fdd496
verify (!S_ISPORT (S_IFDIR));
Packit Service fdd496
verify (!S_ISPORT (S_IFIFO));
Packit Service fdd496
verify (!S_ISPORT (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISPORT (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISPORT (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISCTG (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISCTG (S_IFCHR));
Packit Service fdd496
verify (!S_ISCTG (S_IFDIR));
Packit Service fdd496
verify (!S_ISCTG (S_IFIFO));
Packit Service fdd496
verify (!S_ISCTG (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISCTG (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISCTG (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISOFD (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISOFD (S_IFCHR));
Packit Service fdd496
verify (!S_ISOFD (S_IFDIR));
Packit Service fdd496
verify (!S_ISOFD (S_IFIFO));
Packit Service fdd496
verify (!S_ISOFD (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISOFD (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISOFD (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISOFL (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISOFL (S_IFCHR));
Packit Service fdd496
verify (!S_ISOFL (S_IFDIR));
Packit Service fdd496
verify (!S_ISOFL (S_IFIFO));
Packit Service fdd496
verify (!S_ISOFL (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISOFL (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISOFL (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
#ifdef S_IFBLK
Packit Service fdd496
verify (!S_ISWHT (S_IFBLK));
Packit Service fdd496
#endif
Packit Service fdd496
verify (!S_ISWHT (S_IFCHR));
Packit Service fdd496
verify (!S_ISWHT (S_IFDIR));
Packit Service fdd496
verify (!S_ISWHT (S_IFIFO));
Packit Service fdd496
verify (!S_ISWHT (S_IFREG));
Packit Service fdd496
#ifdef S_IFLNK
Packit Service fdd496
verify (!S_ISWHT (S_IFLNK));
Packit Service fdd496
#endif
Packit Service fdd496
#ifdef S_IFSOCK
Packit Service fdd496
verify (!S_ISWHT (S_IFSOCK));
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* POSIX 2008 requires traditional encoding of permission constants.  */
Packit Service fdd496
verify (S_IRWXU == 00700);
Packit Service fdd496
verify (S_IRUSR == 00400);
Packit Service fdd496
verify (S_IWUSR == 00200);
Packit Service fdd496
verify (S_IXUSR == 00100);
Packit Service fdd496
verify (S_IRWXG == 00070);
Packit Service fdd496
verify (S_IRGRP == 00040);
Packit Service fdd496
verify (S_IWGRP == 00020);
Packit Service fdd496
verify (S_IXGRP == 00010);
Packit Service fdd496
verify (S_IRWXO == 00007);
Packit Service fdd496
verify (S_IROTH == 00004);
Packit Service fdd496
verify (S_IWOTH == 00002);
Packit Service fdd496
verify (S_IXOTH == 00001);
Packit Service fdd496
verify (S_ISUID == 04000);
Packit Service fdd496
verify (S_ISGID == 02000);
Packit Service fdd496
verify (S_ISVTX == 01000);
Packit Service fdd496
Packit Service fdd496
#if ((0 <= UTIME_NOW && UTIME_NOW < 1000000000)           \
Packit Service fdd496
     || (0 <= UTIME_OMIT && UTIME_OMIT < 1000000000)      \
Packit Service fdd496
     || UTIME_NOW == UTIME_OMIT)
Packit Service fdd496
invalid UTIME macros
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
/* Check the existence of some types.  */
Packit Service fdd496
nlink_t t1;
Packit Service fdd496
off_t t2;
Packit Service fdd496
mode_t t3;
Packit Service fdd496
Packit Service fdd496
struct timespec st;
Packit Service fdd496
Packit Service fdd496
int
Packit Service fdd496
main (void)
Packit Service fdd496
{
Packit Service fdd496
  return 0;
Packit Service fdd496
}