X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-net_if.c;h=f50864232d12da2d027072021f72b73044af11eb;hb=200969d8ebed76c9b82837406a87cc767fafac1b;hp=f1cdb99d103dadea0a135bf30a7ec865006a375c;hpb=3f130a97c39ecb2c388fa34f4123a33c27c66213;p=gnulib.git diff --git a/tests/test-net_if.c b/tests/test-net_if.c index f1cdb99d1..f50864232 100644 --- a/tests/test-net_if.c +++ b/tests/test-net_if.c @@ -1,5 +1,5 @@ /* Test of functions. - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2012 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 @@ -17,32 +17,40 @@ /* Written by Simon Josefsson , 2010. */ #include + #include + +static struct if_nameindex ni; + +/* We do not yet have replacements for if_* functions on systems that + lack a native . */ +#if HAVE_NET_IF_H +# include "signature.h" +SIGNATURE_CHECK (if_freenameindex, void, (struct if_nameindex *)); +SIGNATURE_CHECK (if_indextoname, char *, (unsigned int, char *)); +SIGNATURE_CHECK (if_nameindex, struct if_nameindex *, (void)); +SIGNATURE_CHECK (if_nametoindex, unsigned int, (const char *)); +#endif + #include /* NULL */ -#include /* printf */ +#include /* fprintf */ int main (int argc, char *argv[]) { - struct if_nameindex ifn, *ifnp, *p; - void (*if_fni) (struct if_nameindex *) = if_freenameindex; - char *(*if_itn)(unsigned, char *) = if_indextoname; - struct if_nameindex *(*if_ni)(void) = if_nameindex; - unsigned (*if_nti)(const char *) = if_nametoindex; - - ifn.if_index = 42; - ifn.if_name = "foo"; +#if HAVE_NET_IF_H + struct if_nameindex *ifnp, *p; p = ifnp = if_nameindex (); if (ifnp == NULL) { - printf ("if_nameindex returned NULL\n"); + fputs ("if_nameindex returned NULL\n", stderr); return 1; } while (p->if_index) { - unsigned idx; + unsigned int idx; char buf[IF_NAMESIZE]; char *q; @@ -52,25 +60,26 @@ main (int argc, char *argv[]) idx = if_nametoindex (p->if_name); if (idx != p->if_index) { - printf ("if_nametoindex (%s) = %d != %d\n", - p->if_name, idx, p->if_index); + fprintf (stderr, "if_nametoindex (%s) = %d != %d\n", + p->if_name, idx, p->if_index); return 1; } q = if_indextoname (p->if_index, buf); if (q == NULL) { - printf ("if_indextoname (%d) returned NULL\n", p->if_index); + fprintf (stderr, "if_indextoname (%d) returned NULL\n", p->if_index); return 1; } if (q != buf) { - printf ("if_indextoname (%d) buffer mismatch?\n", p->if_index); + fprintf (stderr, "if_indextoname (%d) buffer mismatch?\n", + p->if_index); return 1; } if (strcmp (p->if_name, q) != 0) { - printf ("if_indextoname (%s) = %s ?!\n", p->if_name, q); + fprintf (stderr, "if_indextoname (%s) = %s ?!\n", p->if_name, q); return 1; } @@ -78,6 +87,7 @@ main (int argc, char *argv[]) } if_freenameindex (ifnp); +#endif /* HAVE_NET_IF_H */ - return 0; + return !IF_NAMESIZE + ni.if_index + !!ni.if_name; }