Index: native_client_sdk/src/tests/nacl_io_test/host_resolver_test.cc |
diff --git a/native_client_sdk/src/tests/nacl_io_test/host_resolver_test.cc b/native_client_sdk/src/tests/nacl_io_test/host_resolver_test.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..61a97301a4146ba71e3eb6ebe15c87ae7d1da228 |
--- /dev/null |
+++ b/native_client_sdk/src/tests/nacl_io_test/host_resolver_test.cc |
@@ -0,0 +1,60 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <arpa/inet.h> |
+#include <netinet/in.h> |
+#include <sys/types.h> |
+#include <sys/socket.h> |
+ |
+#include "fake_ppapi/fake_pepper_interface.h" |
+#include "gtest/gtest.h" |
+#include "nacl_io/kernel_intercept.h" |
+#include "nacl_io/kernel_proxy.h" |
+ |
+using namespace nacl_io; |
+using namespace sdk_util; |
+ |
+namespace { |
+ |
+//class FakeKernelProxy : public KernelProxy { |
binji
2014/01/28 18:13:22
remove
Sam Clegg
2014/01/28 19:55:22
Done.
|
+//}; |
+ |
+class HostResolverTest : public ::testing::Test { |
+ public: |
+ HostResolverTest() : pepper_(NULL) {} |
+ |
+ void SetUp() { |
+ pepper_ = new FakePepperInterface(); |
+ ki_init_interface(&proxy_, pepper_); |
+ } |
+ |
+ void TearDown() { |
+ ki_uninit(); |
+ pepper_ = NULL; |
+ } |
+ |
+ protected: |
+ //FakeKernelProxy fake_proxy_; |
binji
2014/01/28 18:13:22
remove
Sam Clegg
2014/01/28 19:55:22
Done.
|
+ KernelProxy proxy_; |
+ FakePepperInterface* pepper_; |
+}; |
+ |
+} // namespace |
+ |
+#define NULL_HOST (static_cast<hostent*>(NULL)) |
+ |
+TEST_F(HostResolverTest, GethostbynameNumeric) { |
+ hostent* host = ki_gethostbyname("testhost.com"); |
+ |
+ // Verify the returned hostent structure |
+ ASSERT_NE(NULL_HOST, host); |
+ ASSERT_EQ(AF_INET, host->h_addrtype); |
+ ASSERT_EQ(sizeof(in_addr_t), host->h_length); |
+ ASSERT_STREQ("testhost.com", host->h_name); |
+ |
+ in_addr_t** addr_list = reinterpret_cast<in_addr_t**>(host->h_addr_list); |
+ ASSERT_NE(reinterpret_cast<in_addr_t**>(NULL), addr_list); |
+ ASSERT_EQ(NULL, addr_list[1]); |
+ ASSERT_EQ(inet_addr("1.2.3.4"), *addr_list[0]); |
+} |