Pillow/Tests
Eric Soroos ba65f0b08e Fix Memory DOS in ImageFont
* A corrupt or specially crafted TTF font could have font metrics that
  lead to unreasonably large sizes when rendering text in
  font. ImageFont.py did not check the image size before allocating
  memory for it.
* Found with oss-fuzz
* This dates from the PIL fork
2021-04-01 17:17:27 +03:00
..
fonts Fix Memory DOS in ImageFont 2021-04-01 17:17:27 +03:00
icc Corrected filename [ci skip] 2016-05-03 19:23:51 +10:00
images Fix FLI DOS -- CVE-2021-28676 2021-04-01 17:17:23 +03:00
oss-fuzz Add libxcb to fuzzers 2021-03-28 13:49:37 +02:00
__init__.py Improve pytest configuration to allow specific tests as CLI args 2019-01-13 09:00:12 -08:00
32bit_segfault_check.py Introduce isort to automate import ordering and formatting 2019-07-06 16:11:35 -07:00
bench_cffi_access.py Remove old Travis CI config 2020-12-19 21:57:32 +02:00
check_fli_oob.py Format with Black 2020-04-01 09:54:26 +03:00
check_fli_overflow.py Removed PillowTestCase helper class 2020-03-28 12:51:28 +11:00
check_icns_dos.py Added context managers 2021-02-11 21:43:54 +11:00
check_imaging_leaks.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_j2k_dos.py Added context managers 2021-02-11 21:43:54 +11:00
check_j2k_leaks.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_j2k_overflow.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_jp2_overflow.py Format with Black 2020-04-01 10:34:19 +03:00
check_jpeg_leaks.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_large_memory_numpy.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_large_memory.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_libtiff_segfault.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
check_png_dos.py Upgrade Python syntax for 3.6+ 2020-07-30 10:09:18 +03:00
conftest.py Removed unused imports 2021-04-01 12:57:34 +11:00
createfontdatachunk.py Upgrade Python syntax for 3.6+ 2020-07-30 10:09:18 +03:00
helper.py Make code for ImageMagick/GraphicsMagick more symmetric 2021-03-22 19:50:06 +00:00
README.rst unittest is no longer used in every test [ci skip] 2020-03-27 18:36:36 +11:00
test_000_sanity.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_binary.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_bmp_reference.py Changed zero length assertions to falsy 2021-02-11 13:48:31 +11:00
test_box_blur.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_color_lut.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_core_resources.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_decompression_bomb.py Added context managers 2021-02-11 21:43:54 +11:00
test_features.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_apng.py Use disposal settings from previous frame 2020-12-24 09:55:22 +11:00
test_file_blp.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_bmp.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_bufrstub.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_container.py Return strings or bytes from ContainerIO according to the file object mode 2020-02-15 22:13:10 +11:00
test_file_cur.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_dcx.py Changed zero length assertions to falsy 2021-02-11 13:48:31 +11:00
test_file_dds.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_eps.py Fix EPS DOS on _open -- CVE-2021-28677 2021-04-01 17:17:18 +03:00
test_file_fitsstub.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_fli.py Fix FLI DOS -- CVE-2021-28676 2021-04-01 17:17:23 +03:00
test_file_fpx.py Added context managers 2021-02-11 21:43:54 +11:00
test_file_ftex.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_gbr.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_gd.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_gif.py Only set info transparency on first frame 2021-03-17 00:24:57 +11:00
test_file_gimpgradient.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
test_file_gimppalette.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_gribstub.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_hdf5stub.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_icns.py Fixed unclosed file warning 2021-03-12 22:45:07 +11:00
test_file_ico.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_im.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_iptc.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_jpeg.py Moved getxmp() into JpegImageFile 2021-04-01 22:28:37 +11:00
test_file_jpeg2k.py Fix OOB Read in Jpeg2KDecode CVE-2021-25287,CVE-2021-25288 2021-04-01 17:17:13 +03:00
test_file_libtiff_small.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_libtiff.py Swap pixel values on Big Endian 2021-03-28 15:03:37 +02:00
test_file_mcidas.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_mic.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_mpo.py Merge pull request #5168 from radarhere/mpo 2021-03-07 11:38:36 +02:00
test_file_msp.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_palm.py Removed CONVERT helper variables 2021-03-22 19:50:06 +00:00
test_file_pcd.py Converted to pytest 2020-02-25 20:57:27 +11:00
test_file_pcx.py Handle PCX images with an odd stride 2021-01-21 19:29:11 +11:00
test_file_pdf.py useless reptile 2021-01-07 14:57:49 +01:00
test_file_pixar.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_png.py Allow fewer palette entries than the bit depth maximum 2021-03-21 09:22:01 +11:00
test_file_ppm.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_psd.py Merge pull request #5259 from radarhere/warns 2021-02-17 21:31:15 +02:00
test_file_sgi.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_spider.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_sun.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_file_tar.py Changed zero length assertions to falsy 2021-02-11 13:48:31 +11:00
test_file_tga.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_tiff_metadata.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_tiff.py Save ICC profile from TIFF encoderinfo 2021-03-10 20:16:49 +11:00
test_file_wal.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_file_webp_alpha.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_file_webp_animated.py Only set info transparency on first frame 2021-03-17 00:24:57 +11:00
test_file_webp_lossless.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_webp_metadata.py useless reptile 2021-01-07 14:57:49 +01:00
test_file_webp.py Use duration from info dictionary when saving 2021-03-17 20:37:31 +11:00
test_file_wmf.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_file_xbm.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_xpm.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_file_xvthumb.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_font_bdf.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_font_leaks.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_font_pcf_charsets.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_font_pcf.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_format_hsv.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_format_lab.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_access.py Test for incorrect PixelAccess arguments 2021-01-14 22:09:11 +11:00
test_image_array.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_convert.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_copy.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_crop.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_draft.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_image_entropy.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_filter.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_frombytes.py Remove im.offset, deprecated in 2001; and fromstring and tostring, deprecated in 2013 2020-07-17 10:55:20 +03:00
test_image_fromqimage.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_getbands.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getbbox.py If an alpha channel is present, only use that to get bounding box 2020-02-28 22:33:02 +11:00
test_image_getcolors.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_getdata.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_getextrema.py Fixed endian handling for I;16 getextrema 2020-02-29 20:29:28 +11:00
test_image_getim.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getpalette.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getprojection.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_histogram.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_load.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_mode.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
test_image_paste.py Consider transparency when drawing text on an RGBA image 2020-04-19 20:56:17 +10:00
test_image_point.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_putalpha.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_putdata.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_putpalette.py Allow putpalette to accept 1024 integers to include alpha values 2020-12-12 14:12:30 +11:00
test_image_quantize.py Set all transparent colors to be equal 2021-02-25 22:49:11 +11:00
test_image_reduce.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_resample.py known failing tests from valgrind -- uninitialized values 2021-01-07 14:52:02 +01:00
test_image_resize.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_image_rotate.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_image_split.py Converted to pytest 2020-02-25 20:57:27 +11:00
test_image_thumbnail.py useless reptile 2021-01-07 14:57:49 +01:00
test_image_tobitmap.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_tobytes.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_transform.py corrected comment 2021-03-27 02:06:36 +01:00
test_image_transpose.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image.py Merge pull request #5274 from radarhere/gradient 2021-03-28 14:35:22 +01:00
test_imagechops.py Added more tests 2020-06-29 23:31:04 +03:00
test_imagecms.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_imagecolor.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imagedraw.py Increased use of assert_image_equal_tofile 2021-03-20 22:32:27 +11:00
test_imagedraw2.py Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00
test_imageenhance.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imagefile.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imagefont.py Fix Memory DOS in ImageFont 2021-04-01 17:17:27 +03:00
test_imagefontctl.py Merge pull request #5215 from radarhere/license 2021-03-07 11:41:56 +02:00
test_imagegrab.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imagemath.py Upgrade Python syntax for 3.6+ 2020-07-30 10:09:18 +03:00
test_imagemorph.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_imageops_usm.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imageops.py Test that preserve_tone changes RGB images but not L images 2021-03-29 23:26:34 +11:00
test_imagepalette.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_imagepath.py Add tests for ImagePath.Path 2020-12-18 22:54:48 +02:00
test_imageqt.py Ensure file is closed if it is opened by ImageQt.ImageQt 2021-03-08 20:38:03 +11:00
test_imagesequence.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imageshow.py Added IPythonViewer 2021-03-04 08:55:24 +11:00
test_imagestat.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_imagetk.py Revert "Skip due to segmentation fault" 2020-10-04 22:48:23 +01:00
test_imagewin_pointers.py Added context managers 2021-02-11 21:43:54 +11:00
test_imagewin.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_lib_image.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_lib_pack.py Add Tests and support for Planar Tiff Images 2021-03-28 15:03:37 +02:00
test_locale.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_main.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_map.py Added test 2021-01-30 13:01:42 +11:00
test_mode_i16.py Upgrade Python syntax for 3.6+ 2020-07-30 10:09:18 +03:00
test_numpy.py Migrated from deprecated numpy bool and float 2021-02-26 20:59:11 +11:00
test_pdfparser.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_pickle.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_psdraw.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_pyroma.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_qt_image_qapplication.py Moved RGB fix inside ImageQt class 2021-03-10 13:17:19 +11:00
test_qt_image_toqimage.py Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11:00
test_sgi_crash.py Fix OOB read in SgiRleDecode.c 2021-03-01 19:04:19 +11:00
test_shell_injection.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_tiff_crashes.py Fix for crash-0da0 2021-03-31 23:24:30 +02:00
test_tiff_ifdrational.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_uploader.py Converted to pytest 2020-02-25 20:57:27 +11:00
test_util.py Merge branch 'master' into rm-3.5 2020-09-01 20:16:46 +03:00
test_webp_leaks.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00

Pillow Tests
============

Test scripts are named ``test_xxx.py``. Helper classes and functions can be found in ``helper.py``.

Dependencies
------------

Install::

    python3 -m pip install pytest pytest-cov

Execution
---------

To run an individual test::

    pytest Tests/test_image.py

Or::

    pytest -k test_image.py

Run all the tests from the root of the Pillow source distribution::

    pytest

Or with coverage::

    pytest --cov PIL --cov Tests --cov-report term
    coverage html
    open htmlcov/index.html