Index: net/base/ip_address_unittest.cc |
diff --git a/net/base/ip_address_unittest.cc b/net/base/ip_address_unittest.cc |
index 2863c6b31a02f16b683e65d7e2618b84fcafc382..df29d28979f83797fc045f785767c0e5201cd7f8 100644 |
--- a/net/base/ip_address_unittest.cc |
+++ b/net/base/ip_address_unittest.cc |
@@ -238,6 +238,50 @@ TEST(IPAddressTest, ConvertIPv4MappedIPv6ToIPv4) { |
EXPECT_EQ(expected, result); |
} |
+// Test parsing invalid CIDR notation literals. |
+TEST(IPAddressTest, ParseCIDRBlock_Invalid) { |
martijnc
2016/03/18 18:58:30
These tests are copies from the ones that were in
|
+ const char* const bad_literals[] = {"foobar", |
+ "", |
+ "192.168.0.1", |
+ "::1", |
+ "/", |
+ "/1", |
+ "1", |
+ "192.168.1.1/-1", |
+ "192.168.1.1/33", |
+ "::1/-3", |
+ "a::3/129", |
+ "::1/x", |
+ "192.168.0.1//11"}; |
+ |
+ for (size_t i = 0; i < arraysize(bad_literals); ++i) { |
+ IPAddress ip_address; |
+ size_t prefix_length_in_bits; |
+ |
+ EXPECT_FALSE( |
+ ParseCIDRBlock(bad_literals[i], ip_address, prefix_length_in_bits)); |
+ } |
+} |
+ |
+// Test parsing a valid CIDR notation literal. |
+TEST(IPAddressTest, ParseCIDRBlock_Valid) { |
+ IPAddress ip_address; |
+ size_t prefix_length_in_bits; |
+ |
+ EXPECT_TRUE( |
+ ParseCIDRBlock("192.168.0.1/11", ip_address, prefix_length_in_bits)); |
+ |
+ EXPECT_EQ("192,168,0,1", DumpIPAddress(ip_address)); |
+ EXPECT_EQ(11u, prefix_length_in_bits); |
+ |
+ EXPECT_TRUE(ParseCIDRBlock("::ffff:192.168.0.1/112", ip_address, |
martijnc
2016/03/18 18:58:30
Except for this one.
|
+ prefix_length_in_bits)); |
+ |
+ EXPECT_EQ("0,0,0,0,0,0,0,0,0,0,255,255,192,168,0,1", |
+ DumpIPAddress(ip_address)); |
+ EXPECT_EQ(112u, prefix_length_in_bits); |
+} |
+ |
TEST(IPAddressTest, IPAddressStartsWith) { |
IPAddress ipv4_address(192, 168, 10, 5); |