changeset: 80401:797de1864fd9 branch: 3.3 parent: 80398:e75945ac0bed user: Antoine Pitrou date: Sun Nov 11 20:10:48 2012 +0100 files: Lib/test/test_hash.py description: Add a test for hashing of unaligned memory buffers (from issue #16427). diff -r e75945ac0bed -r 797de1864fd9 Lib/test/test_hash.py --- a/Lib/test/test_hash.py Sun Nov 11 19:40:49 2012 +0100 +++ b/Lib/test/test_hash.py Sun Nov 11 20:10:48 2012 +0100 @@ -45,6 +45,16 @@ 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