Skip to content

Commit 264bf69

Browse files
committed
gh-134062: Add hash collision regression test
1 parent a3ed2e1 commit 264bf69

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Lib/test/test_ipaddress.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2762,6 +2762,34 @@ def testV6HashIsNotConstant(self):
27622762
ipv6_address2 = ipaddress.IPv6Interface("2001:658:22a:cafe:200:0:0:2")
27632763
self.assertNotEqual(ipv6_address1.__hash__(), ipv6_address2.__hash__())
27642764

2765+
# issue 134062 Hash collisions in IPv4Network and IPv6Network
2766+
def testNetworkV4HashCollisions(self):
2767+
self.assertNotEqual(
2768+
ipaddress.IPv4Network("192.168.1.255/32").__hash__(),
2769+
ipaddress.IPv4Network("192.168.1.0/24").__hash__()
2770+
)
2771+
self.assertNotEqual(
2772+
ipaddress.IPv4Network("172.24.255.0/24").__hash__(),
2773+
ipaddress.IPv4Network("172.24.0.0/16").__hash__()
2774+
)
2775+
self.assertNotEqual(
2776+
ipaddress.IPv4Network("192.168.1.87/32").__hash__(),
2777+
ipaddress.IPv4Network("192.168.1.86/31").__hash__()
2778+
)
2779+
2780+
# issue 134062 Hash collisions in IPv4Network and IPv6Network
2781+
def testNetworkV6HashCollisions(self):
2782+
self.assertNotEqual(
2783+
ipaddress.IPv6Network("fe80::/64").__hash__(),
2784+
ipaddress.IPv6Network("fe80::ffff:ffff:ffff:0/112").__hash__()
2785+
)
2786+
self.assertNotEqual(
2787+
ipaddress.IPv4Network("10.0.0.0/8").__hash__(),
2788+
ipaddress.IPv6Network(
2789+
"ffff:ffff:ffff:ffff:ffff:ffff:aff:0/112"
2790+
).__hash__()
2791+
)
2792+
27652793

27662794
if __name__ == '__main__':
27672795
unittest.main()

0 commit comments

Comments
 (0)