]> granicus.if.org Git - python/commitdiff
Merge: Add test for BZ2Decompressor.decompress("") after end of stream.
authorNadeem Vawda <nadeem.vawda@gmail.com>
Sun, 28 Oct 2012 14:21:37 +0000 (15:21 +0100)
committerNadeem Vawda <nadeem.vawda@gmail.com>
Sun, 28 Oct 2012 14:21:37 +0000 (15:21 +0100)
1  2 
Lib/test/test_bz2.py

index 257b144500f26d9ec06b4756c493fa52e4fbafff,5b48e2b6fbae3c919349cda923659cd2fe77169e..f4e81db6e25a0d051edf2d33be885c206855dce2
@@@ -647,26 -364,22 +647,27 @@@ class BZ2DecompressorTest(BaseTest)
          bz2d = BZ2Decompressor()
          text = bz2d.decompress(self.DATA)
          self.assertRaises(EOFError, bz2d.decompress, b"anything")
+         self.assertRaises(EOFError, bz2d.decompress, b"")
  
 -    @bigmemtest(size=_4G, memuse=1.25, dry_run=False)
 -    def testBigmem(self, unused_size):
 -        # Issue #14398: decompression fails when output data is >=2GB.
 -        text = bz2.BZ2Decompressor().decompress(self.DATA_BIGMEM)
 -        self.assertEqual(len(text), _4G)
 -        self.assertEqual(text.strip(b"\0"), b"")
 -
 -
 -class FuncTest(BaseTest):
 -    "Test module functions"
 -
 +    @bigmemtest(size=_4G + 100, memuse=3)
 +    def testDecompress4G(self, size):
 +        # "Test BZ2Decompressor.decompress() with >4GiB input"
 +        blocksize = 10 * 1024 * 1024
 +        block = random.getrandbits(blocksize * 8).to_bytes(blocksize, 'little')
 +        try:
 +            data = block * (size // blocksize + 1)
 +            compressed = bz2.compress(data)
 +            bz2d = BZ2Decompressor()
 +            decompressed = bz2d.decompress(compressed)
 +            self.assertTrue(decompressed == data)
 +        finally:
 +            data = None
 +            compressed = None
 +            decompressed = None
 +
 +
 +class CompressDecompressTest(BaseTest):
      def testCompress(self):
 -        # "Test compress() function"
          data = bz2.compress(self.TEXT)
          self.assertEqual(self.decompress(data), self.TEXT)