mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-25 05:01:26 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			918 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			918 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from PIL import Image, ImageDraw, ImageFont
 | |
| 
 | |
| from .helper import PillowLeakTestCase, skip_unless_feature
 | |
| 
 | |
| 
 | |
| class TestTTypeFontLeak(PillowLeakTestCase):
 | |
|     # fails at iteration 3 in main
 | |
|     iterations = 10
 | |
|     mem_limit = 4096  # k
 | |
| 
 | |
|     def _test_font(self, font):
 | |
|         im = Image.new("RGB", (255, 255), "white")
 | |
|         draw = ImageDraw.ImageDraw(im)
 | |
|         self._test_leak(
 | |
|             lambda: draw.text(
 | |
|                 (0, 0), "some text " * 1024, font=font, fill="black"  # ~10k
 | |
|             )
 | |
|         )
 | |
| 
 | |
|     @skip_unless_feature("freetype2")
 | |
|     def test_leak(self):
 | |
|         ttype = ImageFont.truetype("Tests/fonts/FreeMono.ttf", 20)
 | |
|         self._test_font(ttype)
 | |
| 
 | |
| 
 | |
| class TestDefaultFontLeak(TestTTypeFontLeak):
 | |
|     # fails at iteration 37 in main
 | |
|     iterations = 100
 | |
|     mem_limit = 1024  # k
 | |
| 
 | |
|     def test_leak(self):
 | |
|         default_font = ImageFont.load_default()
 | |
|         self._test_font(default_font)
 |