X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2Ftest%2FSocketAddressTest.cpp;h=5125cc3797ac0f42badc3579c0f30ea66eb35f29;hb=320a9600f9cb11bbfd3f17dc99cb7b252132eb37;hp=39eb9820e16be285719e5a7b004aa60c8acb8a12;hpb=7b474bc67d82c20452d28472a85f9f5dd153ce01;p=folly.git diff --git a/folly/test/SocketAddressTest.cpp b/folly/test/SocketAddressTest.cpp index 39eb9820..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) { @@ -657,9 +689,11 @@ void testSetFromSocket(const SocketAddress *serverBindAddr, sockaddr_storage acceptAddr; socklen_t acceptAddrLen = sizeof(acceptAddr); - int serverSock = accept(listenSock, reinterpret_cast(&acceptAddr), &acceptAddrLen); + int serverSock = accept(listenSock, + reinterpret_cast(&acceptAddr), &acceptAddrLen); REQUIRE_ERRNO(serverSock > 0, "failed to accept"); - acceptAddrRet->setFromSockaddr(reinterpret_cast(&acceptAddr), acceptAddrLen); + acceptAddrRet->setFromSockaddr( + reinterpret_cast(&acceptAddr), acceptAddrLen); serverAddrRet->setFromLocalAddress(serverSock); serverPeerAddrRet->setFromPeerAddress(serverSock);