summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2009-05-05 15:54:39 +0200
committerDavid 'Digit' Turner <digit@google.com>2009-05-05 15:54:39 +0200
commitac6a88edbf65ff3f9e40d6e4bf1e55a002be6d6c (patch)
tree3b5bc928cdeef648704387918770d030790c76d1
parentacbb5bc99bccf7e625cc73fb1aaa90355bedb733 (diff)
downloadextras-ac6a88edbf65ff3f9e40d6e4bf1e55a002be6d6c.tar.gz
Add a new test to check the behaviour of getaddrinfo()
-rw-r--r--tests/bionic/libc/Android.mk1
-rw-r--r--tests/bionic/libc/common/test_getaddrinfo.c44
2 files changed, 45 insertions, 0 deletions
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 <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+
+#include <stdio.h> /* for printf */
+#include <string.h> /* for memset */
+#include <netinet/in.h> /* 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;
+}