mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-12 18:26:17 +03:00
Added Test for JPEG2000 memory leak, before the fix is added
This commit is contained in:
parent
c4afe50b50
commit
5ca57520b6
30
Tests/test_jp2k_leak.py
Normal file
30
Tests/test_jp2k_leak.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
from helper import unittest, PillowTestCase, tearDownModule
|
||||
import sys
|
||||
|
||||
from PIL import Image
|
||||
from resource import setrlimit, RLIMIT_AS, RLIMIT_STACK
|
||||
|
||||
# Limits for testing the leak
|
||||
mem_limit = 512*1048576
|
||||
stack_size = 8*1048576
|
||||
iterations = (mem_limit/stack_size)*2
|
||||
codecs = dir(Image.core)
|
||||
test_file = "Tests/images/rgb_trns_ycbc.jp2"
|
||||
|
||||
@unittest.skipIf(sys.platform.startswith('win32'), "requires Unix or MacOS")
|
||||
class TestJp2kLeak(PillowTestCase):
|
||||
def setUp(self):
|
||||
if "jpeg2k_encoder" not in codecs or "jpeg2k_decoder" not in codecs:
|
||||
self.skipTest('JPEG 2000 support not available')
|
||||
|
||||
def test_leak(self):
|
||||
setrlimit(RLIMIT_STACK, (stack_size, stack_size))
|
||||
setrlimit(RLIMIT_AS, (mem_limit, mem_limit))
|
||||
for count in range(iterations):
|
||||
with Image.open(test_file) as im:
|
||||
im.load()
|
||||
im.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user