]> granicus.if.org Git - python/commitdiff
Add a test for hashing of unaligned memory buffers (from issue #16427).
authorAntoine Pitrou <solipsis@pitrou.net>
Sun, 11 Nov 2012 19:10:48 +0000 (20:10 +0100)
committerAntoine Pitrou <solipsis@pitrou.net>
Sun, 11 Nov 2012 19:10:48 +0000 (20:10 +0100)
Lib/test/test_hash.py

index 077677983696ea11f40a2671c118dcfe8f624126..d1ddc7698473e1b3ee92f07759f7f3d8fa97797b 100644 (file)
@@ -45,6 +45,16 @@ class HashEqualityTestCase(unittest.TestCase):
         self.same_hash(int(1.23e300), float(1.23e300))
         self.same_hash(float(0.5), complex(0.5, 0.0))
 
+    def test_unaligned_buffers(self):
+        # The hash function for bytes-like objects shouldn't have
+        # alignment-dependent results (example in issue #16427).
+        b = b"123456789abcdefghijklmnopqrstuvwxyz" * 128
+        for i in range(16):
+            for j in range(16):
+                aligned = b[i:128+j]
+                unaligned = memoryview(b)[i:128+j]
+                self.assertEqual(hash(aligned), hash(unaligned))
+
 
 _default_hash = object.__hash__
 class DefaultHash(object): pass