mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			793 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			793 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
 | 
						|
import pytest
 | 
						|
 | 
						|
from PIL import Image, ImageDraw, ImageFont
 | 
						|
 | 
						|
from .helper import skip_unless_feature
 | 
						|
 | 
						|
 | 
						|
class TestFontCrash:
 | 
						|
    def _fuzz_font(self, font: ImageFont.FreeTypeFont) -> None:
 | 
						|
        # from fuzzers.fuzz_font
 | 
						|
        font.getbbox("ABC")
 | 
						|
        font.getmask("test text")
 | 
						|
        with Image.new(mode="RGBA", size=(200, 200)) as im:
 | 
						|
            draw = ImageDraw.Draw(im)
 | 
						|
            draw.multiline_textbbox((10, 10), "ABC\nAaaa", font, stroke_width=2)
 | 
						|
            draw.text((10, 10), "Test Text", font=font, fill="#000")
 | 
						|
 | 
						|
    @skip_unless_feature("freetype2")
 | 
						|
    def test_segfault(self) -> None:
 | 
						|
        with pytest.raises(OSError):
 | 
						|
            font = ImageFont.truetype("Tests/fonts/fuzz_font-5203009437302784")
 | 
						|
            self._fuzz_font(font)
 |