mirror of
https://github.com/python/cpython
synced 2024-09-05 00:05:39 +00:00
Create a signed CRC32 hash. I'm not absolutely sure it's correct. At least it fixes the unit tests and doesn't create a different hash than Python 2.x
This commit is contained in:
parent
d5e2b6f3bc
commit
453e08c3bf
|
@ -42,7 +42,7 @@ def test_penguins(self):
|
|||
def test_crc32_adler32_unsigned(self):
|
||||
foo = 'abcdefghijklmnop'
|
||||
# explicitly test signed behavior
|
||||
self.assertEqual(zlib.crc32(foo), 2486878355)
|
||||
self.assertEqual(zlib.crc32(foo), -1808088941)
|
||||
self.assertEqual(zlib.crc32('spam'), 1138425661)
|
||||
self.assertEqual(zlib.adler32(foo+foo), 3573550353)
|
||||
self.assertEqual(zlib.adler32('spam'), 72286642)
|
||||
|
|
|
@ -940,7 +940,7 @@ PyZlib_crc32(PyObject *self, PyObject *args)
|
|||
if (!PyArg_ParseTuple(args, "s#|k:crc32", &buf, &len, &crc32val))
|
||||
return NULL;
|
||||
crc32val = crc32(crc32val, buf, len);
|
||||
return PyLong_FromUnsignedLong(crc32val & 0xffffffff);
|
||||
return PyLong_FromLong(crc32val & 0xffffffff);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue