X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-lstat.c;h=d520193f31aaf5f4cbe4d3e1f1926ec9db01c2f2;hb=fa1db0dd22768f09a507674a30beb5b8a87bb35f;hp=1a0a0f232a86c42dd7a039f413987e5876e09f86;hpb=e0ecc481059e4c14be9d19bd6440eedec5adfe1e;p=gnulib.git diff --git a/tests/test-lstat.c b/tests/test-lstat.c index 1a0a0f232..d520193f3 100644 --- a/tests/test-lstat.c +++ b/tests/test-lstat.c @@ -1,5 +1,5 @@ /* Test of lstat() function. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-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 @@ -14,24 +14,47 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -/* Written by Simon Josefsson, 2008. */ +/* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */ #include #include +/* Caution: lstat may be a function-like macro. Although this + signature check must pass, it may be the signature of the real (and + broken) lstat rather than rpl_lstat. Most code should not use the + address of lstat. */ +#include "signature.h" +SIGNATURE_CHECK (lstat, int, (char const *, struct stat *)); + +#include +#include +#include #include +#include +#include -int -main (int argc, char **argv) +#include "same-inode.h" +#include "ignore-value.h" +#include "macros.h" + +#define BASE "test-lstat.t" + +#include "test-lstat.h" + +/* Wrapper around lstat, which works even if lstat is a function-like + macro, where test_lstat_func(lstat) would do the wrong thing. */ +static int +do_lstat (char const *name, struct stat *st) { - struct stat buf; + return lstat (name, st); +} - if (lstat ("/", &buf) != 0) - { - perror ("lstat"); - return 1; - } +int +main (void) +{ + /* Remove any leftovers from a previous partial run. */ + ignore_value (system ("rm -rf " BASE "*")); - return 0; + return test_lstat_func (do_lstat, true); }