diff options
Diffstat (limited to 'gnulib/tests/test-net_if.c')
m--------- | gnulib | 0 | ||||
-rw-r--r-- | gnulib/tests/test-net_if.c | 85 |
2 files changed, 85 insertions, 0 deletions
diff --git a/gnulib b/gnulib deleted file mode 160000 -Subproject 443bc5ffcf7429e557f4a371b0661abe98ddbc1 diff --git a/gnulib/tests/test-net_if.c b/gnulib/tests/test-net_if.c new file mode 100644 index 0000000..79a0df2 --- /dev/null +++ b/gnulib/tests/test-net_if.c @@ -0,0 +1,85 @@ +/* Test of <net/if.h> functions. + Copyright (C) 2010-2011 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 + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* Written by Simon Josefsson <simon@josefsson.org>, 2010. */ + +#include <config.h> + +#include <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 *)); + +#include <stddef.h> /* NULL */ +#include <stdio.h> /* fprintf */ + +int +main (int argc, char *argv[]) +{ + struct if_nameindex *ifnp, *p; + + p = ifnp = if_nameindex (); + if (ifnp == NULL) + { + fputs ("if_nameindex returned NULL\n", stderr); + return 1; + } + + while (p->if_index) + { + unsigned int idx; + char buf[IF_NAMESIZE]; + char *q; + + if (argc > 1) + printf ("index %d name %s\n", p->if_index, p->if_name); + + idx = if_nametoindex (p->if_name); + if (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) + { + fprintf (stderr, "if_indextoname (%d) returned NULL\n", p->if_index); + return 1; + } + if (q != buf) + { + fprintf (stderr, "if_indextoname (%d) buffer mismatch?\n", + p->if_index); + return 1; + } + if (strcmp (p->if_name, q) != 0) + { + fprintf (stderr, "if_indextoname (%s) = %s ?!\n", p->if_name, q); + return 1; + } + + p++; + } + + if_freenameindex (ifnp); + + return 0; +} |