diff options
| -rw-r--r-- | test/inet/if_nameindex.c | 61 | 
1 files changed, 61 insertions, 0 deletions
diff --git a/test/inet/if_nameindex.c b/test/inet/if_nameindex.c new file mode 100644 index 000000000..96d9b0113 --- /dev/null +++ b/test/inet/if_nameindex.c @@ -0,0 +1,61 @@ +/* if_nameindex.c: test the if_nameindex() function + * + * Copyright (C) 2006 Erik Andersen <andersen@uclibc.org> + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <net/if.h> + +static char ifname[IF_NAMESIZE]; + +void test_if_nameindex(void) +{ +	size_t i; +	struct if_nameindex *ret; + +	ret = if_nameindex(); + +	if (ret == NULL) { +		perror("if_nameindex()"); +		exit(1); +	} + +	printf("--- if_nameindex()\n"); +	for (i=0; ret[i].if_name; ++i) +		printf("%i: %s\n", ret[i].if_index, ret[i].if_name); + +	if_freenameindex(ret); +} + +void test_if_indextoname(void) +{ +	if (if_indextoname(1, ifname) == NULL) { +		perror("if_nameindex()"); +		exit(1); +	} + +	printf("if_indextoname(1) = %s\n", ifname); +} + +void test_if_nametoindex(void) +{ +	int ifindex = if_nametoindex(ifname); + +	if (ifindex == 0) { +		perror("if_nametoindex()"); +		exit(1); +	} + +	printf("if_nametoindex(%s) = %i\n", ifname, ifindex); +} + +int main() +{ +	test_if_nameindex(); +	test_if_indextoname(); +	test_if_nametoindex(); +	return 0; +}  | 
