From 2ef7c478444f453a04ae63ecc3d3de07915ad2b0 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 20 Apr 2015 09:26:49 +0300 Subject: Issue #23728: binascii.crc_hqx() could return an integer outside of the range 0-0xffff for empty data. --- Lib/test/test_binascii.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'Lib/test/test_binascii.py') diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index 22d53af190..50ad56eaec 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -136,6 +136,18 @@ class BinASCIITest(unittest.TestCase): # Issue #7701 (crash on a pydebug build) self.assertEqual(binascii.b2a_uu(b'x'), b'!> \n') + def test_crc_hqx(self): + crc = binascii.crc_hqx(self.type2test(b"Test the CRC-32 of"), 0) + crc = binascii.crc_hqx(self.type2test(b" this string."), crc) + self.assertEqual(crc, 14290) + + self.assertRaises(TypeError, binascii.crc_hqx) + self.assertRaises(TypeError, binascii.crc_hqx, self.type2test(b'')) + + for crc in 0, 1, 0x1234, 0x12345, 0x12345678, -1: + self.assertEqual(binascii.crc_hqx(self.type2test(b''), crc), + crc & 0xffff) + def test_crc32(self): crc = binascii.crc32(self.type2test(b"Test the CRC-32 of")) crc = binascii.crc32(self.type2test(b" this string."), crc) -- cgit v1.2.1