diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2012-11-11 19:10:48 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2012-11-11 19:10:48 (GMT) |
commit | 37bfa4e7ec5df1528aa208150933a3fc54508cf9 (patch) | |
tree | f891ea87e622d02143dedd4c9f73dae5dd25ab92 /Lib/test/test_hash.py | |
parent | 1de1394f54d6ed6934e3340159262a2a66833465 (diff) | |
download | cpython-37bfa4e7ec5df1528aa208150933a3fc54508cf9.zip cpython-37bfa4e7ec5df1528aa208150933a3fc54508cf9.tar.gz cpython-37bfa4e7ec5df1528aa208150933a3fc54508cf9.tar.bz2 |
Add a test for hashing of unaligned memory buffers (from issue #16427).
Diffstat (limited to 'Lib/test/test_hash.py')
-rw-r--r-- | Lib/test/test_hash.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_hash.py b/Lib/test/test_hash.py index 0776779..d1ddc76 100644 --- a/Lib/test/test_hash.py +++ b/Lib/test/test_hash.py @@ -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 |