Blame gl/tests/test-sys_stat.c

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