Add a regress test for if_indextoname() and if_nametoindex()
authorclaudio <claudio@openbsd.org>
Thu, 22 Oct 2015 15:47:00 +0000 (15:47 +0000)
committerclaudio <claudio@openbsd.org>
Thu, 22 Oct 2015 15:47:00 +0000 (15:47 +0000)
regress/lib/libc/ifnameindex/Makefile [new file with mode: 0644]
regress/lib/libc/ifnameindex/ifnitest.c [new file with mode: 0644]

diff --git a/regress/lib/libc/ifnameindex/Makefile b/regress/lib/libc/ifnameindex/Makefile
new file mode 100644 (file)
index 0000000..1f21973
--- /dev/null
@@ -0,0 +1,12 @@
+#      $OpenBSD: Makefile,v 1.1 2015/10/22 15:47:00 claudio Exp $
+
+PROG=          ifnitest
+SRCS=          ifnitest.c
+NOMAN=         # defined
+
+REGRESS_TARGETS=do-test
+
+do-test: ${PROG}
+       ./${PROG}
+
+.include <bsd.regress.mk>
diff --git a/regress/lib/libc/ifnameindex/ifnitest.c b/regress/lib/libc/ifnameindex/ifnitest.c
new file mode 100644 (file)
index 0000000..61102f7
--- /dev/null
@@ -0,0 +1,30 @@
+/*     $OpenBSD: ifnitest.c,v 1.1 2015/10/22 15:47:00 claudio Exp $ */
+
+/* Public domain. 2015, Claudio Jeker */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#include <err.h>
+
+int
+main(int argc, char *argv[])
+{
+       char name[IF_NAMESIZE], *ifname;
+       unsigned int lo0index;
+
+       lo0index = if_nametoindex("lo0");
+       if (lo0index == 0)
+               err(1, "if_nametoindex(lo0)");
+       ifname = if_indextoname(lo0index, name);
+       if (ifname == NULL || strcmp("lo0", ifname) != 0)
+               err(1, "if_indextoname(%u)", lo0index);
+
+       /* test failures */
+       if (if_nametoindex("4kingbula") != 0)
+               err(1, "if_nametoindex(4kingbula)");
+       if (if_indextoname(65536, name) != NULL)
+               err(1, "if_indextoname(%u)", 65536);
+
+       return 0;
+}