Pillow/Tests
Eric Soroos 5a5e6db0ab Fix EPS DOS on _open -- CVE-2021-28677
* The readline used in EPS has to deal with any combination of \r and
  \n as line endings. It used an accidentally quadratic method of
  accumulating lines while looking for a line ending.
* A malicious EPS file could use this to perform a DOS of Pillow in
  the open phase, before an image was accepted for opening.
* This dates to the PIL Fork
2021-04-01 17:17:18 +03:00
..
fonts Merge branch 'master' into sbix 2021-03-07 20:05:25 +01:00
icc Corrected filename [ci skip] 2016-05-03 19:23:51 +10:00
images Fix EPS DOS on _open -- CVE-2021-28677 2021-04-01 17:17:18 +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 Update pre-commit 2020-08-31 18:50:15 +10:00
check_large_memory_numpy.py Update to isort 5 with Black profile support 2020-08-08 22:39:29 +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 Replaced various instances of assert_image_equal with assert_image_equal_tofile 2021-02-21 22:15:56 +11: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 Update to isort 5 with Black profile support 2020-08-08 22:39:29 +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 Update to isort 5 with Black profile support 2020-08-08 22:39:29 +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 Merge branch 'master' into sbix 2021-03-07 20:05:25 +01: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