net_if: new module
[gnulib.git] / tests / test-net_if.c
index ee3cdbd..f508642 100644 (file)
 
 #include <net/if.h>
 
-#include "signature.h"
+static struct if_nameindex ni;
+
+/* We do not yet have replacements for if_* functions on systems that
+   lack a native <net/if.h>.  */
+#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 <stddef.h> /* NULL */
 #include <stdio.h> /* fprintf */
@@ -32,6 +38,7 @@ SIGNATURE_CHECK (if_nametoindex, unsigned int, (const char *));
 int
 main (int argc, char *argv[])
 {
+#if HAVE_NET_IF_H
   struct if_nameindex *ifnp, *p;
 
   p = ifnp = if_nameindex ();
@@ -80,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;
 }