summaryrefslogtreecommitdiff
path: root/gnulib-tests/test-fstatat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-tests/test-fstatat.c')
-rw-r--r--gnulib-tests/test-fstatat.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gnulib-tests/test-fstatat.c b/gnulib-tests/test-fstatat.c
index a128c876..9fdbe2e6 100644
--- a/gnulib-tests/test-fstatat.c
+++ b/gnulib-tests/test-fstatat.c
@@ -1,5 +1,5 @@
/* Tests of fstatat.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Copyright (C) 2009-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -36,7 +36,9 @@ SIGNATURE_CHECK (fstatat, int, (int, char const *, struct stat *, int));
#include "ignore-value.h"
#include "macros.h"
-#define BASE "test-fstatat.t"
+#ifndef BASE
+# define BASE "test-fstatat.t"
+#endif
#include "test-lstat.h"
#include "test-stat.h"
@@ -47,14 +49,22 @@ static int dfd = AT_FDCWD;
static int
do_stat (char const *name, struct stat *st)
{
+#ifdef TEST_STATAT
return statat (dfd, name, st);
+#else
+ return fstatat (dfd, name, st, 0);
+#endif
}
/* Wrapper around fstatat to test lstat behavior. */
static int
do_lstat (char const *name, struct stat *st)
{
+#ifdef TEST_STATAT
return lstatat (dfd, name, st);
+#else
+ return fstatat (dfd, name, st, AT_SYMLINK_NOFOLLOW);
+#endif
}
int
@@ -78,6 +88,7 @@ main (int argc _GL_UNUSED, char *argv[])
{
struct stat statbuf;
+ close (99);
errno = 0;
ASSERT (fstatat (99, "foo", &statbuf, 0) == -1);
ASSERT (errno == EBADF);