X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2Ftest%2FSocketAddressTest.cpp;h=5125cc3797ac0f42badc3579c0f30ea66eb35f29;hb=320a9600f9cb11bbfd3f17dc99cb7b252132eb37;hp=f875b4ad17d59a8a6750845df6cb767c67c9ef0a;hpb=8160f2fb948a416e15be3b1201d80377b02948a7;p=folly.git diff --git a/folly/test/SocketAddressTest.cpp b/folly/test/SocketAddressTest.cpp index f875b4ad..5125cc37 100644 --- a/folly/test/SocketAddressTest.cpp +++ b/folly/test/SocketAddressTest.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2014 Facebook, Inc. + * Copyright 2015 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,6 +60,23 @@ TEST(SocketAddress, IPv4ToStringConversion) { } } +TEST(SocketAddress, SetFromIpAddressPort) { + SocketAddress addr; + folly::IPAddress ipAddr("123.234.0.23"); + addr.setFromIpAddrPort(ipAddr, 8888); + EXPECT_EQ(addr.getFamily(), AF_INET); + EXPECT_EQ(addr.getAddressStr(), "123.234.0.23"); + EXPECT_EQ(addr.getIPAddress(), ipAddr); + EXPECT_EQ(addr.getPort(), 8888); + + folly::IPAddress ip6Addr("2620:0:1cfe:face:b00c::3"); + SocketAddress addr6(ip6Addr, 8888); + EXPECT_EQ(addr6.getFamily(), AF_INET6); + EXPECT_EQ(addr6.getAddressStr(), "2620:0:1cfe:face:b00c::3"); + EXPECT_EQ(addr6.getIPAddress(), ip6Addr); + EXPECT_EQ(addr6.getPort(), 8888); +} + TEST(SocketAddress, SetFromIpv4) { SocketAddress addr; addr.setFromIpPort("255.254.253.252", 8888); @@ -139,6 +156,21 @@ TEST(SocketAddress, SetFromStrings) { EXPECT_EQ(addr.getFamily(), AF_INET); EXPECT_EQ(addr.getAddressStr(), "1.2.3.4"); EXPECT_EQ(addr.getPort(), 9999); + + // Call setFromIpPort() with a bracketed IPv6 + addr.setFromIpPort("[::]:1234"); + EXPECT_EQ(addr.getFamily(), AF_INET6); + EXPECT_EQ(addr.getAddressStr(), "::"); + EXPECT_EQ(addr.getPort(), 1234); + + // Call setFromIpPort() with a bracketed IPv6 + addr.setFromIpPort("[9:8::2]:1234"); + EXPECT_EQ(addr.getFamily(), AF_INET6); + EXPECT_EQ(addr.getAddressStr(), "9:8::2"); + EXPECT_EQ(addr.getPort(), 1234); + + // Call setFromIpPort() with a bracketed IPv6 and no port + EXPECT_THROW(addr.setFromIpPort("[::]"), std::system_error); } TEST(SocketAddress, EqualityAndHash) {