summaryrefslogtreecommitdiff
path: root/test/UtilTest.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/UtilTest.cc
parent2b68f72fa662601db891706abb2a2e2df7e7edd8 (diff)
Rewritten util::inSameCidrBlock() to support IPv6 address.
We also introduced union sockaddr_union in a2netcompat.h.
Diffstat (limited to 'test/UtilTest.cc')
-rw-r--r--test/UtilTest.cc35
1 files changed, 10 insertions, 25 deletions
diff --git a/test/UtilTest.cc b/test/UtilTest.cc
index d11c61fa..74fc3101 100644
--- a/test/UtilTest.cc
+++ b/test/UtilTest.cc
@@ -15,6 +15,7 @@
#include "array_fun.h"
#include "BufferedFile.h"
#include "TestUtil.h"
+#include "SocketCore.h"
namespace aria2 {
@@ -70,7 +71,6 @@ class UtilTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testIsNumericHost);
CPPUNIT_TEST(testDetectDirTraversal);
CPPUNIT_TEST(testEscapePath);
- CPPUNIT_TEST(testGetCidrPrefix);
CPPUNIT_TEST(testInSameCidrBlock);
CPPUNIT_TEST(testIsUtf8String);
CPPUNIT_TEST(testNextParam);
@@ -130,7 +130,6 @@ public:
void testIsNumericHost();
void testDetectDirTraversal();
void testEscapePath();
- void testGetCidrPrefix();
void testInSameCidrBlock();
void testIsUtf8String();
void testNextParam();
@@ -1192,34 +1191,20 @@ void UtilTest::testEscapePath()
#endif // !__MINGW32__
}
-void UtilTest::testGetCidrPrefix()
+void UtilTest::testInSameCidrBlock()
{
- struct in_addr in;
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "192.168.0.1", 16));
- CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.0"), std::string(inet_ntoa(in)));
-
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "192.168.255.255", 17));
- CPPUNIT_ASSERT_EQUAL(std::string("192.168.128.0"),std::string(inet_ntoa(in)));
-
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "192.168.128.1", 16));
- CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.0"), std::string(inet_ntoa(in)));
+ CPPUNIT_ASSERT(util::inSameCidrBlock("192.168.128.1", "192.168.0.1", 16));
+ CPPUNIT_ASSERT(!util::inSameCidrBlock("192.168.128.1", "192.168.0.1", 17));
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "192.168.0.1", 32));
- CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), std::string(inet_ntoa(in)));
+ CPPUNIT_ASSERT(util::inSameCidrBlock("192.168.0.1", "192.168.0.1", 32));
+ CPPUNIT_ASSERT(!util::inSameCidrBlock("192.168.0.1", "192.168.0.0", 32));
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "192.168.0.1", 0));
- CPPUNIT_ASSERT_EQUAL(std::string("0.0.0.0"), std::string(inet_ntoa(in)));
+ CPPUNIT_ASSERT(util::inSameCidrBlock("192.168.0.1", "10.0.0.1", 0));
- CPPUNIT_ASSERT(util::getCidrPrefix(in, "10.10.1.44", 27));
- CPPUNIT_ASSERT_EQUAL(std::string("10.10.1.32"), std::string(inet_ntoa(in)));
+ CPPUNIT_ASSERT(util::inSameCidrBlock("2001:db8::2:1", "2001:db0::2:2", 28));
+ CPPUNIT_ASSERT(!util::inSameCidrBlock("2001:db8::2:1", "2001:db0::2:2", 29));
- CPPUNIT_ASSERT(!util::getCidrPrefix(in, "::1", 32));
-}
-
-void UtilTest::testInSameCidrBlock()
-{
- CPPUNIT_ASSERT(util::inSameCidrBlock("192.168.128.1", "192.168.0.1", 16));
- CPPUNIT_ASSERT(!util::inSameCidrBlock("192.168.128.1", "192.168.0.1", 17));
+ CPPUNIT_ASSERT(!util::inSameCidrBlock("2001:db8::2:1", "192.168.0.1", 8));
}
void UtilTest::testIsUtf8String()