summaryrefslogtreecommitdiff
path: root/test/SocketCoreTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-10-19 23:14:13 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-10-19 23:14:13 +0900
commit74e5aa0ace24e70a454f19fc0f032d0f30574000 (patch)
tree31dfe01f29f78948727ddee6a9c78ed4213c14fc /test/SocketCoreTest.cc
parent2b68f72fa662601db891706abb2a2e2df7e7edd8 (diff)
Rewritten util::inSameCidrBlock() to support IPv6 address.
We also introduced union sockaddr_union in a2netcompat.h.
Diffstat (limited to 'test/SocketCoreTest.cc')
-rw-r--r--test/SocketCoreTest.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/SocketCoreTest.cc b/test/SocketCoreTest.cc
index 5bba685b..9422fbad 100644
--- a/test/SocketCoreTest.cc
+++ b/test/SocketCoreTest.cc
@@ -15,6 +15,7 @@ class SocketCoreTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testWriteAndReadDatagram);
CPPUNIT_TEST(testGetSocketError);
CPPUNIT_TEST(testInetNtop);
+ CPPUNIT_TEST(testGetBinAddr);
CPPUNIT_TEST_SUITE_END();
public:
void setUp() {}
@@ -24,6 +25,7 @@ public:
void testWriteAndReadDatagram();
void testGetSocketError();
void testInetNtop();
+ void testGetBinAddr();
};
@@ -104,4 +106,21 @@ void SocketCoreTest::testInetNtop()
}
}
+void SocketCoreTest::testGetBinAddr()
+{
+ unsigned char dest[16];
+ unsigned char ans1[] = { 192, 168, 0, 1 };
+ CPPUNIT_ASSERT_EQUAL((size_t)4, net::getBinAddr(dest, "192.168.0.1"));
+ CPPUNIT_ASSERT(std::equal(&dest[0], &dest[4], &ans1[0]));
+
+ unsigned char ans2[] = { 0x20u, 0x01u, 0x0du, 0xb8u,
+ 0x00u, 0x00u, 0x00u, 0x00u,
+ 0x00u, 0x00u, 0x00u, 0x00u,
+ 0x00u, 0x02u, 0x00u, 0x01u };
+ CPPUNIT_ASSERT_EQUAL((size_t)16, net::getBinAddr(dest, "2001:db8::2:1"));
+ CPPUNIT_ASSERT(std::equal(&dest[0], &dest[16], &ans2[0]));
+
+ CPPUNIT_ASSERT_EQUAL((size_t)0, net::getBinAddr(dest, "localhost"));
+}
+
} // namespace aria2