# HG changeset patch # User Eric Blake # Date 1285104479 21600 # Node ID 2d243bd19a68fb14e578ae2c11a1e9507dc47397 # Parent 04126a7f5fd5a9b98ba6d8d7e71eb673cd2df4c6 net_if: enhance tests * tests/test-net_if.c (main): Move signature checks earlier. Print failures to stderr. * doc/posix-functions/if_freenameindex.texi (if_freenameindex): Document the bug that we do not yet fix. Signed-off-by: Eric Blake diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-09-21 Eric Blake + + net_if: enhance tests + * tests/test-net_if.c (main): Move signature checks earlier. + Print failures to stderr. + * doc/posix-functions/if_freenameindex.texi (if_freenameindex): + Document the bug that we do not yet fix. + 2010-09-21 Reuben Thomas * doc/gnulib.texi (Out of memory handling): Rewrite section to be diff --git a/doc/posix-functions/if_freenameindex.texi b/doc/posix-functions/if_freenameindex.texi --- a/doc/posix-functions/if_freenameindex.texi +++ b/doc/posix-functions/if_freenameindex.texi @@ -14,5 +14,11 @@ @itemize @item This function is missing on some platforms: -OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS. +OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, +mingw, Interix 3.5, BeOS. + +@item +This is available only as a macro, rather than a function, on some +platforms: +OpenBSD 4.6, MirBSD 10. @end itemize diff --git a/modules/net_if-tests b/modules/net_if-tests --- a/modules/net_if-tests +++ b/modules/net_if-tests @@ -1,5 +1,6 @@ Files: tests/test-net_if.c +tests/signature.h Depends-on: diff --git a/tests/test-net_if.c b/tests/test-net_if.c --- a/tests/test-net_if.c +++ b/tests/test-net_if.c @@ -17,32 +17,33 @@ /* Written by Simon Josefsson , 2010. */ #include + #include + +#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 *)); + #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"; + 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 +53,26 @@ 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; }