/Sources/selp_glibc-2.5.90-19.0.46/io/test-stat2.c
C | 88 lines | 58 code | 9 blank | 21 comment | 10 complexity | 9ece99bf02c8f97ff3fe3420c75453a0 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, LGPL-2.1, AGPL-1.0, CC-BY-SA-3.0, BSD-3-Clause
- /* Test consistence of results of stat and stat64.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
- #include <errno.h>
- #include <stdint.h>
- #include <stdio.h>
- #include <sys/stat.h>
- int
- main (int argc, char *argv[])
- {
- int i;
- int result = 0;
- for (i = 1; i < argc; ++i)
- {
- struct stat st;
- struct stat64 st64;
- int same;
- if (stat (argv[i], &st) != 0)
- {
- if (errno != EOVERFLOW)
- {
- /* Something is wrong. */
- printf ("stat(\"%s\",....) failed: %m", argv[i]);
- result = 1;
- }
- continue;
- }
- if (stat64 (argv[i], &st64) != 0)
- {
- if (errno != ENOSYS)
- {
- /* Something is wrong. */
- printf ("stat64(\"%s\",....) failed: %m", argv[i]);
- result = 1;
- }
- continue;
- }
- printf ("\nName: %s\n", argv[i]);
- #define TEST(name) \
- same = st.name == st64.name; \
- printf (#name ": %jd vs %jd %s\n", \
- (intmax_t) st.name, (intmax_t) st64.name, \
- same ? "OK" : "FAIL"); \
- result |= ! same
- TEST (st_dev);
- TEST (st_ino);
- TEST (st_mode);
- TEST (st_nlink);
- TEST (st_uid);
- TEST (st_gid);
- #ifdef _STATBUF_ST_RDEV
- TEST (st_rdev);
- #endif
- #ifdef _STATBUF_ST_BLKSIZE
- TEST (st_blksize);
- #endif
- TEST (st_blocks);
- TEST (st_atime);
- TEST (st_mtime);
- TEST (st_ctime);
- }
- return result;
- }