From ac6a88edbf65ff3f9e40d6e4bf1e55a002be6d6c Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Tue, 5 May 2009 15:54:39 +0200 Subject: [PATCH] Add a new test to check the behaviour of getaddrinfo() --- tests/bionic/libc/Android.mk | 1 + tests/bionic/libc/common/test_getaddrinfo.c | 44 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 tests/bionic/libc/common/test_getaddrinfo.c diff --git a/tests/bionic/libc/Android.mk b/tests/bionic/libc/Android.mk index 89d9ade2..c7e7305d 100644 --- a/tests/bionic/libc/Android.mk +++ b/tests/bionic/libc/Android.mk @@ -59,6 +59,7 @@ endef # First, the tests in 'common' sources := \ + common/test_getaddrinfo.c \ common/test_gethostbyname.c \ common/test_gethostname.c \ common/test_pthread_cleanup_push.c \ diff --git a/tests/bionic/libc/common/test_getaddrinfo.c b/tests/bionic/libc/common/test_getaddrinfo.c new file mode 100644 index 00000000..444bef8e --- /dev/null +++ b/tests/bionic/libc/common/test_getaddrinfo.c @@ -0,0 +1,44 @@ +/* this program is used to test that getaddrinfo() works correctly + * without a 'hints' argument + */ + +#include +#include +#include + +#include /* for printf */ +#include /* for memset */ +#include /* for IPPROTO_TCP */ + +#define SERVER_NAME "www.android.com" +#define PORT_NUMBER "9999" + +int main(void) +{ + struct addrinfo hints; + struct addrinfo* res; + int ret; + + /* first, try without any hints */ + ret = getaddrinfo( SERVER_NAME, PORT_NUMBER, NULL, &res); + if (ret != 0) { + printf("first getaddrinfo returned error: %s\n", gai_strerror(ret)); + return 1; + } + + freeaddrinfo(res); + + /* now try with the hints */ + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + + ret = getaddrinfo( SERVER_NAME, PORT_NUMBER, &hints, &res ); + if (ret != 0) { + printf("second getaddrinfo returned error: %s\n", gai_strerror(ret)); + return 1; + } + + return 0; +} -- 2.11.0