Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Unified Diff: native_client_sdk/src/tests/nacl_io_test/socket_test.cc

Issue 105943006: nacl_io: Add inet_pton() and ip6addr_* consts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « native_client_sdk/src/libraries/third_party/newlib-extras/netinet6/in6.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: native_client_sdk/src/tests/nacl_io_test/socket_test.cc
diff --git a/native_client_sdk/src/tests/nacl_io_test/socket_test.cc b/native_client_sdk/src/tests/nacl_io_test/socket_test.cc
index 808a7ed99d78af13fcaec9f163662c7c50d1e624..883a5eceafbe509cd598bdea76b68d54ad8a7892 100644
--- a/native_client_sdk/src/tests/nacl_io_test/socket_test.cc
+++ b/native_client_sdk/src/tests/nacl_io_test/socket_test.cc
@@ -395,6 +395,68 @@ TEST(SocketUtilityFunctions, Inet_ntop_failure) {
EXPECT_EQ(errno, ENOSPC);
}
+TEST(SocketUtilityFunctions, Inet_ptoa) {
Sam Clegg 2014/01/25 00:30:07 Should this test have been called Inet_pton?
Sergey Ulanov 2014/01/25 02:22:03 yes, I'll rename it in a separate CL.
+ struct {
+ int family;
+ const char* input;
+ const char* output;
+ } tests[] = {
+ { AF_INET, "127.127.12.0", NULL },
+ { AF_INET, "0.0.0.0", NULL },
+
+ { AF_INET6, "0:0:0:0:0:0:0:0", NULL },
+ { AF_INET6, "1234:5678:9abc:def0:1234:5678:9abc:def0", NULL },
+ { AF_INET6, "1:2:3:4:5:6:7:8", NULL },
+ { AF_INET6, "a:b:c:d:e:f:1:2", NULL },
+ { AF_INET6, "A:B:C:D:E:F:1:2", "a:b:c:d:e:f:1:2" },
+ { AF_INET6, "::", "0:0:0:0:0:0:0:0" },
+ { AF_INET6, "::12", "0:0:0:0:0:0:0:12" },
+ { AF_INET6, "::1:2:3", "0:0:0:0:0:1:2:3" },
+ { AF_INET6, "12::", "12:0:0:0:0:0:0:0" },
+ { AF_INET6, "1:2::", "1:2:0:0:0:0:0:0" },
+ { AF_INET6, "::12:0:0:0:0:0:0:0", "12:0:0:0:0:0:0:0" },
+ { AF_INET6, "1:2:3::4:5", "1:2:3:0:0:0:4:5" },
+ { AF_INET6, "::1.1.1.1", "0:0:0:0:0:0:101:101" },
+ { AF_INET6, "::ffff:1.1.1.1", "0:0:0:0:0:ffff:101:101" },
+ { AF_INET6, "ffff::1.1.1.1", "ffff:0:0:0:0:0:101:101" },
+ { AF_INET6, "::1.1.1.1", "0:0:0:0:0:0:101:101" },
+ };
+
+ for (size_t i = 0; i < sizeof(tests) / sizeof(tests[0]); ++i) {
+ uint8_t addr[16];
+ EXPECT_TRUE(inet_pton(tests[i].family, tests[i].input, addr));
+ const char* expected = tests[i].output ? tests[i].output : tests[i].input;
+ char out_buffer[256];
+ EXPECT_TRUE(
+ inet_ntop(tests[i].family, addr, out_buffer, sizeof(out_buffer)));
+ EXPECT_EQ(std::string(expected), std::string(out_buffer));
+ }
+}
+
+TEST(SocketUtilityFunctions, Inet_ptoa_failure) {
Sam Clegg 2014/01/25 00:30:07 Should this be "pton"?
Sergey Ulanov 2014/01/25 02:22:03 yes
+ uint8_t addr[16];
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12.24312", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12.24 ", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12.0.1", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12. 0", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, " 127.127.12.0", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12.0.", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, ".127.127.12.0", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET, "127.127.12.0x0", &addr));
+
+ EXPECT_EQ(0, inet_pton(AF_INET6, ":::", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0:::0", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0::0:0::1", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0:0:0:0:0:0:1: 2", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, " 0:0:0:0:0:0:1:2", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0:0:0:0:0:0:1:2 ", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, ":0:0:0:0:0:0:1:2", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0:0:0:0:0:0:1:2:4", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "0:0:0:0:0:0:1:0.0.0.0", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "::0.0.0.0:1", &addr));
+ EXPECT_EQ(0, inet_pton(AF_INET6, "::0.0.0.0.0", &addr));
+}
+
TEST(SocketUtilityFunctions, Ntohs) {
uint8_t network_bytes[2] = { 0x22, 0x11 };
uint16_t network_short;
« no previous file with comments | « native_client_sdk/src/libraries/third_party/newlib-extras/netinet6/in6.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698