summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/CMakeLists.txt40
-rw-r--r--Build/source/libs/gd/libgd-src/tests/Makefile.am457
-rw-r--r--Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/bmp/bmp_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c18
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/bug00132_exp.pngbin217 -> 257 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd/Makemodule.am13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd/gd_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd/gd_num_colors.c10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am25
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/gd2_empty_file.c13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/gd2_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c74
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/gd2_read_corrupt.c28
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/invalid_header.gd2bin0 -> 512 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/invalid_neg_size.gd2bin0 -> 1676 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339.c21
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339_exp.gd2bin0 -> 67108882 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdhelpers.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagearc/Makemodule.am8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagearc/bug00079.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/gdimagecolorreplace.c12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopy/Makemodule.am11
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopy/bug00081.c13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/Makemodule.am14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic.c37
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha.c40
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha_exp.pngbin0 -> 2668 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_exp.pngbin0 -> 2144 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201.c71
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_exp.pngbin0 -> 11853 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_src.pngbin0 -> 1219 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/exact_alpha.c67
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/Makemodule.am8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/bug00020.c8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecrop/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecrop/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecrop/php_bug_72494.c22
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c32
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/Makemodule.am16
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_1.c24
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_2.c5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_3.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_4.c4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1.c34
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1_exp.pngbin0 -> 137 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/Makemodule.am8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828.c21
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828_exp.pngbin0 -> 713 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/Makemodule.am12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00010.c5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00191.c5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238.c33
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238_exp.pngbin0 -> 1014 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/Makemodule.am18
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/bug00100.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon0.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon1.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon2.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon3.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.c47
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.pngbin0 -> 1425 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/Makemodule.am8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/bug00037.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/github_bug_215.c19
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilter/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilter/gdCopyBlurred.c11
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/Makemodule.am29
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/bug00072.c7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/bug00077.c8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/bug00111.c11
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/gdImageAALine_thickness.c16
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa.c29
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa_outofrange.c1
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167.c75
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167_exp.pngbin0 -> 4697 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/Makemodule.am14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon0.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon1.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon2.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon3.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepixelate/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepixelate/gdimagepixelate.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/Makemodule.am14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon0.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon1.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon2.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon3.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerectangle/github_bug_00172.c53
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am28
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067.c27
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_000_exp.pngbin30195 -> 49446 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_015_exp.pngbin34731 -> 100262 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_030_exp.pngbin36734 -> 124364 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_045_exp.pngbin36631 -> 134440 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_060_exp.pngbin36759 -> 124364 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_075_exp.pngbin34775 -> 100262 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_090_exp.pngbin30955 -> 49446 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_105_exp.pngbin35010 -> 100262 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_120_exp.pngbin36899 -> 124364 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_135_exp.pngbin37111 -> 134440 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_150_exp.pngbin36771 -> 124364 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_165_exp.pngbin34593 -> 100262 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_180_exp.pngbin30299 -> 49446 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898.c30
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898_exp.pngbin6363 -> 2371 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.jpgbin10619 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.pngbin0 -> 49446 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/bug_overflow_large_new_size.c31
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/github_bug_00218.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescatterex/Makemodule.am11
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_1.c21
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_2.c21
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectmultiply.c33
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectoverlay.c33
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt8
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringftex/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringftex/gdimagestringftex_returnfontpathname.c5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/php_bug_72512.c34
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdModesAndPalettes.c4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdTrivialResize.c95
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdnewfilectx/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtest/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c382
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.h40
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtiled/Makemodule.am10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtiled/bug00032.c11
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/github_bug_00221.c32
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am25
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00005.c14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00006.c17
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00060.c12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00066.c13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00181.c24
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00227.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/gif_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am21
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/bug_github_18.c60
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18.pngbin0 -> 2088 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18_exp.jpegbin0 -> 18938 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_empty_file.c10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_read.c28
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/Makemodule.am20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00011.c9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00033.c10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00086.c3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00088.c15
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/png_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/test_config.h.in12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am15
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00084.c13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00084.tgabin0 -> 9018 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00247.c14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00247.tgabin0 -> 74 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00247a.c19
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00247a.tgabin0 -> 36 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00248.c14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00248.tgabin0 -> 816 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00248a.c16
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/bug00248a.tgabin0 -> 816 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c84
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c33
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/wbmp/Makemodule.am10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/wbmp/wbmp_im2im.c20
-rw-r--r--Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/webp/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/webp/bug00111.c25
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_170.c50
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/Makemodule.am13
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/bug00166.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/color_name.c6
238 files changed, 2600 insertions, 1176 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/CMakeLists.txt
index 5f8706fdb02..3c1402c57dc 100644
--- a/Build/source/libs/gd/libgd-src/tests/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/CMakeLists.txt
@@ -18,8 +18,8 @@ if (BUILD_TEST)
include_directories (BEFORE ${GD_INCLUDE_DIR} "${GDTEST_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_BINARY_DIR}/tests/gdtest")
SET(TESTS_DIRS
- gdtest
bmp
+ freetype
gd
gd2
gdimagearc
@@ -30,47 +30,45 @@ if (BUILD_TEST)
gdimagecolorresolve
gdimagecolortransparent
gdimagecopy
+ gdimagecopyresampled
gdimagecopyrotated
+ gdimagecrop
+ gdimagefile
gdimagefill
+ gdimagefilledarc
gdimagefilledellipse
gdimagefilledpolygon
gdimagefilledrectangle
gdimagefilltoborder
+ gdimagefilter
gdimageline
gdimageopenpolygon
gdimagepixelate
gdimagepolygon
gdimagerectangle
gdimagerotate
+ gdimagescale
gdimagescatterex
gdimagesetpixel
+ gdimagestringft
+ gdimagestringftex
+ gdimagetruecolortopalette
+ gdinterpolatedscale
gdnewfilectx
+ gdtest
gdtiled
+ gdtransformaffineboundingbox
gif
+ jpeg
+ png
tga
+ tiff
wbmp
+ webp
+ xbm
+ xpm
)
- IF(FREETYPE_FOUND)
- LIST(APPEND TESTS_DIRS freetype gdimagestringft gdimagestringftex)
- ENDIF(FREETYPE_FOUND)
-
- IF(JPEG_FOUND)
- LIST(APPEND TESTS_DIRS jpeg)
- ENDIF(JPEG_FOUND)
-
- IF(PNG_FOUND)
- LIST(APPEND TESTS_DIRS png)
- ENDIF(PNG_FOUND)
-
- IF(TIFF_FOUND)
- LIST(APPEND TESTS_DIRS tiff)
- ENDIF(TIFF_FOUND)
-
- IF(XPM_FOUND)
- LIST(APPEND TESTS_DIRS xpm)
- ENDIF(XPM_FOUND)
-
FOREACH(test_dir ${TESTS_DIRS})
add_subdirectory (${test_dir})
ENDFOREACH(test_dir)
diff --git a/Build/source/libs/gd/libgd-src/tests/Makefile.am b/Build/source/libs/gd/libgd-src/tests/Makefile.am
index 346bcd4c265..afdcd5d6a0a 100644
--- a/Build/source/libs/gd/libgd-src/tests/Makefile.am
+++ b/Build/source/libs/gd/libgd-src/tests/Makefile.am
@@ -1,368 +1,89 @@
-noinst_LIBRARIES = libgdtest.a
-
-libgdtest_a_SOURCES = \
- gdtest/gdtest.c \
- gdtest/gdtest.h \
- ../src/gdhelpers.c
-
-check_PROGRAMS = \
- gd2/gd2_empty_file \
- gdimagesetpixel/bug00186 \
- gdimagestringftex/gdimagestringftex_returnfontpathname \
- gdimageline/gdimageline_aa_outofrange \
- gdimagerectangle/bug00003 \
- gdimagerectangle/bug00106_gdimagerectangle \
- gd/gd_null \
- gd/gd_num_colors \
- tga/tga_null \
- gdimagepixelate/gdimagepixelate \
- gdimagecopy/bug00007 \
- gdnewfilectx/gdnewfilectx_null \
- gdimagefilledrectangle/bug00078 \
- gdimagefilledrectangle/bug00004 \
- gdimagefilledrectangle/bug00106_gdimagefilledrectangle \
- gdimagecolordeallocate/gdimagecolordeallocate \
- wbmp/wbmp_null \
- gdimagecolortransparent/gdimagecolortransparent \
- gif/bug00005_2 \
- gif/gif_null \
- gif/bug00181 \
- gif/bug00227 \
- bmp/bmp_null \
- gdinterpolatedscale/gdTrivialResize \
- gdinterpolatedscale/gdModesAndPalettes \
- gd/gd_versiontest \
- gdimagefilter/gdCopyBlurred \
- gdimagefile/gdnametest
-
-EXTRA_PROGRAMS = \
- gdimagestringft/gdimagestringft_bbox \
- gdtiled/bug00032 \
- gd2/gd2_im2im \
- gd2/gd2_null \
- gd2/gd2_read \
- gdimagearc/bug00079 \
- gdimageline/gdimageline_aa \
- gdimageline/bug00072 \
- gdimageline/bug00077 \
- gdimageline/bug00111 \
- gdimageline/gdimageline_bug5 \
- gdimageline/gdImageAALine_thickness \
- gdimageopenpolygon/gdimageopenpolygon2 \
- gdimageopenpolygon/gdimageopenpolygon1 \
- gdimageopenpolygon/gdimageopenpolygon0 \
- gdimageopenpolygon/gdimageopenpolygon3 \
- gd/gd_im2im \
- gdimagecopy/bug00081 \
- gdimagecopyrotated/bug00020 \
- gdimagepolygon/gdimagepolygon0 \
- gdimagepolygon/gdimagepolygon3 \
- gdimagepolygon/gdimagepolygon1 \
- gdimagepolygon/gdimagepolygon2 \
- gdimagecolorresolve/gdimagecolorresolve \
- gdimagefilledpolygon/gdimagefilledpolygon0 \
- gdimagefilledpolygon/gdimagefilledpolygon3 \
- gdimagefilledpolygon/gdimagefilledpolygon2 \
- gdimagefilledpolygon/gdimagefilledpolygon1 \
- gdimagefilledpolygon/bug00100 \
- gdimagecolorreplace/gdimagecolorreplace \
- gdimagefill/bug00002_2 \
- gdimagefill/bug00002_1 \
- gdimagefill/bug00002_4 \
- gdimagefill/bug00002_3 \
- gdimagecolorclosest/gdimagecolorclosest \
- gif/bug00005 \
- gif/gif_im2im \
- gif/bug00066 \
- gif/bug00006 \
- gif/bug00060 \
- gdimagecolorexact/gdimagecolorexact \
- gdimagefilledellipse/bug00191 \
- gdimagefilledellipse/bug00010 \
- xpm/bug00185 \
- xpm/color_name \
- xpm/bug00166 \
- jpeg/jpeg_empty_file \
- jpeg/jpeg_resolution \
- jpeg/jpeg_im2im \
- jpeg/jpeg_null \
- jpeg/jpeg_read \
- png/png_null \
- png/bug00033 \
- png/bug00193 \
- png/bug00011 \
- png/bug00088 \
- png/png_resolution \
- png/bug00086 \
- png/png_im2im \
- wbmp/wbmp_im2im \
- tiff/tiff_null \
- tiff/tiff_im2im \
- freetype/bug00132 \
- bmp/bmp_im2im \
- gdimagescatterex/bug00208_1 \
- gdimagescatterex/bug00208_2 \
- gdimagefilltoborder/bug00037 \
- gdimagerotate/php_bug_64898 \
- gdimagerotate/bug00067
-
-if HAVE_LIBXPM
-check_PROGRAMS += \
- xpm/bug00185 \
- xpm/color_name \
- xpm/bug00166
-endif
-
-if HAVE_LIBJPEG
-check_PROGRAMS += \
- jpeg/jpeg_empty_file \
- jpeg/jpeg_im2im \
- jpeg/jpeg_null
-if HAVE_LIBPNG
-check_PROGRAMS += \
- jpeg/jpeg_resolution \
- jpeg/jpeg_read
-endif
-endif
-
-if HAVE_LIBZ
-check_PROGRAMS += \
- gd2/gd2_null
-endif
-
-if HAVE_LIBPNG
-if HAVE_LIBZ
-check_PROGRAMS += \
- gd2/gd2_read \
- gd2/gd2_im2im \
- gdtiled/bug00032
-endif
-check_PROGRAMS += \
- gdimagestringft/gdimagestringft_bbox \
- gdimagearc/bug00079 \
- gdimageline/gdimageline_aa \
- gdimageline/bug00072 \
- gdimageline/bug00077 \
- gdimageline/bug00111 \
- gdimageline/gdimageline_bug5 \
- gdimageline/gdImageAALine_thickness \
- gdimageopenpolygon/gdimageopenpolygon2 \
- gdimageopenpolygon/gdimageopenpolygon1 \
- gdimageopenpolygon/gdimageopenpolygon0 \
- gdimageopenpolygon/gdimageopenpolygon3 \
- gd/gd_im2im \
- gdimagecopy/bug00081 \
- gdimagecopyrotated/bug00020 \
- gdimagepolygon/gdimagepolygon0 \
- gdimagepolygon/gdimagepolygon3 \
- gdimagepolygon/gdimagepolygon1 \
- gdimagepolygon/gdimagepolygon2 \
- gdimagecolorresolve/gdimagecolorresolve \
- gdimagefilledpolygon/gdimagefilledpolygon0 \
- gdimagefilledpolygon/gdimagefilledpolygon3 \
- gdimagefilledpolygon/gdimagefilledpolygon2 \
- gdimagefilledpolygon/gdimagefilledpolygon1 \
- gdimagefilledpolygon/bug00100 \
- gdimagecolorreplace/gdimagecolorreplace \
- gdimagefill/bug00002_2 \
- gdimagefill/bug00002_1 \
- gdimagefill/bug00002_4 \
- gdimagefill/bug00002_3 \
- gdimagecolorclosest/gdimagecolorclosest \
- gif/bug00005 \
- gif/gif_im2im \
- gif/bug00066 \
- gif/bug00006 \
- gif/bug00060 \
- gdimagecolorexact/gdimagecolorexact \
- gdimagefilledellipse/bug00191 \
- gdimagefilledellipse/bug00010 \
- png/png_null \
- png/bug00033 \
- png/bug00193 \
- png/bug00011 \
- png/bug00088 \
- png/png_resolution \
- png/bug00086 \
- png/png_im2im \
- wbmp/wbmp_im2im \
- bmp/bmp_im2im \
- gdimagescatterex/bug00208_1 \
- gdimagescatterex/bug00208_2 \
- gdimagefilltoborder/bug00037 \
- gdimagerotate/php_bug_64898 \
- gdimagerotate/bug00067
-endif
-
-if HAVE_LIBTIFF
-check_PROGRAMS += \
- tiff/tiff_null \
- tiff/tiff_im2im
-endif
-
-if HAVE_LIBFREETYPE
-check_PROGRAMS +=
- freetype/bug00132
-endif
-
-LDADD = libgdtest.a ../src/libgd.la
-AM_CPPFLAGS = -I$(top_srcdir)/src -I $(top_srcdir)/tests/gdtest
-
-TESTS = $(check_PROGRAMS)
-
-EXTRA_DIST = \
- gdtest/test_config.h.cmake \
- xpm/bug00166.xpm \
- xpm/bug00185.xpm \
- xpm/bug00185_damaged.xpm \
- xpm/color_name.xpm \
- gdtiled/bug00032_exp.png \
- jpeg/conv_test.jpeg \
- jpeg/conv_test_exp.png \
- jpeg/empty.jpeg \
- gd2/conv_test.gd2 \
- gd2/conv_gd2_exp.gd2 \
- gd2/empty.gd2 \
- gd2/conv_test_exp.png \
- gdimagearc/bug00079_exp.png \
- png/bug00088_2.png \
- png/bug00088_1_exp.png \
- png/bug00033.png \
- png/bug00088_2_exp.png \
- png/bug00088_1.png \
- png/emptyfile \
- gdimageline/gdimageline_aa_b_0_exp.png \
- gdimageline/gdimageline_aa_c_0_exp.png \
- gdimageline/gdimageline_aa_d_1_exp.png \
- gdimageline/gdimageline_aa_a_1_exp.png \
- gdimageline/gdimageline_aa_d_0_exp.png \
- gdimageline/bug00111_exp.png \
- gdimageline/gdimageline_aa_c_1_exp.png \
- gdimageline/gdimageline_aa_a_0_exp.png \
- gdimageline/gdimageline_aa_b_1_exp.png \
- gdimageline/bug00072_exp.png \
- gdimageline/bug00077_exp.png \
- gdimageopenpolygon/gdimageopenpolygon0.png \
- gdimageopenpolygon/gdimageopenpolygon1.png \
- gdimageopenpolygon/gdimageopenpolygon2.png \
- gdimageopenpolygon/gdimageopenpolygon3.png \
- gd/crafted_num_colors.gd \
- gdimagecopy/bug00081_exp.png \
- gdimagecopyrotated/bug00020_exp.png \
- gdimagepolygon/gdimagepolygon1.png \
- gdimagepolygon/gdimagepolygon3.png \
- gdimagepolygon/gdimagepolygon0.png \
- gdimagepolygon/gdimagepolygon2.png \
- gdimagefilledpolygon/gdimagefilledpolygon0.png \
- gdimagefilledpolygon/gdimagefilledpolygon1.png \
- gdimagefilledpolygon/gdimagefilledpolygon3.png \
- gdimagefilledpolygon/gdimagefilledpolygon2.png \
- gdimagefilledpolygon/bug00100.png \
- gdimagefill/bug00002_3_exp.png \
- gdimagefill/bug00002_2_exp.png \
- gdimagefill/bug00002_1_exp.png \
- gdimagefill/bug00002_4_exp.png \
- gif/bug00005_0.gif \
- gif/bug00005_1.gif \
- gif/bug00005_3.gif \
- gif/bug00005_2.gif \
- gif/bug00060.gif \
- gif/bug00066_exp.png \
- gif/bug00005_2_exp.png \
- gif/bug00066.gif \
- gdimagefilledellipse/bug00191.png \
- gdimagefilledellipse/bug00010_exp.png \
- gdimagescatterex/bug00208_2.png \
- gdimagescatterex/bug00208.png \
- gdimagescatterex/bug00208_1.png \
- freetype/bug00132_exp.png \
- freetype/DejaVuSans.ttf \
- gdimagestringft/CMakeLists.txt \
- gdtest/CMakeLists.txt \
- xpm/CMakeLists.txt \
- gdtiled/CMakeLists.txt \
- jpeg/CMakeLists.txt \
- gd2/CMakeLists.txt \
- gdimagesetpixel/CMakeLists.txt \
- gdimagearc/CMakeLists.txt \
- png/CMakeLists.txt \
- gdimagestringftex/CMakeLists.txt \
- gdimageline/CMakeLists.txt \
- gdimageopenpolygon/CMakeLists.txt \
- gdimagerectangle/CMakeLists.txt \
- gd/CMakeLists.txt \
- tga/CMakeLists.txt \
- gdimagepixelate/CMakeLists.txt \
- tiff/CMakeLists.txt \
- gdimagecopy/CMakeLists.txt \
- CMakeLists.txt \
- gdnewfilectx/CMakeLists.txt \
- gdimagefilledrectangle/CMakeLists.txt \
- gdimagecopyrotated/CMakeLists.txt \
- gdimagepolygon/CMakeLists.txt \
- gdimagecolordeallocate/CMakeLists.txt \
- wbmp/CMakeLists.txt \
- gdimagecolorresolve/CMakeLists.txt \
- gdimagefilledpolygon/CMakeLists.txt \
- gdimagecolorreplace/CMakeLists.txt \
- gdimagefill/CMakeLists.txt \
- gdimagecolorclosest/CMakeLists.txt \
- gdimagecolortransparent/CMakeLists.txt \
- gif/CMakeLists.txt \
- gdimagecolorexact/CMakeLists.txt \
- gdimagefilledellipse/CMakeLists.txt \
- bmp/CMakeLists.txt \
- gdimagescatterex/CMakeLists.txt \
- gdimagefilltoborder/CMakeLists.txt \
- freetype/CMakeLists.txt \
- gdimagerotate/php_bug_64898.png \
- gdimagerotate/php_bug_64898_exp.png \
- gdimagerotate/remirh128.jpg \
- gdimagerotate/bug00067_000_exp.png \
- gdimagerotate/bug00067_015_exp.png \
- gdimagerotate/bug00067_030_exp.png \
- gdimagerotate/bug00067_045_exp.png \
- gdimagerotate/bug00067_060_exp.png \
- gdimagerotate/bug00067_075_exp.png \
- gdimagerotate/bug00067_090_exp.png \
- gdimagerotate/bug00067_105_exp.png \
- gdimagerotate/bug00067_120_exp.png \
- gdimagerotate/bug00067_135_exp.png \
- gdimagerotate/bug00067_150_exp.png \
- gdimagerotate/bug00067_165_exp.png \
- gdimagerotate/bug00067_180_exp.png \
- gdimagefile/img-ref.tga \
- gdimagefile/img-ref.xbm \
- gdimagefile/img-ref.xpm \
- gdimageline/gdImageAALine_thickness_exp.png
-
-CLEANFILES = \
- a.png \
- bmp_im2im_dst.bmp \
- bmp_im2im_src.bmp \
- bug00132.c_35_diff.png \
- bug00132.c_35_out.png \
- bug00181.gif \
- bug00181a.gif \
- bug00227.gif \
- gd2_im2im_dst.gd2 \
- gd2_im2im_src.gd2 \
- gd_im2im_dst.gd \
- gd_im2im_src.gd \
- gdimageline_aa.c_38_diff.png \
- gdimageline_aa.c_38_out.png \
- gdimagestringft_bbox.png \
- gif_im2im_dst.gif \
- gif_im2im_src.gif \
- jpeg_im2im_dst.jpeg \
- jpeg_im2im_src.jpeg \
- jpeg_read.c_25_diff.png \
- jpeg_read.c_25_out.png \
- png_im2im_dst.png \
- png_im2im_src.png \
- tiff_im2im_dst.tiff \
- tiff_im2im_src.tiff \
- wbmp/wbmp_im2im_dst.wbmp \
- wbmp/wbmp_im2im_src.wbmp \
- wbmp_im2im_dst.wbmp \
- wbmp_im2im_src.wbmp
+check_LIBRARIES = libgdtest.a
+
+libgdtest_a_SOURCES = \
+ gdtest/gdtest.c \
+ gdtest/gdtest.h \
+ gdhelpers.c
+
+# Setup vars that subdirs will increment.
+libgd_test_programs =
+libgd_helper_programs =
+CLEANFILES =
+EXTRA_DIST =
+TESTS =
+
+include bmp/Makemodule.am
+include freetype/Makemodule.am
+include gd/Makemodule.am
+include gd2/Makemodule.am
+include gdimagearc/Makemodule.am
+include gdimagecolorclosest/Makemodule.am
+include gdimagecolordeallocate/Makemodule.am
+include gdimagecolorexact/Makemodule.am
+include gdimagecolorreplace/Makemodule.am
+include gdimagecolorresolve/Makemodule.am
+include gdimagecolortransparent/Makemodule.am
+include gdimagecopy/Makemodule.am
+include gdimagecopyresampled/Makemodule.am
+include gdimagecopyrotated/Makemodule.am
+include gdimagecrop/Makemodule.am
+include gdimagefile/Makemodule.am
+include gdimagefill/Makemodule.am
+include gdimagefilledarc/Makemodule.am
+include gdimagefilledellipse/Makemodule.am
+include gdimagefilledpolygon/Makemodule.am
+include gdimagefilledrectangle/Makemodule.am
+include gdimagefilltoborder/Makemodule.am
+include gdimagefilter/Makemodule.am
+include gdimageline/Makemodule.am
+include gdimageopenpolygon/Makemodule.am
+include gdimagepixelate/Makemodule.am
+include gdimagepolygon/Makemodule.am
+include gdimagerectangle/Makemodule.am
+include gdimagerotate/Makemodule.am
+include gdimagescale/Makemodule.am
+include gdimagescatterex/Makemodule.am
+include gdimagesetpixel/Makemodule.am
+include gdimagestringft/Makemodule.am
+include gdimagestringftex/Makemodule.am
+include gdimagetruecolortopalette/Makemodule.am
+include gdinterpolatedscale/Makemodule.am
+include gdnewfilectx/Makemodule.am
+include gdtest/Makemodule.am
+include gdtiled/Makemodule.am
+include gdtransformaffineboundingbox/Makemodule.am
+include gif/Makemodule.am
+include jpeg/Makemodule.am
+include png/Makemodule.am
+include tga/Makemodule.am
+include tiff/Makemodule.am
+include wbmp/Makemodule.am
+include webp/Makemodule.am
+include xbm/Makemodule.am
+include xpm/Makemodule.am
+
+LDADD = libgdtest.a ../src/libgd.la
+AM_CPPFLAGS = -I$(top_srcdir)/src -I $(top_srcdir)/tests/gdtest
+
+check_PROGRAMS = $(libgd_test_programs) $(libgd_helper_programs)
+TESTS += $(libgd_test_programs)
+
+EXTRA_DIST += \
+ CMakeLists.txt
+
+# We don't keep any media files in the top dir ... just generated outputs.
+CLEANFILES += \
+ *.bmp \
+ *.gd \
+ *.gd2 \
+ *.gif \
+ *.jpeg \
+ *.jpg \
+ *.png \
+ *.tga \
+ *.tiff \
+ *.ttf \
+ *.wbmp \
+ *.webp \
+ *.xbm \
+ *.xpm
diff --git a/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt
index 751c303a756..9c7800e9a67 100644
--- a/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt
@@ -1,11 +1,6 @@
-
SET(TESTS_FILES
bmp_im2im
bmp_null
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest ${GD_LIB})
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am
new file mode 100644
index 00000000000..73be361bede
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am
@@ -0,0 +1,10 @@
+libgd_test_programs += \
+ bmp/bmp_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ bmp/bmp_im2im
+endif
+
+EXTRA_DIST += \
+ bmp/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/bmp/bmp_im2im.c b/Build/source/libs/gd/libgd-src/tests/bmp/bmp_im2im.c
index 2beb2db4206..692588c3ee4 100644
--- a/Build/source/libs/gd/libgd-src/tests/bmp/bmp_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/bmp/bmp_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -23,39 +23,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_BMP(name) do { \
- FILE *fp; \
- \
- fp = fopen("bmp_im2im_" #name ".bmp", "wb"); \
- if (fp) { \
- gdImageBmp(name, fp, 1); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageBmp(name, fp, 1); \
+ fclose(fp); \
} while (0)
OUTPUT_BMP(src);
p = gdImageBmpPtr(src, &size, 1);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromBmpPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_BMP(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt
index 201d19a5575..83bb18d754d 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt
@@ -1,9 +1,7 @@
+IF(FREETYPE_FOUND)
SET(TESTS_FILES
# bug00132
)
+ENDIF(FREETYPE_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am
new file mode 100644
index 00000000000..d2524931193
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am
@@ -0,0 +1,9 @@
+if HAVE_LIBFREETYPE
+libgd_test_programs += \
+ freetype/bug00132
+endif
+
+EXTRA_DIST += \
+ freetype/CMakeLists.txt \
+ freetype/bug00132_exp.png \
+ freetype/DejaVuSans.ttf
diff --git a/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c b/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c
index 88cdfc695a3..2c3d6bc8103 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c
@@ -1,5 +1,3 @@
-/* $Id$ */
-
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -10,31 +8,29 @@ int main()
{
gdImagePtr im;
int error = 0;
- char path[2048];
- const char *file_exp = "bug00132_exp.png";
+ char *path;
char *ret = NULL;
im = gdImageCreateTrueColor(50, 30);
if (!im) {
- printf("can't get truecolor image\n");
+ gdTestErrorMsg("can't get truecolor image\n");
return 1;
}
gdImageAlphaBlending(im, 0);
gdImageFilledRectangle(im, 0, 0, 200, 200, gdTrueColorAlpha(0, 0, 0, 127));
- sprintf(path, "%s/freetype/DejaVuSans.ttf", GDTEST_TOP_DIR);
-
+ path = gdTestFilePath("freetype/DejaVuSans.ttf");
ret = gdImageStringFT(im, NULL, - 0xFFFFFF, path, 14.0, 0.0, 10, 20, "&thetasym; &theta;");
+ free(path);
if (ret) {
error = 1;
- printf("%s\n", ret);
+ gdTestErrorMsg("%s\n", ret);
} else {
- sprintf(path, "%s/freetype/%s", GDTEST_TOP_DIR, file_exp);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("freetype/bug00132_exp.png", im)) {
error = 1;
- printf("Reference image and destination differ\n");
+ gdTestErrorMsg("Reference image and destination differ\n");
}
}
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/freetype/bug00132_exp.png b/Build/source/libs/gd/libgd-src/tests/freetype/bug00132_exp.png
index c45495e618f..b2c32e02875 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/bug00132_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/bug00132_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt
index c5327171ba0..1fc57932e6c 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt
@@ -1,4 +1,3 @@
-
SET(TESTS_FILES
gd_im2im
gd_null
@@ -6,8 +5,4 @@ SET(TESTS_FILES
gd_versiontest
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gd/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gd/Makemodule.am
new file mode 100644
index 00000000000..e4a741fb9dd
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd/Makemodule.am
@@ -0,0 +1,13 @@
+libgd_test_programs += \
+ gd/gd_null \
+ gd/gd_num_colors \
+ gd/gd_versiontest
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gd/gd_im2im
+endif
+
+EXTRA_DIST += \
+ gd/crafted_num_colors.gd \
+ gd/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gd/gd_im2im.c b/Build/source/libs/gd/libgd-src/tests/gd/gd_im2im.c
index a7a2226e719..385e5030cf2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd/gd_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/gd/gd_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -23,39 +23,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_GD(x) do { \
- FILE *fp; \
- \
- fp = fopen("gd_im2im_" #x ".gd", "wb"); \
- if (fp) { \
- gdImageGd(x, fp); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageGd(x, fp); \
+ fclose(fp); \
} while (0)
OUTPUT_GD(src);
p = gdImageGdPtr(src, &size);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromGdPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_GD(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/gd/gd_num_colors.c b/Build/source/libs/gd/libgd-src/tests/gd/gd_num_colors.c
index 7d919361925..db4b4846568 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd/gd_num_colors.c
+++ b/Build/source/libs/gd/libgd-src/tests/gd/gd_num_colors.c
@@ -5,15 +5,7 @@
int main()
{
gdImagePtr im;
- char path[1024];
- FILE* fp;
-
- sprintf(path, "%s/gd/crafted_num_colors.gd", GDTEST_TOP_DIR);
-
- fp = fopen(path, "rb");
- if (!fp) {
- return 1;
- }
+ FILE *fp = gdTestFileOpen("gd/crafted_num_colors.gd");
im = gdImageCreateFromGd(fp);
fclose(fp);
if (im) {
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt
index 68a064c0fbd..8aecacc7fd5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt
@@ -1,13 +1,8 @@
-
SET(TESTS_FILES
- gd2_read
gd2_empty_file
gd2_im2im
gd2_null
+ php_bug_72339
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am
new file mode 100644
index 00000000000..4c0199039eb
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am
@@ -0,0 +1,25 @@
+libgd_test_programs += \
+ gd2/gd2_empty_file \
+ gd2/php_bug_72339 \
+ gd2/gd2_read_corrupt
+
+if HAVE_LIBZ
+libgd_test_programs += \
+ gd2/gd2_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gd2/gd2_im2im \
+ gd2/gd2_read
+endif
+endif
+
+EXTRA_DIST += \
+ gd2/CMakeLists.txt \
+ gd2/conv_gd2_exp.gd2 \
+ gd2/conv_test.gd2 \
+ gd2/conv_test_exp.png \
+ gd2/empty.gd2 \
+ gd2/invalid_header.gd2 \
+ gd2/invalid_neg_size.gd2 \
+ gd2/php_bug_72339_exp.gd2
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_empty_file.c b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_empty_file.c
index 289debc541e..9b1c5b2e1b5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_empty_file.c
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_empty_file.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -7,17 +6,7 @@
int main()
{
gdImagePtr im;
- FILE *fp;
- char path[1024];
-
- sprintf(path, "%s/gd2/empty.gd2", GDTEST_TOP_DIR);
-
- fp = fopen(path, "rb");
- if (!fp) {
- printf("failed, cannot open file (%s)\n", path);
- return 1;
- }
-
+ FILE *fp = gdTestFileOpen("gd2/empty.gd2");
im = gdImageCreateFromGd2(fp);
fclose(fp);
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_im2im.c b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_im2im.c
index 7745fa5973e..02a44206554 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -23,39 +23,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_GD2(x) do { \
- FILE *fp; \
- \
- fp = fopen("gd2_im2im_" #x ".gd2", "wb"); \
- if (fp) { \
- gdImageGd2(x, fp, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageGd2(x, fp, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED); \
+ fclose(fp); \
} while (0)
OUTPUT_GD2(src);
p = gdImageGd2Ptr(src, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED, &size);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromGd2Ptr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_GD2(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c
index 2e78e9a6d23..94fe069f6c6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c
@@ -1,38 +1,62 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
#include "gdtest.h"
-int main()
+int main(int argc, char *argv[])
{
- int error;
- gdImagePtr im;
+ int error, i = 0;
+ gdImagePtr im, exp;
FILE *fp;
- char path[1024];
-
- sprintf(path, "%s/gd2/conv_test.gd2", GDTEST_TOP_DIR);
-
- fp = fopen(path, "rb");
- if (!fp) {
- printf("failed, cannot open file\n");
- return 1;
- }
-
- im = gdImageCreateFromGd2(fp);
- fclose(fp);
+ char *path[] = {
+ "conv_test.gd2",
+ "invalid_neg_size.gd2",
+ "invalid_header.gd2",
+ NULL
+ };
+ char *path_exp[] = {
+ "conv_test_exp.png",
+ NULL,
+ NULL,
+ NULL
+ };
+ while (path[i] != NULL) {
+ fp = gdTestFileOpen2("gd2", path[i]);
+ if (!fp) {
+ gdTestErrorMsg("failed, cannot open file: %s\n", path[0]);
+ return 1;
+ }
+ im = gdImageCreateFromGd2(fp);
+ fclose(fp);
- sprintf(path, "%s/gd2/conv_test_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
- error = 1;
- gdImageDestroy(im);
- } else {
- if (im) {
- gdImageDestroy(im);
- error = 0;
+ if (path_exp[i] != NULL) {
+ fp = gdTestFileOpen2("gd2", path_exp[i]);
+ if (!fp) {
+ gdTestErrorMsg("failed, cannot open file: %s\n", path_exp[i]);
+ return 1;
+ }
+ exp = gdImageCreateFromPng(fp);
+ if (!gdAssertImageEquals(exp, im)) {
+ gdTestErrorMsg("image %s differs from expected result\n", path[i]);
+ gdImageDestroy(im);
+ error = 1;
+ } else {
+ error = 0;
+ }
+ if (exp) {
+ gdImageDestroy(exp);
+ }
} else {
- error = 1;
+ /* expected to fail */
+ if (im) {
+ gdTestErrorMsg("image %s should have failed to be loaded\n", path[i]);
+ gdImageDestroy(im);
+ error = 1;
+ } else {
+ error = 0;
+ }
}
+ i++;
}
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read_corrupt.c b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read_corrupt.c
new file mode 100644
index 00000000000..7afc30393f2
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/gd2_read_corrupt.c
@@ -0,0 +1,28 @@
+/* Just try to read the invalid gd2 image & not crash. */
+#include "gd.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "gdtest.h"
+
+int main(int argc, char *argv[])
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ fp = gdTestFileOpen2("gd2", "invalid_header.gd2");
+
+ if (!fp) {
+ gdTestErrorMsg("failed, cannot open file: %s\n", "invalid_header.gd2");
+ return 1;
+ }
+ im = gdImageCreateFromGd2(fp);
+ fclose(fp);
+
+ if (im != NULL) {
+ gdTestErrorMsg("image should have failed to be loaded\n");
+ gdImageDestroy(im);
+ return 1;
+ } else {
+ return 0;
+ }
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/invalid_header.gd2 b/Build/source/libs/gd/libgd-src/tests/gd2/invalid_header.gd2
new file mode 100644
index 00000000000..45323da7f82
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/invalid_header.gd2
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/invalid_neg_size.gd2 b/Build/source/libs/gd/libgd-src/tests/gd2/invalid_neg_size.gd2
new file mode 100644
index 00000000000..3075f15a81a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/invalid_neg_size.gd2
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339.c b/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339.c
new file mode 100644
index 00000000000..e15383e8c75
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gd.h"
+
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ fp = gdTestFileOpen2("gd2", "php_bug_72339_exp.gd2");
+ im = gdImageCreateFromGd2(fp);
+ if (im == NULL) {
+ return 0;
+ } else {
+ gdTestErrorMsg("Image should have failed to be loaded");
+ return 1;
+ }
+
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339_exp.gd2 b/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339_exp.gd2
new file mode 100644
index 00000000000..39ed2270390
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/php_bug_72339_exp.gd2
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdhelpers.c b/Build/source/libs/gd/libgd-src/tests/gdhelpers.c
new file mode 100644
index 00000000000..9b06b681f10
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdhelpers.c
@@ -0,0 +1,6 @@
+/*
+ * Dummy file to workaround an automake limitation: if we try to list the
+ * file directly, automake will clean up its internal state in both the src/
+ * and tests/ subdirs, but only one will succeed.
+ */
+#include "../src/gdhelpers.c"
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt
index 4725daea2cc..dcfdc54ca5e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
bug00079
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagearc/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagearc/Makemodule.am
new file mode 100644
index 00000000000..7a109950a77
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagearc/Makemodule.am
@@ -0,0 +1,8 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagearc/bug00079
+endif
+
+EXTRA_DIST += \
+ gdimagearc/CMakeLists.txt \
+ gdimagearc/bug00079_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagearc/bug00079.c b/Build/source/libs/gd/libgd-src/tests/gdimagearc/bug00079.c
index b2843a74873..b442d1121e6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagearc/bug00079.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagearc/bug00079.c
@@ -5,8 +5,6 @@ int main()
{
gdImagePtr im;
int error = 0;
- char path[1024];
-
im = gdImageCreateTrueColor(300, 300);
gdImageFilledRectangle(im, 0,0, 299,299, 0xFFFFFF);
@@ -14,9 +12,7 @@ int main()
gdImageSetAntiAliased(im, 0x000000);
gdImageArc(im, 300, 300, 600,600, 0, 360, gdAntiAliased);
- sprintf(path, "%s/gdimagearc/bug00079_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
- printf("%s failed\n", path);
+ if (!gdAssertImageEqualsToFile("gdimagearc/bug00079_exp.png", im)) {
error = 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt
index 30a47c0b800..4f846c0b228 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolorclosest
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/Makemodule.am
new file mode 100644
index 00000000000..f4da8beca66
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecolorclosest/gdimagecolorclosest
+endif
+
+EXTRA_DIST += \
+ gdimagecolorclosest/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt
index 7958cd6cce4..383a30277b7 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolordeallocate
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/Makemodule.am
new file mode 100644
index 00000000000..2114c98b1b2
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdimagecolordeallocate/gdimagecolordeallocate
+
+EXTRA_DIST += \
+ gdimagecolordeallocate/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt
index f62bc26bbe3..b627fa5682a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolorexact
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/Makemodule.am
new file mode 100644
index 00000000000..835b25ed62c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecolorexact/gdimagecolorexact
+endif
+
+EXTRA_DIST += \
+ gdimagecolorexact/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt
index 915d9d49873..4f7af18ecea 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolorreplace
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/Makemodule.am
new file mode 100644
index 00000000000..a8badb05c99
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecolorreplace/gdimagecolorreplace
+endif
+
+EXTRA_DIST += \
+ gdimagecolorreplace/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/gdimagecolorreplace.c b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/gdimagecolorreplace.c
index 9694bd4ae5a..dd3c17ee49d 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/gdimagecolorreplace.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/gdimagecolorreplace.c
@@ -46,16 +46,18 @@ static void run_tests(gdImagePtr im, int *error)
#define CHECK_VALUE(n, expected) do { \
if (gdTestAssert((n) == (expected)) != 1) { \
- printf("%d is expected, but %d\n", expected, n); \
+ gdTestErrorMsg("%d is expected, but %d\n", expected, n);\
*error = -1; \
} \
} while (0)
-#define CHECK_PIXEL(x, y, expected) do { \
+#define CHECK_PIXEL(x, y, expected) \
+ do { \
+ int pix; \
gdImageSetClip(im, 0, 0, 4, 4); \
- c = gdImageGetPixel(im, (x), (y)); \
- if (gdTestAssert(c == (expected)) != 1) { \
- printf("%d is expected, but %d\n", expected, c); \
+ pix = gdImageGetPixel(im, (x), (y)); \
+ if (gdTestAssert(pix == (expected)) != 1) { \
+ gdTestErrorMsg("%d is expected, but %d\n", expected, pix); \
*error = -1; \
} \
} while (0)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt
index 4b918251655..a3e7bc21658 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolorresolve
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/Makemodule.am
new file mode 100644
index 00000000000..316484c2068
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecolorresolve/gdimagecolorresolve
+endif
+
+EXTRA_DIST += \
+ gdimagecolorresolve/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt
index 5f580f7f174..ce838725a61 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagecolortransparent
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/Makemodule.am
new file mode 100644
index 00000000000..ffefc96096c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdimagecolortransparent/gdimagecolortransparent
+
+EXTRA_DIST += \
+ gdimagecolortransparent/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt
index 0b0ccdd77b5..024ad5a744a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt
@@ -3,8 +3,4 @@ SET(TESTS_FILES
bug00081
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/Makemodule.am
new file mode 100644
index 00000000000..c4b28da47a7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/Makemodule.am
@@ -0,0 +1,11 @@
+libgd_test_programs += \
+ gdimagecopy/bug00007
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecopy/bug00081
+endif
+
+EXTRA_DIST += \
+ gdimagecopy/CMakeLists.txt \
+ gdimagecopy/bug00081_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/bug00081.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/bug00081.c
index 0e28f4ca409..747e5a260c2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/bug00081.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/bug00081.c
@@ -1,5 +1,3 @@
-/* $Id$ */
-
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -9,12 +7,10 @@ int main()
{
gdImagePtr im, im2;
int error = 0;
- char path[2048];
- const char *file_exp = "bug00081_exp.png";
im = gdImageCreateTrueColor(5, 5);
if (!im) {
- printf("can't create the src truecolor image\n");
+ gdTestErrorMsg("can't create the src truecolor image\n");
return 1;
}
@@ -24,17 +20,16 @@ int main()
im2 = gdImageCreateTrueColor(20, 20);
if (!im2) {
- printf("can't create the dst truecolor image\n");
+ gdTestErrorMsg("can't create the dst truecolor image\n");
gdImageDestroy(im);
return 1;
}
gdImageCopy(im2, im, 2, 2 , 0, 0, gdImageSX(im), gdImageSY(im));
- sprintf(path, "%s/gdimagecopy/%s", GDTEST_TOP_DIR, file_exp);
- if (!gdAssertImageEqualsToFile(path, im2)) {
+ if (!gdAssertImageEqualsToFile("gdimagecopy/bug00081_exp.png", im2)) {
error = 1;
- printf("Reference image and destination differ\n");
+ gdTestErrorMsg("Reference image and destination differ\n");
}
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt
new file mode 100644
index 00000000000..636c81184ba
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt
@@ -0,0 +1,8 @@
+LIST(APPEND TESTS_FILES
+ basic
+ basic_alpha
+ exact_alpha
+ bug00201
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/Makemodule.am
new file mode 100644
index 00000000000..5d0d714e8bb
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/Makemodule.am
@@ -0,0 +1,14 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecopyresampled/basic \
+ gdimagecopyresampled/basic_alpha \
+ gdimagecopyresampled/exact_alpha \
+ gdimagecopyresampled/bug00201
+endif
+
+EXTRA_DIST += \
+ gdimagecopyresampled/CMakeLists.txt \
+ gdimagecopyresampled/basic_exp.png \
+ gdimagecopyresampled/basic_alpha_exp.png \
+ gdimagecopyresampled/bug00201_src.png \
+ gdimagecopyresampled/bug00201_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic.c
new file mode 100644
index 00000000000..2847947e55b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic.c
@@ -0,0 +1,37 @@
+/* Testing basic gdImageCopyResampled() functionality */
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, copy;
+ int white, yellow, magenta, cyan;
+
+ im = gdImageCreateTrueColor(400, 300);
+
+ /* allocate some colors */
+ white = gdImageColorAllocate(im, 255, 255, 255);
+ yellow = gdImageColorAllocate(im, 128, 0, 128);
+ magenta = gdImageColorAllocate(im, 128, 128, 0);
+ cyan = gdImageColorAllocate(im, 0, 128, 128);
+
+ /* draw background */
+ gdImageFilledRectangle(im, 0,0, 399,299, white);
+
+ /* draw some basic shapes */
+ gdImageFilledEllipse(im, 100,100, 150,100, yellow);
+ gdImageSetThickness(im, 5);
+ gdImageLine(im, 50,250, 350,50, magenta);
+ gdImageRectangle(im, 200,100, 350,250, cyan);
+
+ /* create a diminished, resampled copy of the original image */
+ copy = gdImageCreateTrueColor(200, 200);
+ gdImageCopyResampled(copy, im, 0,0, 0,0, 200,200, 400,300);
+ gdImageDestroy(im);
+
+ gdAssertImageEqualsToFile("gdimagecopyresampled/basic_exp.png", copy);
+
+ gdImageDestroy(copy);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha.c
new file mode 100644
index 00000000000..4daee685b6a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha.c
@@ -0,0 +1,40 @@
+/* Testing basic gdImageCopyResampled() functionality with alpha channel */
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, copy;
+ int white, yellow, magenta, cyan;
+
+ im = gdImageCreateTrueColor(400, 300);
+ gdImageAlphaBlending(im, 0);
+
+ /* allocate some alpha colors */
+ white = gdImageColorAllocateAlpha(im, 255, 255, 255, 31);
+ yellow = gdImageColorAllocateAlpha(im, 128, 0, 128, 63);
+ magenta = gdImageColorAllocateAlpha(im, 128, 128, 0, 95);
+ cyan = gdImageColorAllocateAlpha(im, 0, 128, 128, 127);
+
+ /* draw background */
+ gdImageFilledRectangle(im, 0,0, 399,299, white);
+
+ /* draw some basic shapes */
+ gdImageFilledEllipse(im, 100,100, 150,100, yellow);
+ gdImageSetThickness(im, 5);
+ gdImageLine(im, 50,250, 350,50, magenta);
+ gdImageRectangle(im, 200,100, 350,250, cyan);
+
+ /* create a diminished, resampled copy of the original image */
+ copy = gdImageCreateTrueColor(200, 200);
+ gdImageAlphaBlending(copy, 0);
+ gdImageSaveAlpha(copy, 1);
+ gdImageCopyResampled(copy, im, 0,0, 0,0, 200,200, 400,300);
+ gdImageDestroy(im);
+
+ gdAssertImageEqualsToFile("gdimagecopyresampled/basic_alpha_exp.png", copy);
+
+ gdImageDestroy(copy);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha_exp.png
new file mode 100644
index 00000000000..29dfc2713bf
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_alpha_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_exp.png
new file mode 100644
index 00000000000..dccc2f981a2
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/basic_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201.c
new file mode 100644
index 00000000000..053b6db3b72
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201.c
@@ -0,0 +1,71 @@
+#include "gd.h"
+#include "gdtest.h"
+
+
+#define SRC_WIDTH 80
+#define SRC_HEIGHT 42
+#define DEST_WIDTH 200
+#define DEST_HEIGHT 200
+
+
+/* Create an image and fill it with true transparency */
+gdImagePtr blank_image(int width, int height)
+{
+ gdImagePtr img;
+ int c;
+
+ img = gdImageCreateTrueColor(width, height);
+ gdImageAlphaBlending(img, 0);
+ c = gdImageColorAllocateAlpha(img, 255, 0, 255, 127);
+ gdImageFilledRectangle(img, 0, 0, width-1, height-1, c);
+ return img;
+}
+
+
+/* Merge layers on top of each other */
+gdImagePtr flatten(gdImagePtr *layers, int layer_count, int width, int height)
+{
+ gdImagePtr img;
+ int i;
+
+ img = blank_image(width,height);
+ gdImageAlphaBlending(img, 1);
+ for (i = 0; i < layer_count; i++) {
+ gdImageCopy(img, layers[i], 0,0, 0,0, width,height);
+ }
+ gdImageSaveAlpha(img, 1);
+ return img;
+}
+
+
+int main()
+{
+ gdImagePtr layers[2], background, logo_source, logo, scaled_logo, img;
+ FILE *fp;
+
+ background = blank_image(DEST_WIDTH,DEST_HEIGHT);
+
+ fp = gdTestFileOpen2("gdimagecopyresampled", "bug00201_src.png");
+ logo_source = gdImageCreateFromPng(fp);
+ fclose(fp);
+
+ logo = blank_image(SRC_WIDTH,SRC_HEIGHT);
+ gdImageAlphaBlending(logo, 0);
+ gdImageCopy(logo, logo_source, 0,0, 0,0, SRC_WIDTH,SRC_HEIGHT);
+ gdImageDestroy(logo_source);
+
+ scaled_logo = blank_image(DEST_WIDTH,DEST_HEIGHT);
+ gdImageAlphaBlending(scaled_logo, 0);
+ gdImageCopyResampled(scaled_logo, logo, 0,0, 0,0, 200,105, SRC_WIDTH,SRC_HEIGHT);
+ gdImageDestroy(logo);
+
+ layers[0] = background;
+ layers[1] = scaled_logo;
+ img = flatten(layers, 2, DEST_WIDTH, DEST_HEIGHT);
+ gdImageDestroy(background);
+ gdImageDestroy(scaled_logo);
+
+ gdAssertImageEqualsToFile("gdimagecopyresampled/bug00201_exp.png", img);
+ gdImageDestroy(img);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_exp.png
new file mode 100644
index 00000000000..9ffe1551743
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_src.png b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_src.png
new file mode 100644
index 00000000000..86c0eaced32
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/bug00201_src.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/exact_alpha.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/exact_alpha.c
new file mode 100644
index 00000000000..581ad017534
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/exact_alpha.c
@@ -0,0 +1,67 @@
+/* Test for exact colors of gdImageCopyResampled */
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+#define EXP_RED 66
+#define EXP_GREEN 66
+#define EXP_BLUE 133
+#define EXP_ALPHA 32
+
+
+int main()
+{
+ gdImagePtr im, copy;
+ int solid, transparent, color;
+ int red, green, blue, alpha;
+ int i, j;
+
+ /* create the source image */
+ im = gdImageCreateTrueColor(10, 10);
+ gdImageAlphaBlending(im, 0);
+ solid = gdImageColorAllocate(im, 0, 100, 150);
+ transparent = gdImageColorAllocateAlpha(im, 200, 0, 100, 64);
+
+ /* draw a checker pattern */
+ for (i = 0; i < gdImageSX(im); i++) {
+ for (j = 0; j < gdImageSY(im); j++) {
+ gdImageSetPixel(im, i, j, (i%2 != j%2 ? solid : transparent));
+ }
+ }
+
+ /* create the destination image */
+ copy = gdImageCreateTrueColor(5, 5);
+ gdImageAlphaBlending(copy, 0);
+ gdImageSaveAlpha(copy, 1);
+ gdImageCopyResampled(copy, im, 0,0, 0,0, 5,5, 10, 10);
+
+ /* assert all pixels have the same color */
+ color = gdImageTrueColorPixel(copy, 3, 3);
+ for (i = 0; i < gdImageSX(copy); i++) {
+ for (j = 0; j < gdImageSY(copy); j++) {
+ gdTestAssert(gdImageTrueColorPixel(copy, i, j) == color);
+ }
+ }
+
+ /* assign actual component values */
+ red = gdTrueColorGetRed(color);
+ green = gdTrueColorGetGreen(color);
+ blue = gdTrueColorGetBlue(color);
+ alpha = gdTrueColorGetAlpha(color);
+
+ /* test for expected component values */
+ gdTestAssertMsg(red >= EXP_RED - 1 && red <= EXP_RED + 1,
+ "red: expected roughly %d, got %d\n", EXP_RED, red);
+ gdTestAssertMsg(green >= EXP_GREEN - 1 && green <= EXP_GREEN + 1,
+ "green: expected roughly %d, got %d\n", EXP_GREEN, green);
+ gdTestAssertMsg(blue >= EXP_BLUE - 1 && blue <= EXP_BLUE + 1,
+ "blue: expected roughly %d, got %d\n", EXP_BLUE, blue);
+ gdTestAssertMsg(alpha >= EXP_ALPHA - 1 && alpha <= EXP_ALPHA + 1,
+ "alpha: expected roughly %d, got %d\n", EXP_ALPHA, alpha);
+
+ gdImageDestroy(copy);
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt
index 7f75aa7c572..e2d8249f91d 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt
@@ -1,10 +1,5 @@
-
SET(TESTS_FILES
bug00020
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/Makemodule.am
new file mode 100644
index 00000000000..5ed232c5237
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/Makemodule.am
@@ -0,0 +1,8 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagecopyrotated/bug00020
+endif
+
+EXTRA_DIST += \
+ gdimagecopyrotated/CMakeLists.txt \
+ gdimagecopyrotated/bug00020_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/bug00020.c b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/bug00020.c
index f1c2467fc47..fe8dfdf451d 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/bug00020.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/bug00020.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include "gdtest.h"
@@ -8,9 +7,7 @@ int main()
{
gdImagePtr im, im2;
int error = 0;
- char path[1024];
-
- sprintf(path, "%s/gdimagecopyrotated/bug00020_exp.png", GDTEST_TOP_DIR);
+ char *path;
im = gdImageCreateTrueColor(width, width);
gdImageFilledRectangle(im, 0,0, width, width, 0xFF0000);
@@ -21,12 +18,13 @@ int main()
im2 = gdImageCreateTrueColor(width, width);
gdImageCopyRotated(im2, im, width / 2, width / 2, 0,0, width, width, 60);
-
+ path = gdTestFilePath2("gdimagecopyrotated", "bug00020_exp.png");
if (!gdAssertImageEqualsToFile(path, im2)) {
error = 1;
}
gdImageDestroy(im2);
gdImageDestroy(im);
+ free(path);
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecrop/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/CMakeLists.txt
new file mode 100644
index 00000000000..f7e4c7ef475
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/CMakeLists.txt
@@ -0,0 +1,5 @@
+SET(TESTS_FILES
+ php_bug_72494
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecrop/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/Makemodule.am
new file mode 100644
index 00000000000..210888b5a70
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdimagecrop/php_bug_72494
+
+EXTRA_DIST += \
+ gdimagecrop/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecrop/php_bug_72494.c b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/php_bug_72494.c
new file mode 100644
index 00000000000..3bd19be788b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecrop/php_bug_72494.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gd.h"
+
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+
+ im = gdImageCreate(50, 50);
+
+ if (!im) {
+ gdTestErrorMsg("gdImageCreate failed.\n");
+ return 1;
+ }
+
+ gdImageCropThreshold(im, 1337, 0);
+ gdImageDestroy(im);
+ /* this bug tests a crash, it never reaches this point if the bug exists*/
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt
new file mode 100644
index 00000000000..4fee5c33f6b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt
@@ -0,0 +1,5 @@
+SET(TESTS_FILES
+ gdnametest
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am
new file mode 100644
index 00000000000..b537cbc0a3f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am
@@ -0,0 +1,8 @@
+libgd_test_programs += \
+ gdimagefile/gdnametest
+
+EXTRA_DIST += \
+ gdimagefile/CMakeLists.txt \
+ gdimagefile/img-ref.tga \
+ gdimagefile/img-ref.xbm \
+ gdimagefile/img-ref.xpm
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c b/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c
index dd8f0196a59..40dbc30b9e3 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c
@@ -1,9 +1,10 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "gd.h"
#include "gdtest.h"
-#include "../test_config.h"
+#include "test_config.h"
#define WIDTH 60
#define HEIGHT 50
@@ -83,7 +84,7 @@ do_test() {
for (n = 0; names[n].nm; n++) {
gdImagePtr orig, copy;
int status;
- char full_filename[255];
+ char *full_filename = NULL;
/* Some image readers are buggy and crash the program so we
* skip them. Bug fixers should remove these from the list of
@@ -103,33 +104,23 @@ do_test() {
orig = mkcross();
-
- #ifdef GDTEST_TOP_DIR
-
- snprintf(full_filename, sizeof(full_filename), GDTEST_TOP_DIR"/gdimagefile/%s",
- names[n].nm);
-
- #else
- /* Prepend the test directory; this is expected to be run in
- * the parent dir. */
- snprintf(full_filename, sizeof(full_filename), "gdimagefile/%s",
- names[n].nm);
- #endif
-
-
/* Write the image unless writing is not supported. */
if (!names[n].readonly) {
+ /* Prepend the test directory; this is expected to be run in
+ * the parent dir. */
+ full_filename = gdTestTempFile(names[n].nm);
status = gdImageFile(orig, full_filename);
gdTestAssertMsg(status == GD_TRUE, "Failed to create %s\n", full_filename);
+ } else {
+ /* Prepend the test directory; this is expected to be run in
+ * the parent dir. */
+ full_filename = gdTestFilePath2("gdimagefile", names[n].nm);
}/* if */
copy = gdImageCreateFromFile(full_filename);
gdTestAssertMsg(!!copy, "Failed to load %s\n", full_filename);
if (!copy) continue;
- /* Debug printf. */
- //printf("%s -> %d\n", full_filename, gdMaxPixelDiff(orig, copy));
-
gdTestAssertMsg(gdMaxPixelDiff(orig, copy) <= names[n].maxdiff,"Pixels different on %s\n", full_filename, full_filename);
if (!names[n].readonly) {
@@ -137,6 +128,7 @@ do_test() {
gdTestAssertMsg(status == 0, "Failed to delete %s\n", full_filename);
}/* if */
+ free(full_filename);
gdImageDestroy(orig);
gdImageDestroy(copy);
}/* for */
@@ -159,7 +151,7 @@ do_errortest() {
}/* do_errortest*/
-int main(int argc, char **argv)
+int main()
{
do_test();
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt
index ef85f1cf7ef..6b09c1bf5cc 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt
@@ -1,12 +1,9 @@
-
SET(TESTS_FILES
bug00002_1
bug00002_2
bug00002_3
bug00002_4
+ bug00104_1
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefill/Makemodule.am
new file mode 100644
index 00000000000..6a12c0684ee
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/Makemodule.am
@@ -0,0 +1,16 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagefill/bug00002_1 \
+ gdimagefill/bug00002_2 \
+ gdimagefill/bug00002_3 \
+ gdimagefill/bug00002_4 \
+ gdimagefill/bug00104_1
+endif
+
+EXTRA_DIST += \
+ gdimagefill/CMakeLists.txt \
+ gdimagefill/bug00002_1_exp.png \
+ gdimagefill/bug00002_2_exp.png \
+ gdimagefill/bug00002_3_exp.png \
+ gdimagefill/bug00002_4_exp.png \
+ gdimagefill/bug00104_1_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_1.c b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_1.c
index 2a440f20ede..752178a4805 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_1.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_1.c
@@ -2,13 +2,12 @@
#include <stdio.h>
#include "gdtest.h"
-#define TMP_FN "bug00002_1.png"
-
int main()
{
gdImagePtr im;
FILE *fp;
- char path[1024];
+ char *file;
+ int error = 0;
im = gdImageCreateTrueColor(100, 100);
@@ -20,9 +19,10 @@ int main()
gdImageFill(im, 0, 0, 0xffffff);
gdImageFill(im, 0, 0, 0xffffff);
- fp = fopen(TMP_FN, "wb");
+ file = gdTestTempFile("bug00002_1.png");
+ fp = fopen(file, "wb");
if (fp == NULL) {
- gdTestErrorMsg("Cannot create image from <%s>\n", TMP_FN);
+ gdTestErrorMsg("Cannot create image from <%s>\n", file);
gdImageDestroy(im);
return 1;
}
@@ -30,19 +30,11 @@ int main()
gdImagePng(im,fp);
fclose(fp);
- sprintf(path, "%s/gdimagefill/bug00002_1_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
- gdImageDestroy(im);
- return 1;
- }
+ if (!gdAssertImageEqualsToFile("gdimagefill/bug00002_1_exp.png", im))
+ error = 1;
gdImageDestroy(im);
- if (remove(TMP_FN) == -1) {
- gdTestErrorMsg("Cannot remove temporary file: <%s>\n", TMP_FN);
- return 1;
- }
-
- return 0;
+ return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_2.c b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_2.c
index 06cf8311195..982ae8f64d4 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_2.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_2.c
@@ -7,7 +7,6 @@ int main()
gdImagePtr im, tile;
int im_black, tile_black;
int x,y, error = 0;
- char path[1024];
/* fputs("flag 0\n", stdout); */
im = gdImageCreate(150, 150);
@@ -38,13 +37,13 @@ int main()
/* fputs("flag 2\n", stdout); */
- sprintf(path, "%s/gdimagefill/bug00002_2_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimagefill/bug00002_2_exp.png", im)) {
error = 1;
}
/* Destroy it */
gdImageDestroy(im);
+ gdImageDestroy(tile);
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_3.c b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_3.c
index 454d5be3612..b11fbc91ccb 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_3.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_3.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include "gdtest.h"
@@ -8,7 +7,6 @@ int main()
gdImagePtr im, tile;
int im_black, tile_white, tile_black;
int x,y, error = 0;
- char path[1024];
/* fputs("flag 0\n", stdout); */
im = gdImageCreate(150, 150);
@@ -44,13 +42,13 @@ int main()
gdImageFill(im, 0, 0, 0xffffff);
/* fputs("flag 3\n", stdout); */
- sprintf(path, "%s/gdimagefill/bug00002_3_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimagefill/bug00002_3_exp.png", im)) {
error = 1;
}
/* Destroy it */
gdImageDestroy(im);
+ gdImageDestroy(tile);
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_4.c b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_4.c
index 4b11d84bdc9..e12cb90e094 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_4.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00002_4.c
@@ -7,7 +7,6 @@ int main()
{
gdImagePtr im;
int red, blue, white, black, error = 0;
- char path[1024];
im = gdImageCreate(50,100);
red = gdImageColorAllocate(im, 255, 0, 0);
@@ -29,8 +28,7 @@ int main()
gdImageFill(im, 100,69, red);
gdImageFill(im, 100,21, white);
- sprintf(path, "%s/gdimagefill/bug00002_4_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimagefill/bug00002_4_exp.png", im)) {
error = 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1.c b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1.c
new file mode 100644
index 00000000000..13247cab4e0
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1.c
@@ -0,0 +1,34 @@
+/* test case for outside of buffer reads/write bug in _gdImageFillTiled */
+#include "gd.h"
+#include <stdio.h>
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, tile;
+ int tile_red, tile_blue;
+ int error = 0;
+
+ im = gdImageCreate(200, 150);
+
+ tile = gdImageCreateTrueColor(2, 2);
+
+ tile_red = gdImageColorAllocate(tile, 255, 0, 0);
+ tile_blue = gdImageColorAllocate(tile, 0, 0, 255);
+
+ gdImageSetPixel(tile, 0, 0, tile_red);
+ gdImageSetPixel(tile, 1, 1, tile_red);
+ gdImageSetPixel(tile, 1, 0, tile_blue);
+ gdImageSetPixel(tile, 0, 1, tile_blue);
+
+ gdImageSetTile(im, tile);
+ gdImageFill(im, 11, 12, gdTiled);
+
+ if (!gdAssertImageEqualsToFile("gdimagefill/bug00104_1_exp.png", im)) {
+ error = 1;
+ }
+
+ gdImageDestroy(im);
+ gdImageDestroy(tile);
+ return error;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1_exp.png
new file mode 100644
index 00000000000..7b10a4f0cd0
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/bug00104_1_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt
new file mode 100644
index 00000000000..1a0a2042e2d
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt
@@ -0,0 +1,5 @@
+LIST(APPEND TESTS_FILES
+ php_bug43828
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/Makemodule.am
new file mode 100644
index 00000000000..4af6963f86c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/Makemodule.am
@@ -0,0 +1,8 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagefilledarc/php_bug43828
+endif
+
+EXTRA_DIST += \
+ gdimagefilledarc/CMakeLists.txt \
+ gdimagefilledarc/php_bug43828_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828.c
new file mode 100644
index 00000000000..eb690c8e0f8
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828.c
@@ -0,0 +1,21 @@
+/* See <https://bugs.php.net/bug.php?id=43828>. */
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ int transparent, color;
+
+ im = gdImageCreateTrueColor(100, 100);
+ transparent = gdImageColorAllocateAlpha(im, 255, 255, 255, 80);
+ gdImageFilledRectangle(im, 0,0, 99,99, transparent);
+ color = gdImageColorAllocateAlpha(im, 0, 255, 0, 100);
+ gdImageFilledArc(im, 49,49, 99,99, 0,360, color, gdPie);
+
+ gdAssertImageEqualsToFile("gdimagefilledarc/php_bug43828_exp.png", im);
+
+ gdImageDestroy(im);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828_exp.png
new file mode 100644
index 00000000000..4f8ff6855c5
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/php_bug43828_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt
index fb1ed6ca1ac..bafe7dd5ac1 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt
@@ -1,11 +1,7 @@
-
SET(TESTS_FILES
bug00010
bug00191
+ github_bug_00238
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/Makemodule.am
new file mode 100644
index 00000000000..6a5185a10c1
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/Makemodule.am
@@ -0,0 +1,12 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagefilledellipse/bug00010 \
+ gdimagefilledellipse/bug00191 \
+ gdimagefilledellipse/github_bug_00238
+endif
+
+EXTRA_DIST += \
+ gdimagefilledellipse/CMakeLists.txt \
+ gdimagefilledellipse/bug00010_exp.png \
+ gdimagefilledellipse/bug00191.png \
+ gdimagefilledellipse/github_bug_00238_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00010.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00010.c
index df0c66dbc64..65c744491ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00010.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00010.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include "gdtest.h"
@@ -6,13 +5,11 @@ int main()
{
gdImagePtr im;
int error = 0;
- char path[1024];
im = gdImageCreateTrueColor(100,100);
gdImageFilledEllipse(im, 50,50, 70, 90, 0x50FFFFFF);
- sprintf(path, "%s/gdimagefilledellipse/bug00010_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimagefilledellipse/bug00010_exp.png", im)) {
error = 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00191.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00191.c
index 7db64151726..28e3d6cc50e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00191.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/bug00191.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include "gdtest.h"
@@ -6,14 +5,12 @@ int main()
{
gdImagePtr im;
int error = 0;
- char path[1024];
im = gdImageCreate(100, 100);
(void)gdImageColorAllocate(im, 255, 255, 255);
gdImageSetThickness(im, 20);
gdImageFilledEllipse(im, 30, 50, 20, 20, gdImageColorAllocate(im, 0, 0, 0));
- sprintf(path, "%s/gdimagefilledellipse/bug00191.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimagefilledellipse/bug00191.png", im)) {
error = 1;
}
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238.c
new file mode 100644
index 00000000000..499923fedd3
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238.c
@@ -0,0 +1,33 @@
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ int error = 0;
+
+ im = gdImageCreateTrueColor(141,200);
+ if (im == NULL) {
+ gdTestErrorMsg("image creation failed.\n");
+ goto exit;
+ }
+
+ gdImageAlphaBlending(im, gdEffectNormal);
+ gdImageFilledRectangle(im, 0, 0, 140, 199, gdTrueColorAlpha(0,0,0,127));
+
+ gdImageAlphaBlending(im, gdEffectAlphaBlend);
+ gdImageFilledEllipse(im, 70, 70, 45, 60, gdTrueColorAlpha(255,0,0,40));
+ gdImageFilledEllipse(im, 90, 90, 60, 30, gdTrueColorAlpha(255,0,0,40));
+ gdImageSaveAlpha(im, 1);
+
+ if (!gdAssertImageEqualsToFile("gdimagefilledellipse/github_bug_00238_exp.png", im)) {
+ error = 1;
+ }
+
+ if (im != NULL) {
+ gdImageDestroy(im);
+ }
+
+exit:
+ return error;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238_exp.png
new file mode 100644
index 00000000000..4f78540305f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/github_bug_00238_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt
index 2ca4bf51f99..1a2d3305f5e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt
@@ -4,10 +4,7 @@ SET(TESTS_FILES
gdimagefilledpolygon2
gdimagefilledpolygon3
bug00100
+ php_bug_64641
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/Makemodule.am
new file mode 100644
index 00000000000..7a2f6812bbf
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/Makemodule.am
@@ -0,0 +1,18 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagefilledpolygon/bug00100 \
+ gdimagefilledpolygon/gdimagefilledpolygon0 \
+ gdimagefilledpolygon/gdimagefilledpolygon1 \
+ gdimagefilledpolygon/gdimagefilledpolygon2 \
+ gdimagefilledpolygon/gdimagefilledpolygon3 \
+ gdimagefilledpolygon/php_bug_64641
+endif
+
+EXTRA_DIST += \
+ gdimagefilledpolygon/CMakeLists.txt \
+ gdimagefilledpolygon/bug00100.png \
+ gdimagefilledpolygon/gdimagefilledpolygon0.png \
+ gdimagefilledpolygon/gdimagefilledpolygon1.png \
+ gdimagefilledpolygon/gdimagefilledpolygon2.png \
+ gdimagefilledpolygon/gdimagefilledpolygon3.png \
+ gdimagefilledpolygon/php_bug_64641.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/bug00100.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/bug00100.c
index ae2e084fe41..d020749e55f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/bug00100.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/bug00100.c
@@ -150,7 +150,7 @@ main(void)
pointy[4].y = bot;
gdImageFilledPolygon(im, pointy, 5, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagefilledpolygon/bug00100.png", im);
+ r = gdAssertImageEqualsToFile("gdimagefilledpolygon/bug00100.png", im);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
return EXIT_SUCCESS;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon0.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon0.c
index 5ca877c630c..b7e9299209e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon0.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon0.c
@@ -15,7 +15,7 @@ main(void)
gdImageFilledRectangle(im, 0, 0, 99, 99, white);
gdImageFilledPolygon(im, NULL, 0, black); /* no effect */
gdImageFilledPolygon(im, NULL, -1, black); /* no effect */
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagefilledpolygon/gdimagefilledpolygon0.png", im);
+ r = gdAssertImageEqualsToFile("gdimagefilledpolygon/gdimagefilledpolygon0.png", im);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
return EXIT_SUCCESS;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon1.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon1.c
index 950035e2b4b..58052a0af2a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon1.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon1.c
@@ -23,7 +23,7 @@ main(void)
points[0].x = 10;
points[0].y = 10;
gdImageFilledPolygon(im, points, 1, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagefilledpolygon/gdimagefilledpolygon1.png", im);
+ r = gdAssertImageEqualsToFile("gdimagefilledpolygon/gdimagefilledpolygon1.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon2.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon2.c
index 628665a1919..95d85566ca1 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon2.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon2.c
@@ -25,7 +25,7 @@ main(void)
points[1].x = 50;
points[1].y = 70;
gdImageFilledPolygon(im, points, 2, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagefilledpolygon/gdimagefilledpolygon2.png", im);
+ r = gdAssertImageEqualsToFile("gdimagefilledpolygon/gdimagefilledpolygon2.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon3.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon3.c
index 0db5c8519e1..0c9ed3e65a3 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon3.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/gdimagefilledpolygon3.c
@@ -27,7 +27,7 @@ main(void)
points[2].x = 90;
points[2].y = 30;
gdImageFilledPolygon(im, points, 3, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagefilledpolygon/gdimagefilledpolygon3.png", im);
+ r = gdAssertImageEqualsToFile("gdimagefilledpolygon/gdimagefilledpolygon3.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.c
new file mode 100644
index 00000000000..baf89134340
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.c
@@ -0,0 +1,47 @@
+/*
+ Test drawing of 1-dimensional filled polygons
+
+ We're drawing a vertical and a horizontal 1-dimensional filled polygon,
+ which is supposed to result in a vertical and a horizontal line.
+
+ See also <https://bugs.php.net/64641>.
+*/
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ gdPointPtr points;
+
+ im = gdImageCreateTrueColor(640, 480);
+
+ points = (gdPointPtr)calloc(3, sizeof(gdPoint));
+ gdTestAssert(points != NULL);
+
+ /* vertical line */
+ points[0].x = 100;
+ points[0].y = 100;
+ points[1].x = 100;
+ points[1].y = 200;
+ points[2].x = 100;
+ points[2].y = 300;
+ gdImageFilledPolygon(im, points, 3, 0xFFFF00);
+
+ /* horizontal line */
+ points[0].x = 300;
+ points[0].y = 200;
+ points[1].x = 400;
+ points[1].y = 200;
+ points[2].x = 500;
+ points[2].y = 200;
+ gdImageFilledPolygon(im, points, 3, 0xFFFF00);
+
+ gdAssertImageEqualsToFile("gdimagefilledpolygon/php_bug_64641.png", im);
+
+ free(points);
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.png b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.png
new file mode 100644
index 00000000000..62fb6212981
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/php_bug_64641.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt
index 73920709bb5..2b26022ca70 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt
@@ -4,8 +4,4 @@ SET(TESTS_FILES
bug00106_gdimagefilledrectangle
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/Makemodule.am
new file mode 100644
index 00000000000..2a06d59a56c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/Makemodule.am
@@ -0,0 +1,7 @@
+libgd_test_programs += \
+ gdimagefilledrectangle/bug00004 \
+ gdimagefilledrectangle/bug00078 \
+ gdimagefilledrectangle/bug00106_gdimagefilledrectangle
+
+EXTRA_DIST += \
+ gdimagefilledrectangle/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt
index e24a69a1452..f03529a6082 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt
@@ -1,9 +1,6 @@
-
SET(TESTS_FILES
bug00037
+ github_bug_215
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/Makemodule.am
new file mode 100644
index 00000000000..fc7ed3d05d6
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/Makemodule.am
@@ -0,0 +1,8 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagefilltoborder/bug00037 \
+ gdimagefilltoborder/github_bug_215
+endif
+
+EXTRA_DIST += \
+ gdimagefilltoborder/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/bug00037.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/bug00037.c
index 646adbd0f79..ab7e1b805bf 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/bug00037.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/bug00037.c
@@ -22,7 +22,7 @@ int main()
if (gdTestAssert(color==0x1000000)) {
return 0;
} else {
- printf("c: %X, expected %X\n", color, 0x1000000);
+ gdTestErrorMsg("c: %X, expected %X\n", color, 0x1000000);
return -1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/github_bug_215.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/github_bug_215.c
new file mode 100644
index 00000000000..bf0900c970c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/github_bug_215.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include "gd.h"
+#include "gdtest.h"
+
+int main() {
+ gdImagePtr im;
+ int color, border;
+ im = gdImageCreate(50, 50);
+ gdImageColorAllocate(im, 255, 0, 0);
+ color = gdImageColorAllocate(im, 255, 0, 0);
+ border = gdImageColorAllocate(im, 255, 0, 0);
+ gdImageFillToBorder(im, 0, 0, border + 10, color);
+ gdImageFillToBorder(im, 0, 0, -border, color);
+ gdImageFillToBorder(im, 0, 0, border, color + 10);
+ gdImageFillToBorder(im, 0, 0, border, -color);
+ gdImageFillToBorder(im, 0, 0, border + 10, color + 10);
+ gdImageDestroy(im);
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt
new file mode 100644
index 00000000000..a1b6642984e
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt
@@ -0,0 +1,5 @@
+SET(TESTS_FILES
+ gdCopyBlurred
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/Makemodule.am
new file mode 100644
index 00000000000..3af66b45d64
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdimagefilter/gdCopyBlurred
+
+EXTRA_DIST += \
+ gdimagefilter/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/gdCopyBlurred.c b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/gdCopyBlurred.c
index 69ca06133bc..dee2f1f8d52 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/gdCopyBlurred.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/gdCopyBlurred.c
@@ -23,7 +23,7 @@ save(gdImagePtr im, const char *filename) {
gdImagePng(im, out);
fclose(out);
#else
- im, filename;
+ (void)im, (void)filename;
#endif
}/* save*/
@@ -87,8 +87,7 @@ void blurblank(gdImagePtr im, int radius, double sigma) {
void do_test()
{
- gdImagePtr im, imref, tmp;
- gdImagePtr same, same2;
+ gdImagePtr im, imref;
im = mkwhite(WIDTH, HEIGHT);
imref = mkwhite(WIDTH, HEIGHT);
@@ -110,6 +109,9 @@ void do_test()
blurblank(im, 4, 0.0);
blurblank(im, 8, 0.0);
blurblank(im, 16, 0.0);
+
+ gdImageDestroy(im);
+ gdImageDestroy(imref);
}/* do_test*/
/* Ensure that RGB values are equal, then return r (which is therefore
@@ -185,10 +187,11 @@ void do_crosstest()
gdTestAssert(getwhite(blurred, 1, LY + 1) < getwhite(blurred, 1, LY + 3));
gdTestAssert(getwhite(blurred, 1, LY + 3) < getwhite(blurred, 1, HEIGHT-1));
gdImageDestroy(blurred);
+ gdImageDestroy(im);
}/* do_crosstest*/
-int main(int argc, char **argv)
+int main()
{
do_test();
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt
index 78f11d424fb..61982517ede 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt
@@ -6,8 +6,4 @@ SET(TESTS_FILES
bug00111
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS(m)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimageline/Makemodule.am
new file mode 100644
index 00000000000..3b541a16a9a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/Makemodule.am
@@ -0,0 +1,29 @@
+libgd_test_programs += \
+ gdimageline/gdimageline_aa_outofrange
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimageline/bug00072 \
+ gdimageline/bug00077 \
+ gdimageline/bug00111 \
+ gdimageline/gdimageline_aa \
+ gdimageline/gdimageline_bug5 \
+ gdimageline/gdImageAALine_thickness \
+ gdimageline/github_bug_167
+endif
+
+EXTRA_DIST += \
+ gdimageline/CMakeLists.txt \
+ gdimageline/bug00072_exp.png \
+ gdimageline/bug00077_exp.png \
+ gdimageline/bug00111_exp.png \
+ gdimageline/gdimageline_aa_a_1_exp.png \
+ gdimageline/gdimageline_aa_b_0_exp.png \
+ gdimageline/gdimageline_aa_c_0_exp.png \
+ gdimageline/gdimageline_aa_d_0_exp.png \
+ gdimageline/gdimageline_aa_d_1_exp.png \
+ gdimageline/gdimageline_aa_c_1_exp.png \
+ gdimageline/gdimageline_aa_a_0_exp.png \
+ gdimageline/gdimageline_aa_b_1_exp.png \
+ gdimageline/gdImageAALine_thickness_exp.png \
+ gdimageline/github_bug_167_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00072.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00072.c
index c3a3137e539..72e9fca5020 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00072.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00072.c
@@ -4,12 +4,8 @@
int main()
{
gdImagePtr im;
- const char *exp = "bug00072_exp.png";
int error = 0;
- char path[1024];
-
-
im = gdImageCreateTrueColor(11, 11);
gdImageFilledRectangle(im, 0, 0, 10, 10, 0xFFFFFF);
gdImageSetThickness(im, 3);
@@ -24,8 +20,7 @@ int main()
gdImageLine(im, 0, 5, 11, 5, 0xFF0000);
gdImageLine(im, 0, 0, 11, 11, 0xFF0000);
- sprintf(path, "%s/gdimageline/%s", GDTEST_TOP_DIR, exp);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimageline/bug00072_exp.png", im)) {
error = 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00077.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00077.c
index d69e88177f2..7c52bbe1a01 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00077.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00077.c
@@ -4,12 +4,8 @@
int main()
{
gdImagePtr im;
- const char *exp = "bug00077_exp.png";
int error = 0;
- char path[1024];
-
-
im = gdImageCreateTrueColor(11, 11);
gdImageFilledRectangle(im, 0, 0, 10, 10, 0xFFFFFF);
gdImageSetThickness(im, 1);
@@ -19,9 +15,7 @@ int main()
gdImageLine(im, 10, 5, 0, 5, 0x0);
gdImageLine(im, 10, 10, 0, 10, 0x0);
- sprintf(path, "%s/gdimageline/%s", GDTEST_TOP_DIR, exp);
-
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimageline/bug00077_exp.png", im)) {
error = 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00111.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00111.c
index 4277534874d..9b24113535a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00111.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/bug00111.c
@@ -1,5 +1,3 @@
-/* $Id$ */
-
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -9,12 +7,10 @@ int main()
{
gdImagePtr im;
int error = 0;
- char path[2048];
- const char *file_exp = "bug00111_exp.png";
im = gdImageCreateTrueColor(10, 10);
if (!im) {
- printf("can't get truecolor image\n");
+ gdTestErrorMsg("can't get truecolor image\n");
return 1;
}
@@ -23,10 +19,9 @@ int main()
gdImageLine(im, 0, 0, 0, 0, 0xFFFFFF);
- sprintf(path, "%s/gdimageline/%s", GDTEST_TOP_DIR, file_exp);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdimageline/bug00111_exp.png", im)) {
error = 1;
- printf("Reference image and destination differ\n");
+ gdTestErrorMsg("Reference image and destination differ\n");
}
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdImageAALine_thickness.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdImageAALine_thickness.c
index 954e055b6fb..1d3a564ed0b 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdImageAALine_thickness.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdImageAALine_thickness.c
@@ -2,11 +2,10 @@
#include "gd.h"
#include "gdtest.h"
-int main(int argc, char **argv)
+int main()
{
gdImagePtr im;
- char path[2048];
- const char *file_exp = "gdimageline/gdImageAALine_thickness_exp.png";
+ int error = 0;
im = gdImageCreateTrueColor(100, 100);
gdImageFilledRectangle(im, 0, 0, 99, 99,
@@ -16,15 +15,10 @@ int main(int argc, char **argv)
gdImageSetAntiAliased(im, gdImageColorExactAlpha(im, 0, 0, 0, 0));
gdImageLine(im, 0,0, 99, 99, gdAntiAliased);
- sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_exp);
-
- if (!gdAssertImageEqualsToFile(path, im)) {
- printf("comparing rotated image to %s failed.\n", path);
- gdImageDestroy(im);
- return 1;
- }
+ if (!gdAssertImageEqualsToFile("gdimageline/gdImageAALine_thickness_exp.png", im))
+ error = 1;
gdImageDestroy(im);
- return 0;
+ return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa.c
index b0bea3a4d5c..f16bfb9ccbb 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa.c
@@ -3,10 +3,6 @@
#include "gd.h"
#include "gdtest.h"
-#ifdef _MSC_VER
-# define snprintf _snprintf
-#endif
-
int gen_image(const char* filename, int idx, int reverse_x, int width, int height, int bgd)
{
double gradient = height / (width*2.0);
@@ -49,28 +45,19 @@ int gen_image(const char* filename, int idx, int reverse_x, int width, int heigh
int main()
{
int error = 0;
- char path[1024];
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_a_0_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,0,1,10,100, 1);
+ error |= gen_image("gdimageline/gdimageline_aa_a_0_exp.png", 0, 1, 10, 100, 1);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_a_1_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,1,1,10,100, 2);
+ error |= gen_image("gdimageline/gdimageline_aa_a_1_exp.png", 1, 1, 10, 100, 2);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_b_0_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,2,-1,10,100, 1);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_b_1_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,1,-1,10,100, 2);
+ error |= gen_image("gdimageline/gdimageline_aa_b_0_exp.png", 2, -1, 10, 100, 1);
+ error |= gen_image("gdimageline/gdimageline_aa_b_1_exp.png", 1, -1, 10, 100, 2);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_c_0_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,0,1,100,10, 1);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_c_1_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,1,1,100,10, 2);
+ error |= gen_image("gdimageline/gdimageline_aa_c_0_exp.png", 0, 1, 100, 10, 1);
+ error |= gen_image("gdimageline/gdimageline_aa_c_1_exp.png", 1, 1, 100, 10, 2);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_d_0_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,2,-1,100,10, 1);
- snprintf(path, sizeof(path)-1, "%s/gdimageline/gdimageline_aa_d_1_exp.png", GDTEST_TOP_DIR);
- error |= gen_image(path,1,-1,100,10, 2);
+ error |= gen_image("gdimageline/gdimageline_aa_d_0_exp.png", 2, -1, 100, 10, 1);
+ error |= gen_image("gdimageline/gdimageline_aa_d_1_exp.png", 1, -1, 100, 10, 2);
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa_outofrange.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa_outofrange.c
index 5c1ed05ab03..35f5f5f6cfe 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa_outofrange.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/gdimageline_aa_outofrange.c
@@ -15,5 +15,6 @@ int main()
gdImageLine(im, 1,1, 50, 50, gdAntiAliased);
/* Test for segfaults, if we reach this point, the test worked */
+ gdImageDestroy(im);
return 0;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167.c b/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167.c
new file mode 100644
index 00000000000..e0657a81613
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167.c
@@ -0,0 +1,75 @@
+/*
+ Testing thick styled horizontal, vertical and diagonal lines.
+
+ We're drawing four triangles with basically the same pattern style. Each
+ triangle has exactly the same shape (right isosceles, with the hypotenuse
+ being diagonal) and size. The triangles are arranged from lower left to
+ upper right with increasing line thickness.
+
+ To have the same pattern style, it has to be adapted according to the
+ thickness (i.e. the pixels have to be repeated thickness times), which
+ happens in setStyleAndThickness().
+
+ See also <https://github.com/libgd/libgd/issues/167>.
+*/
+
+#include "gd.h"
+#include "gdtest.h"
+
+static void setStyleAndThickness(gdImagePtr im, int color, int thickness)
+{
+ int style[192], i = 0;
+
+ while (i < 16 * thickness) {
+ style[i++] = color;
+ }
+ while (i < 20 * thickness) {
+ style[i++] = gdTransparent;
+ }
+ while (i < 28 * thickness) {
+ style[i++] = color;
+ }
+ while (i < 32 * thickness) {
+ style[i++] = gdTransparent;
+ }
+ gdImageSetStyle(im, style, 32 * thickness);
+ gdImageSetThickness(im, thickness);
+}
+
+int main()
+{
+ gdImagePtr im;
+ int error = 0, black;
+
+ im = gdImageCreate(800, 800);
+ gdImageColorAllocate(im, 255, 255, 255);
+ black = gdImageColorAllocate(im, 0, 0, 0);
+
+ setStyleAndThickness(im, black, 1);
+ gdImageLine(im, 50, 250, 550, 250, gdStyled);
+ gdImageLine(im, 550, 250, 550, 750, gdStyled);
+ gdImageLine(im, 550, 750, 50, 250, gdStyled);
+
+ setStyleAndThickness(im, black, 2);
+ gdImageLine(im, 100, 200, 600, 200, gdStyled);
+ gdImageLine(im, 600, 200, 600, 700, gdStyled);
+ gdImageLine(im, 600, 700, 100, 200, gdStyled);
+
+ setStyleAndThickness(im, black, 4);
+ gdImageLine(im, 150, 150, 650, 150, gdStyled);
+ gdImageLine(im, 650, 150, 650, 650, gdStyled);
+ gdImageLine(im, 650, 650, 150, 150, gdStyled);
+
+ setStyleAndThickness(im, black, 6);
+ gdImageLine(im, 200, 100, 700, 100, gdStyled);
+ gdImageLine(im, 700, 100, 700, 600, gdStyled);
+ gdImageLine(im, 700, 600, 200, 100, gdStyled);
+
+ if (!gdAssertImageEqualsToFile("gdimageline/github_bug_167_exp.png", im)) {
+ error = 1;
+ }
+
+ gdImageDestroy(im);
+
+ return error;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167_exp.png
new file mode 100644
index 00000000000..774270f63db
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/github_bug_167_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt
index 4e54fffb143..6ec1a0f15f4 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt
@@ -5,8 +5,4 @@ SET(TESTS_FILES
gdimageopenpolygon3
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/Makemodule.am
new file mode 100644
index 00000000000..1941af510e7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/Makemodule.am
@@ -0,0 +1,14 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimageopenpolygon/gdimageopenpolygon0 \
+ gdimageopenpolygon/gdimageopenpolygon1 \
+ gdimageopenpolygon/gdimageopenpolygon2 \
+ gdimageopenpolygon/gdimageopenpolygon3
+endif
+
+EXTRA_DIST += \
+ gdimageopenpolygon/CMakeLists.txt \
+ gdimageopenpolygon/gdimageopenpolygon0.png \
+ gdimageopenpolygon/gdimageopenpolygon1.png \
+ gdimageopenpolygon/gdimageopenpolygon2.png \
+ gdimageopenpolygon/gdimageopenpolygon3.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon0.c b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon0.c
index d9bf1bd962a..7243222b9b8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon0.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon0.c
@@ -15,7 +15,7 @@ main(void)
gdImageFilledRectangle(im, 0, 0, 99, 99, white);
gdImageOpenPolygon(im, NULL, 0, black); /* no effect */
gdImageOpenPolygon(im, NULL, -1, black); /* no effect */
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon0.png", im);
+ r = gdAssertImageEqualsToFile("gdimageopenpolygon/gdimageopenpolygon0.png", im);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
return EXIT_SUCCESS;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon1.c b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon1.c
index 07ee29dff49..616c34e92e9 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon1.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon1.c
@@ -23,7 +23,7 @@ main(void)
points[0].x = 10;
points[0].y = 10;
gdImageOpenPolygon(im, points, 1, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon1.png", im);
+ r = gdAssertImageEqualsToFile("gdimageopenpolygon/gdimageopenpolygon1.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon2.c b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon2.c
index ab097d83cad..07d1f01d82a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon2.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon2.c
@@ -25,7 +25,7 @@ main(void)
points[1].x = 50;
points[1].y = 70;
gdImageOpenPolygon(im, points, 2, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon2.png", im);
+ r = gdAssertImageEqualsToFile("gdimageopenpolygon/gdimageopenpolygon2.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon3.c b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon3.c
index 027bfacd20b..52166604a4f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon3.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/gdimageopenpolygon3.c
@@ -27,7 +27,7 @@ main(void)
points[2].x = 90;
points[2].y = 30;
gdImageOpenPolygon(im, points, 3, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon3.png", im);
+ r = gdAssertImageEqualsToFile("gdimageopenpolygon/gdimageopenpolygon3.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt
index 2d10b21ed94..eadd82a4670 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdimagepixelate
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/Makemodule.am
new file mode 100644
index 00000000000..d04c2992724
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdimagepixelate/gdimagepixelate
+
+EXTRA_DIST += \
+ gdimagepixelate/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/gdimagepixelate.c b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/gdimagepixelate.c
index 2a0a4692269..047ac8f446e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/gdimagepixelate.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/gdimagepixelate.c
@@ -36,15 +36,15 @@ static const int expected_average[][3] = {
int g = ((expected)[y/BLOCK_SIZE][x/BLOCK_SIZE]>> 8)&0xFF; \
int b = ((expected)[y/BLOCK_SIZE][x/BLOCK_SIZE] )&0xFF; \
if (r != gdImageRed(im, p)) { \
- printf("Red %x is expected, but %x\n", r, gdImageRed(im, p)); \
+ gdTestErrorMsg("Red %x is expected, but %x\n", r, gdImageRed(im, p)); \
return 0; \
} \
if (g != gdImageGreen(im, p)) { \
- printf("Green %x is expected, but %x\n", g, gdImageGreen(im, p)); \
+ gdTestErrorMsg("Green %x is expected, but %x\n", g, gdImageGreen(im, p)); \
return 0; \
} \
if (b != gdImageBlue(im, p)) { \
- printf("Blue %x is expected, but %x\n", b, gdImageBlue(im, p)); \
+ gdTestErrorMsg("Blue %x is expected, but %x\n", b, gdImageBlue(im, p)); \
return 0; \
} \
} \
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt
index 679e93986be..e965b73fdd2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt
@@ -5,8 +5,4 @@ SET(TESTS_FILES
gdimagepolygon3
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/Makemodule.am
new file mode 100644
index 00000000000..ed465fc8bfa
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/Makemodule.am
@@ -0,0 +1,14 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagepolygon/gdimagepolygon0 \
+ gdimagepolygon/gdimagepolygon1 \
+ gdimagepolygon/gdimagepolygon2 \
+ gdimagepolygon/gdimagepolygon3
+endif
+
+EXTRA_DIST += \
+ gdimagepolygon/CMakeLists.txt \
+ gdimagepolygon/gdimagepolygon0.png \
+ gdimagepolygon/gdimagepolygon1.png \
+ gdimagepolygon/gdimagepolygon2.png \
+ gdimagepolygon/gdimagepolygon3.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon0.c b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon0.c
index 20fa423c056..fbc893014a7 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon0.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon0.c
@@ -15,7 +15,7 @@ main(void)
gdImageFilledRectangle(im, 0, 0, 99, 99, white);
gdImagePolygon(im, NULL, 0, black); /* no effect */
gdImagePolygon(im, NULL, -1, black); /* no effect */
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagepolygon/gdimagepolygon0.png", im);
+ r = gdAssertImageEqualsToFile("gdimagepolygon/gdimagepolygon0.png", im);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
return EXIT_SUCCESS;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon1.c b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon1.c
index 6f2ad57dfcc..3b8dde540e6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon1.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon1.c
@@ -23,7 +23,7 @@ main(void)
points[0].x = 10;
points[0].y = 10;
gdImagePolygon(im, points, 1, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagepolygon/gdimagepolygon1.png", im);
+ r = gdAssertImageEqualsToFile("gdimagepolygon/gdimagepolygon1.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon2.c b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon2.c
index 8142c3ba873..90b824d97b4 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon2.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon2.c
@@ -25,7 +25,7 @@ main(void)
points[1].x = 50;
points[1].y = 70;
gdImagePolygon(im, points, 2, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagepolygon/gdimagepolygon2.png", im);
+ r = gdAssertImageEqualsToFile("gdimagepolygon/gdimagepolygon2.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon3.c b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon3.c
index 55d71f27a9c..b53d7c956fd 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon3.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/gdimagepolygon3.c
@@ -27,7 +27,7 @@ main(void)
points[2].x = 90;
points[2].y = 30;
gdImagePolygon(im, points, 3, black);
- r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimagepolygon/gdimagepolygon3.png", im);
+ r = gdAssertImageEqualsToFile("gdimagepolygon/gdimagepolygon3.png", im);
free(points);
gdImageDestroy(im);
if (!r) exit(EXIT_FAILURE);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt
index 2c73ef9b77a..517864ed2ba 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt
@@ -1,10 +1,7 @@
SET(TESTS_FILES
bug00003
bug00106_gdimagerectangle
+ github_bug_00172
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am
new file mode 100644
index 00000000000..4175ca59873
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am
@@ -0,0 +1,7 @@
+libgd_test_programs += \
+ gdimagerectangle/bug00003 \
+ gdimagerectangle/bug00106_gdimagerectangle \
+ gdimagerectangle/github_bug_00172
+
+EXTRA_DIST += \
+ gdimagerectangle/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/github_bug_00172.c b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/github_bug_00172.c
new file mode 100644
index 00000000000..6519342041f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/github_bug_00172.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include "gd.h"
+
+#include "gdtest.h"
+
+int main() {
+ gdImagePtr im;
+ int black, white;
+ int error = 0;
+ int xs = 300, xe = 350, i;
+ im = gdImageCreateTrueColor(400, 200);
+
+ if (im == NULL) {
+ gdTestErrorMsg("gdImageCreate failed.\n");
+ return 1;
+ }
+
+ white = gdImageColorAllocate(im, 255,255,255);
+ black = gdImageColorAllocate(im, 0,0,0);
+
+ gdImageFilledRectangle(im, 0, 0, 400,200, white);
+
+ gdImageRectangle(im, xs, 95, xe, 95, black);
+
+ for (i = xs; i <= xe; i++) {
+ int c = gdImageGetPixel(im, i, 94);
+ if (c != white) {
+ error |=1;
+ }
+ }
+ for (i = xs; i <= xe; i++) {
+ int c = gdImageGetPixel(im, i, 95);
+ if (c != black) {
+ error |=1;
+ }
+ }
+ for (i = xs; i <= xe; i++) {
+ int c = gdImageGetPixel(im, i, 96);
+ if (c != white) {
+ error |=1;
+ }
+ }
+
+ if (gdImageGetPixel(im, xs -1, 95) != white) {
+ error |=1;
+ }
+ if (gdImageGetPixel(im, xe +1, 95) != white) {
+ error |=1;
+ }
+ gdImageDestroy(im);
+
+ return error;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt
new file mode 100644
index 00000000000..fd8b4fa7b1b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(TESTS_FILES
+ bug00067
+ php_bug_64898
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am
new file mode 100644
index 00000000000..696344bafb5
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am
@@ -0,0 +1,28 @@
+if HAVE_LIBJPEG
+libgd_test_programs += \
+ gdimagerotate/bug00067
+endif
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagerotate/php_bug_64898
+endif
+
+EXTRA_DIST += \
+ gdimagerotate/CMakeLists.txt \
+ gdimagerotate/bug00067_000_exp.png \
+ gdimagerotate/bug00067_015_exp.png \
+ gdimagerotate/bug00067_030_exp.png \
+ gdimagerotate/bug00067_045_exp.png \
+ gdimagerotate/bug00067_060_exp.png \
+ gdimagerotate/bug00067_075_exp.png \
+ gdimagerotate/bug00067_090_exp.png \
+ gdimagerotate/bug00067_105_exp.png \
+ gdimagerotate/bug00067_120_exp.png \
+ gdimagerotate/bug00067_135_exp.png \
+ gdimagerotate/bug00067_150_exp.png \
+ gdimagerotate/bug00067_165_exp.png \
+ gdimagerotate/bug00067_180_exp.png \
+ gdimagerotate/php_bug_64898.png \
+ gdimagerotate/php_bug_64898_exp.png \
+ gdimagerotate/remirh128.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067.c b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067.c
index 4a6595988b9..add483d2d02 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067.c
@@ -7,33 +7,23 @@
int main()
{
gdImagePtr im, exp;
- char path[2048];
- const char *file_im = "gdimagerotate/remirh128.jpg";
- const char *file_exp = "gdimagerotate/bug00067";
+ char *path, filename[2048];
+ const char *file_im = "gdimagerotate/remirh128.png";
FILE *fp;
int color;
int error = 0;
int angle;
- sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_im);
-
- fp = fopen(path, "rb");
-
- if (!fp) {
- gdTestErrorMsg("opening Jpeg %s for reading failed.\n", path);
- return 1;
- }
-
- im = gdImageCreateFromJpeg(fp);
-
+ fp = gdTestFileOpen(file_im);
+ im = gdImageCreateFromPng(fp);
fclose(fp);
if (!im) {
- gdTestErrorMsg("loading %s failed.\n", path);
+ gdTestErrorMsg("loading %s failed.\n", file_im);
return 1;
}
- color = gdImageColorAllocate(im, 0, 0, 0);
+ color = gdImageColorAllocateAlpha(im, 255, 255, 255, 127);
if (color < 0) {
gdTestErrorMsg("allocation color from image failed.\n");
@@ -51,12 +41,13 @@ int main()
return 1;
}
- sprintf(path, "%s/%s_%03d_exp.png", GDTEST_TOP_DIR, file_exp, angle);
-
+ sprintf(filename, "bug00067_%03d_exp.png", angle);
+ path = gdTestFilePath2("gdimagerotate", filename);
if (!gdAssertImageEqualsToFile(path, exp)) {
gdTestErrorMsg("comparing rotated image to %s failed.\n", path);
error += 1;
}
+ free(path);
gdImageDestroy(exp);
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_000_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_000_exp.png
index d06b5fe58fb..2db78821ab8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_000_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_000_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_015_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_015_exp.png
index a0f8ce2efae..48bd53ab5d8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_015_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_015_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_030_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_030_exp.png
index aad7f4ccb67..b56e1f1a159 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_030_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_030_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_045_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_045_exp.png
index 75916a51649..69385ed7114 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_045_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_045_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_060_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_060_exp.png
index f24364a062f..3dc07e54b6f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_060_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_060_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_075_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_075_exp.png
index f8dcf449086..c38fdf478bf 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_075_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_075_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_090_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_090_exp.png
index a971447c7b2..3a85c2d4fe2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_090_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_090_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_105_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_105_exp.png
index 2cf641d85a8..9a64cb71584 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_105_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_105_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_120_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_120_exp.png
index 1890f92545c..b8097ce8d32 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_120_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_120_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_135_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_135_exp.png
index 34ccb0aa054..e085e02bb8a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_135_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_135_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_150_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_150_exp.png
index 330d030a7fa..b61bed7454b 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_150_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_150_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_165_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_165_exp.png
index df5b6400bc2..592bdea3b23 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_165_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_165_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_180_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_180_exp.png
index d4f65983615..65840b7b049 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_180_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/bug00067_180_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898.c b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898.c
index 9bbd98b5313..67f62a77cd7 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898.c
@@ -7,25 +7,15 @@
int main()
{
gdImagePtr im, exp;
- char path[2048];
- const char *file_im = "gdimagerotate/php_bug_64898.png";
- const char *file_exp = "gdimagerotate/php_bug_64898_exp.png";
FILE *fp;
- int color;
-
- sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_im);
-
- fp = fopen(path, "rb");
-
- if (!fp) {
- gdTestErrorMsg("opening PNG %s for reading failed.\n", path);
- return 1;
- }
+ int error = 0;
+ fp = gdTestFileOpen("gdimagerotate/php_bug_64898.png");
+(void)fp;
im = gdImageCreateTrueColor(141, 200);
if (!im) {
- gdTestErrorMsg("loading %s failed.\n", path);
+ gdTestErrorMsg("loading failed.\n");
return 1;
}
@@ -42,17 +32,13 @@ int main()
return 1;
}
- sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_exp);
-
- if (!gdAssertImageEqualsToFile(path, exp)) {
- printf("comparing rotated image to %s failed.\n", path);
- gdImageDestroy(im);
- gdImageDestroy(exp);
- return 1;
+ if (!gdAssertImageEqualsToFile("gdimagerotate/php_bug_64898_exp.png", exp)) {
+ gdTestErrorMsg("comparing rotated image failed.\n");
+ error = 1;
}
gdImageDestroy(exp);
gdImageDestroy(im);
- return 0;
+ return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898_exp.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898_exp.png
index a03bdb8e9d6..7ecaeb076b8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898_exp.png
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/php_bug_64898_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.jpg b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.jpg
deleted file mode 100644
index bd5e3c77e3c..00000000000
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.jpg
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.png b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.png
new file mode 100644
index 00000000000..2db78821ab8
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/remirh128.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt
new file mode 100644
index 00000000000..91bd0150176
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(TESTS_FILES
+ github_bug_00218
+ bug_overflow_large_new_size
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am
new file mode 100644
index 00000000000..23b89241883
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am
@@ -0,0 +1,7 @@
+
+libgd_test_programs += \
+ gdimagescale/github_bug_00218 \
+ gdimagescale/bug_overflow_large_new_size
+
+EXTRA_DIST += \
+ gdimagescale/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/bug_overflow_large_new_size.c b/Build/source/libs/gd/libgd-src/tests/gdimagescale/bug_overflow_large_new_size.c
new file mode 100644
index 00000000000..0a8503b745f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/bug_overflow_large_new_size.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gd.h"
+#include <math.h>
+
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, im2;
+
+ im = gdImageCreate(1,1);
+ if (im == NULL) {
+ printf("gdImageCreate failed\n");
+ return 1;
+ }
+ gdImageSetInterpolationMethod(im, GD_BELL);
+
+ /* here the call may pass if the system has enough memory (physical or swap)
+ or fails (overflow check or alloc fails.
+ in both cases the tests pass */
+ im2 = gdImageScale(im,0x15555556, 1);
+ if (im2 == NULL) {
+ printf("gdImageScale failed, expected (out of memory or overflow validation\n");
+ return 0;
+ }
+ gdImageDestroy(im);
+ gdImageDestroy(im2);
+
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/github_bug_00218.c b/Build/source/libs/gd/libgd-src/tests/gdimagescale/github_bug_00218.c
new file mode 100644
index 00000000000..a25793ccdde
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/github_bug_00218.c
@@ -0,0 +1,20 @@
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, dest;
+ int status;
+
+ im = gdImageCreate(5,5);
+ dest = gdImageScale(im, 0, 1);
+ if (dest != NULL) {
+ gdTestErrorMsg("expecting NULL result\n");
+ status = 1;
+ } else {
+ status = 0;
+ }
+ gdImageDestroy(im);
+
+ return status;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt
index 13de90a4ff6..0a9e2167c4c 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt
@@ -3,8 +3,4 @@ SET(TESTS_FILES
bug00208_2
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/Makemodule.am
new file mode 100644
index 00000000000..ca13839522b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/Makemodule.am
@@ -0,0 +1,11 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagescatterex/bug00208_1 \
+ gdimagescatterex/bug00208_2
+endif
+
+EXTRA_DIST += \
+ gdimagescatterex/CMakeLists.txt \
+ gdimagescatterex/bug00208.png \
+ gdimagescatterex/bug00208_1.png \
+ gdimagescatterex/bug00208_2.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_1.c b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_1.c
index 4dc8b63e737..3d02b2cf869 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_1.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_1.c
@@ -8,15 +8,11 @@ int main()
gdScatter s;
CuTestImageResult r;
- fp = fopen(GDTEST_TOP_DIR "/gdimagescatterex/bug00208.png", "rb");
- if (!fp) {
- fprintf(stderr, "could not open file\n");
- return 1;
- }
+ fp = gdTestFileOpen("gdimagescatterex/bug00208.png");
im = gdImageCreateFromPng(fp);
fclose(fp);
if (!im) {
- fprintf(stderr, "could not create image\n");
+ gdTestErrorMsg("could not create image\n");
return 1;
}
@@ -26,20 +22,15 @@ int main()
s.num_colors = 0;
if (!gdImageScatterEx(im, &s)) {
gdImageDestroy(im);
- fprintf(stderr, "could not scatter\n");
+ gdTestErrorMsg("could not scatter\n");
return 1;
}
- fp = fopen(GDTEST_TOP_DIR "/gdimagescatterex/bug00208_1.png", "rb");
- if (!fp) {
- fprintf(stderr, "could not open file\n");
- gdImageDestroy(im);
- return 1;
- }
+ fp = gdTestFileOpen("gdimagescatterex/bug00208_1.png");
ex = gdImageCreateFromPng(fp);
fclose(fp);
if (!ex) {
- fprintf(stderr, "could not create image\n");
+ gdTestErrorMsg("could not create image\n");
gdImageDestroy(im);
return 1;
}
@@ -48,7 +39,7 @@ int main()
gdImageDestroy(ex);
gdImageDestroy(im);
if (r.pixels_changed > 10000) {
- fprintf(stderr, "too much diff: %d\n", r.pixels_changed);
+ gdTestErrorMsg("too much diff: %d\n", r.pixels_changed);
return 1;
}
return 0;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_2.c b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_2.c
index 90361569df2..58c1382bafd 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_2.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/bug00208_2.c
@@ -9,15 +9,11 @@ int main()
int colors[] = {0xFF0000, 0x00FF00};
CuTestImageResult r;
- fp = fopen(GDTEST_TOP_DIR "/gdimagescatterex/bug00208.png", "rb");
- if (!fp) {
- fprintf(stderr, "could not open file\n");
- return 1;
- }
+ fp = gdTestFileOpen("gdimagescatterex/bug00208.png");
im = gdImageCreateFromPng(fp);
fclose(fp);
if (!im) {
- fprintf(stderr, "could not create image\n");
+ gdTestErrorMsg("could not create image\n");
return 1;
}
@@ -28,20 +24,15 @@ int main()
s.colors = colors;
if (!gdImageScatterEx(im, &s)) {
gdImageDestroy(im);
- fprintf(stderr, "could not scatter\n");
+ gdTestErrorMsg("could not scatter\n");
return 1;
}
- fp = fopen(GDTEST_TOP_DIR "/gdimagescatterex/bug00208_2.png", "rb");
- if (!fp) {
- fprintf(stderr, "could not open file\n");
- gdImageDestroy(im);
- return 1;
- }
+ fp = gdTestFileOpen("gdimagescatterex/bug00208_2.png");
ex = gdImageCreateFromPng(fp);
fclose(fp);
if (!ex) {
- fprintf(stderr, "could not create image\n");
+ gdTestErrorMsg("could not create image\n");
gdImageDestroy(im);
return 1;
}
@@ -50,7 +41,7 @@ int main()
gdImageDestroy(ex);
gdImageDestroy(im);
if (r.pixels_changed > 10000) {
- fprintf(stderr, "too much diff: %d\n", r.pixels_changed);
+ gdTestErrorMsg("too much diff: %d\n", r.pixels_changed);
return 1;
}
return 0;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt
index 1fb1f38bb36..31ba4e418b9 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt
@@ -4,8 +4,4 @@ SET(TESTS_FILES
gdeffectmultiply
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am
new file mode 100644
index 00000000000..8722e9afdf0
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am
@@ -0,0 +1,7 @@
+libgd_test_programs += \
+ gdimagesetpixel/bug00186 \
+ gdimagesetpixel/gdeffectmultiply \
+ gdimagesetpixel/gdeffectoverlay
+
+EXTRA_DIST += \
+ gdimagesetpixel/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectmultiply.c b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectmultiply.c
new file mode 100644
index 00000000000..3d8da7bfe29
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectmultiply.c
@@ -0,0 +1,33 @@
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ int x, y, c;
+ int r=0;
+
+
+ im = gdImageCreateTrueColor(256, 256);
+ gdImageAlphaBlending( im, gdEffectReplace );
+ for (x=0; x<256; x++) {
+ for (y=0; y<256; y++) {
+ c = (y/2 << 24) + (x << 16) + (x << 8) + x;
+ gdImageSetPixel(im, x, y, c );
+ }
+ }
+ gdImageAlphaBlending( im, gdEffectMultiply );
+ gdImageFilledRectangle(im, 0, 0, 255, 255, 0xff7f00);
+
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 0, 128)) != 0x40) {
+ r = 1;
+ }
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 128, 128)) != 0x5f) {
+ r = 1;
+ }
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 255, 128)) != 0x7f) {
+ r = 1;
+ }
+ gdImageDestroy(im);
+ return r;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectoverlay.c b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectoverlay.c
new file mode 100644
index 00000000000..7f63e17d301
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/gdeffectoverlay.c
@@ -0,0 +1,33 @@
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ int x, y, c;
+ int r=0;
+
+
+ im = gdImageCreateTrueColor(256, 256);
+ gdImageAlphaBlending( im, gdEffectReplace );
+ for (x=0; x<256; x++) {
+ for (y=0; y<256; y++) {
+ c = (y/2 << 24) + (x << 16) + (x << 8) + x;
+ gdImageSetPixel(im, x, y, c );
+ }
+ }
+ gdImageAlphaBlending( im, gdEffectOverlay );
+ gdImageFilledRectangle(im, 0, 0, 255, 255, 0xff7f00);
+
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 0, 128)) != 0x00) {
+ r = 1;
+ }
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 128, 128)) != 0x80) {
+ r = 1;
+ }
+ if (gdTrueColorGetGreen(gdImageGetPixel(im, 255, 128)) != 0xff) {
+ r = 1;
+ }
+ gdImageDestroy(im);
+ return r;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt
index c3338c0dc92..a38613f9a81 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt
@@ -1,9 +1,7 @@
+IF(FREETYPE_FOUND)
SET(TESTS_FILES
gdimagestringft_bbox
)
+ENDIF(FREETYPE_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am
new file mode 100644
index 00000000000..0dfe26fb13c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBFREETYPE
+libgd_test_programs += \
+ gdimagestringft/gdimagestringft_bbox
+endif
+
+EXTRA_DIST += \
+ gdimagestringft/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c
index 01fd73a33c1..bc2bdd0b791 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c
@@ -28,7 +28,7 @@ static int EXPECT[16][8] = {
int main()
{
- char path[2048];
+ char *path;
gdImagePtr im;
int black;
double cos_t, sin_t;
@@ -38,7 +38,7 @@ int main()
int error = 0;
FILE *fp;
- sprintf(path, "%s/freetype/DejaVuSans.ttf", GDTEST_TOP_DIR);
+ path = gdTestFilePath("freetype/DejaVuSans.ttf");
im = gdImageCreate(800, 800);
gdImageColorAllocate(im, 0xFF, 0xFF, 0xFF); /* allocate white for background color */
black = gdImageColorAllocate(im, 0, 0, 0);
@@ -53,7 +53,7 @@ int main()
}
for (j = 0; j < 8; j++) {
if (brect[j] != EXPECT[i][j]) {
- printf("(%d, %d) (%d, %d) (%d, %d) (%d, %d) expected, but (%d, %d) (%d, %d) (%d, %d) (%d, %d)\n",
+ gdTestErrorMsg("(%d, %d) (%d, %d) (%d, %d) (%d, %d) expected, but (%d, %d) (%d, %d) (%d, %d) (%d, %d)\n",
EXPECT[i][0], EXPECT[i][1], EXPECT[i][2], EXPECT[i][3],
EXPECT[i][4], EXPECT[i][5], EXPECT[i][6], EXPECT[i][7],
brect[0], brect[1], brect[2], brect[3],
@@ -68,14 +68,11 @@ int main()
y = (int)(cos_t * y - sin_t * x);
x = temp;
}
- fp = fopen("gdimagestringft_bbox.png", "wb");
- if (!fp) {
- error = 1;
- goto done;
- }
+ fp = gdTestTempFp();
gdImagePng(im, fp);
fclose(fp);
done:
gdImageDestroy(im);
+ free(path);
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt
index 5d2666883d8..db08ac13a8e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt
@@ -1,9 +1,7 @@
+IF(FREETYPE_FOUND)
SET(TESTS_FILES
gdimagestringftex_returnfontpathname
)
+ENDIF(FREETYPE_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/Makemodule.am
new file mode 100644
index 00000000000..e72c4375a46
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBFREETYPE
+libgd_test_programs += \
+ gdimagestringftex/gdimagestringftex_returnfontpathname
+endif
+
+EXTRA_DIST += \
+ gdimagestringftex/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/gdimagestringftex_returnfontpathname.c b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/gdimagestringftex_returnfontpathname.c
index f91485b7717..fc135cd263f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/gdimagestringftex_returnfontpathname.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/gdimagestringftex_returnfontpathname.c
@@ -5,9 +5,9 @@
int main()
{
gdFTStringExtra strex;
- char path[2048];
+ char *path;
- sprintf(path, "%s/freetype/DejaVuSans.ttf", GDTEST_TOP_DIR);
+ path = gdTestFilePath("freetype/DejaVuSans.ttf");
strex.flags = gdFTEX_RETURNFONTPATHNAME;
strex.fontpath = NULL;
gdImageStringFTEx(NULL, NULL, 0, path, 72, 0, 0, 0, "hello, gd", &strex);
@@ -18,5 +18,6 @@ int main()
return 2;
}
gdFree(strex.fontpath);
+ free(path);
return 0;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/CMakeLists.txt
new file mode 100644
index 00000000000..606eb537270
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/CMakeLists.txt
@@ -0,0 +1,5 @@
+SET(TESTS_FILES
+ php_bug_72512
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am
new file mode 100644
index 00000000000..cd73f092b9b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am
@@ -0,0 +1,6 @@
+
+libgd_test_programs += \
+ gdimagetruecolortopalette/php_bug_72512
+
+EXTRA_DIST += \
+ gdimagetruecolortopalette/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/php_bug_72512.c b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/php_bug_72512.c
new file mode 100644
index 00000000000..d022a94e5e7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/php_bug_72512.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gd.h"
+
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, im2;
+ int error = 0;
+
+ im = gdImageCreateTrueColor(100, 100);
+
+ if (im == NULL) {
+ gdTestErrorMsg("gdImageCreateTruecolor failed");
+ error = 1;
+ goto exit;
+ }
+ gdImageColorTransparent(im, -1);
+ gdImageTrueColorToPalette(im, 1, 3);
+ gdImageColorTransparent(im, 9);
+ im2 = gdImageScale(im, 1, 65535);
+ if (im2 == NULL) {
+ error = 1;
+ goto freeim;
+ } else {
+ gdImageDestroy(im2);
+ }
+
+freeim:
+ gdImageDestroy(im);
+exit:
+ return error;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt
new file mode 100644
index 00000000000..296e3f1ca77
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(TESTS_FILES
+ gdModesAndPalettes
+ gdTrivialResize
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/Makemodule.am
new file mode 100644
index 00000000000..f13f4abbcde
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/Makemodule.am
@@ -0,0 +1,6 @@
+libgd_test_programs += \
+ gdinterpolatedscale/gdModesAndPalettes \
+ gdinterpolatedscale/gdTrivialResize
+
+EXTRA_DIST += \
+ gdinterpolatedscale/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdModesAndPalettes.c b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdModesAndPalettes.c
index a6ed14d92f3..a0a95595544 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdModesAndPalettes.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdModesAndPalettes.c
@@ -36,6 +36,10 @@ int main() {
result = gdImageScale(im[i], NX, NY);
gdTestAssert(result != NULL);
gdTestAssert(result != im[i]);
+ if (result == NULL) {
+ gdTestErrorMsg("gdImageScale failed (method: %i, im:%i).\n", method, i);
+ break;
+ }
gdTestAssert(result->sx == NX && result->sy == NY);
gdImageDestroy(result);
diff --git a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdTrivialResize.c b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdTrivialResize.c
index f11b5059fbf..2b7baf1f8d5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdTrivialResize.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/gdTrivialResize.c
@@ -8,25 +8,25 @@
gdImagePtr mkwhite(int x, int y)
{
- gdImagePtr im;
+ gdImagePtr im;
im = gdImageCreateTrueColor(x, y);
gdImageFilledRectangle(im, 0, 0, x-1, y-1,
- gdImageColorExactAlpha(im, 255, 255, 255, 0));
+ gdImageColorExactAlpha(im, 255, 255, 255, 0));
- gdTestAssert(im != NULL);
+ gdTestAssert(im != NULL);
- gdImageSetInterpolationMethod(im, GD_BICUBIC); // FP interp'n
+ gdImageSetInterpolationMethod(im, GD_BILINEAR_FIXED); // FP interp'n
- return im;
+ return im;
}/* mkwhite*/
/* Fill with almost-black. */
void mkblack(gdImagePtr ptr)
{
- gdImageFilledRectangle(ptr, 0, 0, ptr->sx - 1, ptr->sy - 1,
- gdImageColorExactAlpha(ptr, 2, 2, 2, 0));
+ gdImageFilledRectangle(ptr, 0, 0, ptr->sx - 1, ptr->sy - 1,
+ gdImageColorExactAlpha(ptr, 2, 2, 2, 0));
}/* mkblack*/
@@ -34,61 +34,60 @@ void mkblack(gdImagePtr ptr)
void scaletest(int x, int y, int nx, int ny)
{
- gdImagePtr im, imref, tmp, same;
+ gdImagePtr im, imref, tmp, same;
imref = mkwhite(x, y);
- im = mkwhite(x, y);
- tmp = gdImageScale(im, nx, ny);
- same = gdImageScale(tmp, x, y);
-
- /* Test the result to insure that it's close enough to the
- * original. */
- gdTestAssert(gdMaxPixelDiff(im, same) < CLOSE_ENOUGH);
-
- /* Modify the original and test for a change again. (I.e. test
- * for accidentally shared memory.) */
- mkblack(tmp);
- gdTestAssert(gdMaxPixelDiff(imref, same) < CLOSE_ENOUGH);
-
- gdImageDestroy(im);
- gdImageDestroy(tmp);
- gdImageDestroy(same);
+ im = mkwhite(x, y);
+ tmp = gdImageScale(im, nx, ny);
+ same = gdImageScale(tmp, x, y);
+
+ /* Test the result to insure that it's close enough to the
+ * original. */
+ gdTestAssert(gdMaxPixelDiff(im, same) < CLOSE_ENOUGH);
+
+ /* Modify the original and test for a change again. (I.e. test
+ * for accidentally shared memory.) */
+ mkblack(tmp);
+ gdTestAssert(gdMaxPixelDiff(imref, same) < CLOSE_ENOUGH);
+
+ gdImageDestroy(im);
+ gdImageDestroy(imref);
+ gdImageDestroy(tmp);
+ gdImageDestroy(same);
}/* scaletest*/
void do_test(int x, int y, int nx, int ny)
{
- gdImagePtr im, imref, tmp;
- gdImagePtr same, same2;
-
+ gdImagePtr im, imref, same;
im = mkwhite(x, y);
- imref = mkwhite(x, y);
+ imref = mkwhite(x, y);
- same = gdImageScale(im, x, y);
+ same = gdImageScale(im, x, y);
- /* Trivial resize should be a straight copy. */
- gdTestAssert(im != same);
- gdTestAssert(gdMaxPixelDiff(im, same) == 0);
- gdTestAssert(gdMaxPixelDiff(imref, same) == 0);
+ /* Trivial resize should be a straight copy. */
+ gdTestAssert(im != same);
+ gdTestAssert(gdMaxPixelDiff(im, same) == 0);
+ gdTestAssert(gdMaxPixelDiff(imref, same) == 0);
- /* Ensure that modifying im doesn't modify same (i.e. see if we
- * can catch them accidentally sharing the same pixel buffer.) */
- mkblack(im);
- gdTestAssert(gdMaxPixelDiff(imref, same) == 0);
+ /* Ensure that modifying im doesn't modify same (i.e. see if we
+ * can catch them accidentally sharing the same pixel buffer.) */
+ mkblack(im);
+ gdTestAssert(gdMaxPixelDiff(imref, same) == 0);
- gdImageDestroy(same);
- gdImageDestroy(im);
+ gdImageDestroy(same);
+ gdImageDestroy(im);
+ gdImageDestroy(imref);
- /* Scale horizontally, vertically and both. */
- scaletest(x, y, nx, y);
- scaletest(x, y, x, ny);
- scaletest(x, y, nx, ny);
+ /* Scale horizontally, vertically and both. */
+ scaletest(x, y, nx, y);
+ scaletest(x, y, x, ny);
+ scaletest(x, y, nx, ny);
}
-int main(int argc, char **argv)
+int main()
{
+ do_test(300, 300, 600, 600);
+ do_test(1500, 1000, 600, 400);
- do_test(300, 300, 600, 600);
- do_test(3200, 2133, 640, 427);
-
- return gdNumFailures();
+ return gdNumFailures();
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt
index 9fd4caf3797..bc72c27c84b 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
gdnewfilectx_null
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/Makemodule.am
new file mode 100644
index 00000000000..21f45a01316
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ gdnewfilectx/gdnewfilectx_null
+
+EXTRA_DIST += \
+ gdnewfilectx/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtest/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdtest/Makemodule.am
new file mode 100644
index 00000000000..5b4e39e6e6f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdtest/Makemodule.am
@@ -0,0 +1,5 @@
+# Note: Library is declared in tests/Makefile.am as it's used by all the tests.
+
+EXTRA_DIST += \
+ gdtest/CMakeLists.txt \
+ gdtest/test_config.h.cmake
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c b/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c
index 83aba01d77f..b26d0394a41 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c
@@ -1,3 +1,4 @@
+#include <config.h>
#include <assert.h>
#include <setjmp.h>
#include <stdlib.h>
@@ -5,6 +6,24 @@
#include <string.h>
#include <math.h>
#include <limits.h>
+
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef _WIN32
+# include "readdir.h"
+#endif
+
#include "gd.h"
#include "gdtest.h"
@@ -25,19 +44,351 @@ void gdSilence(int priority, const char *format, va_list args)
gdImagePtr gdTestImageFromPng(const char *filename)
{
gdImagePtr image;
-
FILE *fp;
- fp = fopen(filename, "rb");
+ /* If the path is relative, then assume it's in the tests/ dir. */
+ if (filename[0] == '/'
+#ifdef _WIN32
+ || filename[1] == ':'
+#endif
+ ) {
+ fp = fopen(filename, "rb");
+ } else {
+ fp = gdTestFileOpen(filename);
+ }
- if (!fp) {
- return NULL;
+ if (fp == NULL) {
+ return NULL;
}
+
image = gdImageCreateFromPng(fp);
fclose(fp);
return image;
}
+static char *tmpdir_base;
+
+/* This is kind of hacky, but it's meant to be simple. */
+static void _clean_dir(const char *dir)
+{
+ DIR *d;
+ struct dirent *de;
+
+ d = opendir(dir);
+ if (d == NULL)
+ return;
+
+ if (chdir(dir) != 0)
+ goto done;
+
+ while ((de = readdir(d)) != NULL) {
+ struct stat st;
+
+ if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)
+ continue;
+#ifdef _WIN32
+ {
+ WIN32_FILE_ATTRIBUTE_DATA data;
+
+ if (!GetFileAttributesEx(de->d_name, GetFileExInfoStandard, &data)) {
+ continue;
+ }
+ if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ _clean_dir(de->d_name);
+ } else {
+ unlink(de->d_name);
+ }
+ }
+#else
+ if (lstat(de->d_name, &st) != 0)
+ continue;
+
+ if (S_ISDIR(st.st_mode))
+ _clean_dir(de->d_name);
+ else
+ unlink(de->d_name);
+#endif
+ }
+
+ if (chdir("..")) {
+ /* Ignore. */;
+ }
+
+ done:
+ closedir(d);
+ rmdir(dir);
+}
+
+static void tmpdir_cleanup(void)
+{
+ _clean_dir(tmpdir_base);
+ free(tmpdir_base);
+}
+
+#ifdef _WIN32
+char* strrstr (char* haystack, char* needle)
+{
+ int needle_length = strlen(needle);
+ char * haystack_end = haystack + strlen(haystack) - needle_length;
+ char * p;
+ int i;
+
+ for(p = haystack_end; p >= haystack; --p)
+ {
+ for(i = 0; i < needle_length; ++i) {
+ if(p[i] != needle[i])
+ goto next;
+ }
+ return p;
+
+ next:;
+ }
+ return 0;
+}
+
+
+typedef VOID (WINAPI *MyGetSystemTimeAsFileTime)(LPFILETIME lpSystemTimeAsFileTime);
+
+static MyGetSystemTimeAsFileTime get_time_func(void)
+{
+ MyGetSystemTimeAsFileTime timefunc = NULL;
+ HMODULE hMod = GetModuleHandle("kernel32.dll");
+
+ if (hMod) {
+ /* Max possible resolution <1us, win8/server2012 */
+ timefunc = (MyGetSystemTimeAsFileTime)GetProcAddress(hMod, "GetSystemTimePreciseAsFileTime");
+
+ if(!timefunc) {
+ /* 100ns blocks since 01-Jan-1641 */
+ timefunc = (MyGetSystemTimeAsFileTime)GetProcAddress(hMod, "GetSystemTimeAsFileTime");
+ }
+ }
+
+ return timefunc;
+}
+static MyGetSystemTimeAsFileTime timefunc = NULL;
+static int getfilesystemtime(struct timeval *tv)
+{
+ FILETIME ft;
+ unsigned __int64 ff = 0;
+ ULARGE_INTEGER fft;
+
+ if (timefunc == NULL) {
+ timefunc = get_time_func();
+ }
+ timefunc(&ft);
+
+ /*
+ * Do not cast a pointer to a FILETIME structure to either a
+ * ULARGE_INTEGER* or __int64* value because it can cause alignment faults on 64-bit Windows.
+ * via http://technet.microsoft.com/en-us/library/ms724284(v=vs.85).aspx
+ */
+ fft.HighPart = ft.dwHighDateTime;
+ fft.LowPart = ft.dwLowDateTime;
+ ff = fft.QuadPart;
+
+ ff /= 10Ui64; /* convert to microseconds */
+ ff -= 11644473600000000Ui64; /* convert to unix epoch */
+
+ tv->tv_sec = (long)(ff / 1000000Ui64);
+ tv->tv_usec = (long)(ff % 1000000Ui64);
+
+ return 0;
+}
+
+static char *
+mkdtemp (char *tmpl)
+{
+ static const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+ static const int NLETTERS = sizeof (letters) - 1;
+ static int counter = 0;
+ char *XXXXXX;
+ struct timeval tv;
+ _int64 value;
+ int count;
+
+ /* find the last occurrence of "XXXXXX" */
+ XXXXXX = strrstr(tmpl, "XXXXXX");
+
+ if (!XXXXXX || strncmp (XXXXXX, "XXXXXX", 6)) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ /* Get some more or less random data. */
+ getfilesystemtime(&tv);
+ value = (tv.tv_usec ^ tv.tv_sec) + counter++;
+
+ for (count = 0; count < 100; value += 7777, ++count) {
+ _int64 v = value;
+
+ /* Fill in the random bits. */
+ XXXXXX[0] = letters[v % NLETTERS];
+ v /= NLETTERS;
+ XXXXXX[1] = letters[v % NLETTERS];
+ v /= NLETTERS;
+ XXXXXX[2] = letters[v % NLETTERS];
+ v /= NLETTERS;
+ XXXXXX[3] = letters[v % NLETTERS];
+ v /= NLETTERS;
+ XXXXXX[4] = letters[v % NLETTERS];
+ v /= NLETTERS;
+ XXXXXX[5] = letters[v % NLETTERS];
+
+ /* tmpl is in UTF-8 on Windows, thus use g_mkdir() */
+ if (mkdir(tmpl) == 0) {
+ return tmpl;
+ }
+ printf("failed to create directory\n");
+ if (errno != EEXIST)
+ /* Any other error will apply also to other names we might
+ * try, and there are 2^32 or so of them, so give up now.
+ */
+ return NULL;
+ }
+
+ /* We got out of the loop because we ran out of combinations to try. */
+ errno = EEXIST;
+ return NULL;
+}
+#endif
+
+const char *gdTestTempDir(void)
+{
+ if (tmpdir_base == NULL) {
+ char *tmpdir;
+#ifdef _WIN32
+ char tmpdir_root[MAX_PATH];
+ size_t tmpdir_root_len = GetTempPath(MAX_PATH, tmpdir_root);
+ gdTestAssert(!(tmpdir_root_len > MAX_PATH || (tmpdir_root_len == 0)));
+ gdTestAssert((tmpdir_root_len + 30 < MAX_PATH));
+#else
+ char *tmpdir_root;
+ tmpdir_root = getenv("TMPDIR");
+ if (tmpdir_root == NULL)
+ tmpdir_root = "/tmp";
+#endif
+
+ /* The constant here is a lazy over-estimate. */
+ tmpdir = malloc(strlen(tmpdir_root) + 30);
+ gdTestAssert(tmpdir != NULL);
+#ifdef _WIN32
+ sprintf(tmpdir, "%sgdtest.XXXXXX", tmpdir_root);
+#else
+ sprintf(tmpdir, "%s/gdtest.XXXXXX", tmpdir_root);
+#endif
+ tmpdir_base = mkdtemp(tmpdir);
+ gdTestAssert(tmpdir_base != NULL);
+
+ atexit(tmpdir_cleanup);
+ }
+
+ return tmpdir_base;
+}
+
+char *gdTestTempFile(const char *template)
+{
+ const char *tempdir = gdTestTempDir();
+ char *ret;
+
+#ifdef _WIN32
+ {
+ char *tmpfilename;
+ UINT error;
+
+ ret = malloc(MAX_PATH);
+ gdTestAssert(ret != NULL);
+ if (template == NULL) {
+ error = GetTempFileName(tempdir,
+ "gdtest",
+ 0,
+ ret);
+ gdTestAssert(error != 0);
+ } else {
+ sprintf(ret, "%s\\%s", tempdir, template);
+ }
+ }
+#else
+ if (template == NULL) {
+ template = "gdtemp.XXXXXX";
+ }
+ ret = malloc(strlen(tempdir) + 10 + strlen(template));
+ gdTestAssert(ret != NULL);
+ sprintf(ret, "%s/%s", tempdir, template);
+
+ if (strstr(template, "XXXXXX") != NULL) {
+ int fd = mkstemp(ret);
+ gdTestAssert(fd != -1);
+ close(fd);
+ }
+#endif
+ return ret;
+}
+
+FILE *gdTestTempFp(void)
+{
+ char *file = gdTestTempFile(NULL);
+ FILE *fp = fopen(file, "wb");
+ gdTestAssert(fp != NULL);
+ free(file);
+ return fp;
+}
+
+char *gdTestFilePathV(const char *path, va_list args)
+{
+ size_t len;
+ const char *p;
+ char *file;
+ va_list args_len;
+
+ /* Figure out how much space we need. */
+ va_copy(args_len, args);
+ len = strlen(GDTEST_TOP_DIR) + 1;
+ p = path;
+ do {
+ len += strlen(p) + 1;
+ } while ((p = va_arg(args_len, const char *)) != NULL);
+ va_end(args_len);
+
+ /* Now build the path. */
+ file = malloc(len);
+ gdTestAssert(file != NULL);
+ strcpy(file, GDTEST_TOP_DIR);
+ p = path;
+ do {
+#ifdef _WIN32
+ strcat(file, "\\");
+#else
+ strcat(file, "/");
+#endif
+ strcat(file, p);
+ } while ((p = va_arg(args, const char *)) != NULL);
+ va_end(args);
+
+ return file;
+}
+
+char *gdTestFilePathX(const char *path, ...)
+{
+ va_list args;
+ va_start(args, path);
+ return gdTestFilePathV(path, args);
+}
+
+FILE *gdTestFileOpenX(const char *path, ...)
+{
+ va_list args;
+ FILE *fp;
+ char *file;
+
+ va_start(args, path);
+ file = gdTestFilePathV(path, args);
+ fp = fopen(file, "rb");
+ gdTestAssert(fp != NULL);
+ free(file);
+ return fp;
+}
+
/* Compare two buffers, returning the number of pixels that are
* different and the maximum difference of any single color channel in
* result_ret.
@@ -77,13 +428,14 @@ void gdTestImageDiff(gdImagePtr buf_a, gdImagePtr buf_b,
r1 = gdTrueColorGetRed(c1);
r2 = gdTrueColorGetRed(c2);
diff_r = abs (r1 - r2);
- /* diff_r *= 4; /* emphasize */
+ // diff_r *= 4; /* emphasize */
if (diff_r) {
diff_r += gdRedMax/2; /* make sure it's visible */
}
if (diff_r > 255) {
diff_r = 255;
}
+ UP_DIFF(diff_r);
g1 = gdTrueColorGetGreen(c1);
g2 = gdTrueColorGetGreen(c2);
@@ -96,6 +448,7 @@ void gdTestImageDiff(gdImagePtr buf_a, gdImagePtr buf_b,
if (diff_g > 255) {
diff_g = 255;
}
+ UP_DIFF(diff_g);
b1 = gdTrueColorGetBlue(c1);
b2 = gdTrueColorGetBlue(c2);
@@ -107,6 +460,7 @@ void gdTestImageDiff(gdImagePtr buf_a, gdImagePtr buf_b,
if (diff_b > 255) {
diff_b = 255;
}
+ UP_DIFF(diff_b);
result_ret->pixels_changed++;
if (buf_diff) gdImageSetPixel(buf_diff, x,y, gdTrueColorAlpha(diff_r, diff_g, diff_b, diff_a));
@@ -212,6 +566,7 @@ int gdTestImageCompareToImage(const char* file, unsigned int line, const char* m
if (!fp) goto fail;
gdImagePng(actual, fp);
fclose(fp);
+ return 0;
} else {
if (surface_diff) {
gdImageDestroy(surface_diff);
@@ -251,10 +606,10 @@ int gdNumFailures() {
return failureCount;
}
-int _gdTestAssert(const char* file, unsigned int line, const char* message, int condition)
+int _gdTestAssert(const char* file, unsigned int line, int condition)
{
if (condition) return 1;
- _gdTestErrorMsg(file, line, "%s", message);
+ _gdTestErrorMsg(file, line, "Assert failed in <%s:%i>\n", file, line);
++failureCount;
@@ -263,15 +618,15 @@ int _gdTestAssert(const char* file, unsigned int line, const char* message, int
int _gdTestAssertMsg(const char* file, unsigned int line, int condition, const char* message, ...)
{
- va_list args;
- char output_buf[GDTEST_STRING_MAX];
+ va_list args;
if (condition) return 1;
+ fprintf(stderr, "%s:%u: ", file, line);
va_start(args, message);
- vsnprintf(output_buf, sizeof(output_buf), message, args);
+ vfprintf(stderr, message, args);
va_end(args);
- fprintf(stderr, "%s:%u: %s", file, line, output_buf);
+
fflush(stderr);
++failureCount;
@@ -282,12 +637,11 @@ int _gdTestAssertMsg(const char* file, unsigned int line, int condition, const c
int _gdTestErrorMsg(const char* file, unsigned int line, const char* format, ...) /* {{{ */
{
va_list args;
- char output_buf[GDTEST_STRING_MAX];
+ fprintf(stderr, "%s:%u: ", file, line);
va_start(args, format);
- vsnprintf(output_buf, sizeof(output_buf), format, args);
+ vfprintf(stderr, format, args);
va_end(args);
- fprintf(stderr, "%s:%u: %s", file, line, output_buf);
fflush(stderr);
++failureCount;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.h b/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.h
index 8f332b39bbb..fbf37bf4ff6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.h
+++ b/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.h
@@ -15,6 +15,36 @@ struct CuTestImageResult {
/* Internal versions of assert functions -- use the public versions */
gdImagePtr gdTestImageFromPng(const char *filename);
+/* Return a path to a writable temp dir. The common test code will make sure
+ * it's cleaned up when the test exits. Feel free to write whatever in here.
+ */
+const char *gdTestTempDir(void);
+
+/* Return a path to a writable file inside of the tempdir (see above).
+ * You should free the pointer when you're done.
+ * If |template| is NULL, you'll get a random file name, otherwise you'll get
+ * that under the tempdir.
+ */
+char *gdTestTempFile(const char *template);
+
+/* Return an open (writable) file handle to a temp file. */
+FILE *gdTestTempFp(void);
+
+/* Return the full path to a test file. The path should be relative
+ * to the tests/ dir. The caller should free the pointer when finished.
+ */
+char *gdTestFilePathV(const char *path, va_list args);
+char *gdTestFilePathX(const char *path, ...);
+#define gdTestFilePath(p) gdTestFilePathX(p, NULL)
+#define gdTestFilePath2(p1, p2) gdTestFilePathX(p1, p2, NULL)
+
+/* Return an open (read-only) file handle to a test file.
+ * The path should be relative to the tests/ dir.
+ */
+FILE *gdTestFileOpenX(const char *path, ...);
+#define gdTestFileOpen(p) gdTestFileOpenX(p, NULL)
+#define gdTestFileOpen2(p1, p2) gdTestFileOpenX(p1, p2, NULL)
+
void gdTestImageDiff(gdImagePtr buf_a, gdImagePtr buf_b,
gdImagePtr buf_diff, CuTestImageResult *result_ret);
@@ -26,7 +56,7 @@ int gdTestImageCompareToFile(const char* file, unsigned int line, const char* me
unsigned int gdMaxPixelDiff(gdImagePtr a, gdImagePtr b);
-int _gdTestAssert(const char* file, unsigned int line, const char* message, int condition);
+int _gdTestAssert(const char* file, unsigned int line, int condition);
int _gdTestAssertMsg(const char* file, unsigned int line, int condition, const char* message, ...);
@@ -35,12 +65,12 @@ int _gdTestErrorMsg(const char* file, unsigned int line, const char* string, ...
/* public assert functions */
#define gdAssertImageEqualsToFile(ex,ac) gdTestImageCompareToFile(__FILE__,__LINE__,NULL,(ex),(ac))
-#define gdAssertImageFileEqualsMsg(ex,ac) gdTestImageCompareFiles(__FILE__,__LINE__,(ms),(ex),(ac))
+#define gdAssertImageFileEqualsMsg(ex,ac,ms) gdTestImageCompareFiles(__FILE__,__LINE__,(ms),(ex),(ac))
-#define gdAssertImageEquals(tc,ex,ac) CuAssertImageEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
-#define gdAssertImageEqualsMsg(tc,ex,ac) CuAssertImageEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
+#define gdAssertImageEquals(ex,ac) gdTestImageCompareToImage(__FILE__,__LINE__,NULL,(ex),(ac))
+#define gdAssertImageEqualsMsg(ex,ac,ms) gdTestImageCompareToImage(__FILE__,__LINE__,(ms),(ex),(ac))
-#define gdTestAssert(cond) _gdTestAssert(__FILE__, __LINE__, "assert failed in <%s:%i>\n", (cond))
+#define gdTestAssert(cond) _gdTestAssert(__FILE__, __LINE__, (cond))
#define gdTestAssertMsg(cond, message, ...) _gdTestAssertMsg(__FILE__, __LINE__, (cond),(message),__VA_ARGS__)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt
index cc47150c832..aa09d66c40a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt
@@ -2,8 +2,4 @@ SET(TESTS_FILES
bug00032
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtiled/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdtiled/Makemodule.am
new file mode 100644
index 00000000000..c85c7a4701c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdtiled/Makemodule.am
@@ -0,0 +1,10 @@
+if HAVE_LIBPNG
+if HAVE_LIBZ
+libgd_test_programs += \
+ gdtiled/bug00032
+endif
+endif
+
+EXTRA_DIST += \
+ gdtiled/CMakeLists.txt \
+ gdtiled/bug00032_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtiled/bug00032.c b/Build/source/libs/gd/libgd-src/tests/gdtiled/bug00032.c
index 0e711533f10..4c788e235cc 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtiled/bug00032.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdtiled/bug00032.c
@@ -2,21 +2,12 @@
#include <stdio.h>
#include "gdtest.h"
-#define exp_img "bug00032_exp.png"
-
-#ifdef _MSC_VER
-# define snprintf _snprintf
-#endif
-
int main()
{
gdImagePtr im, tile;
- char path[GDTEST_STRING_MAX];
gdSetErrorMethod(gdSilence);
- snprintf(path, GDTEST_STRING_MAX - 1, "%s/gdtiled/%s", GDTEST_TOP_DIR, exp_img);
-
tile = gdImageCreateTrueColor(10, 10);
gdImageFill(tile, 0, 0, 0xFFFFFF);
gdImageLine(tile, 0,0, 9,9, 0xff0000);
@@ -28,7 +19,7 @@ int main()
gdImageSetTile(im, tile);
gdImageFilledRectangle(im, 10, 10, 49, 49, gdTiled);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gdtiled/bug00032_exp.png", im)) {
gdImageDestroy(im);
gdImageDestroy(tile);
return 1;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt
new file mode 100644
index 00000000000..f5c5bb75b0a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt
@@ -0,0 +1,5 @@
+SET(TESTS_FILES
+ github_bug_00221
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am
new file mode 100644
index 00000000000..e70b0735d12
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am
@@ -0,0 +1,6 @@
+
+libgd_test_programs += \
+ gdtransformaffineboundingbox/github_bug_00221
+
+EXTRA_DIST += \
+ gdtransformaffineboundingbox/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/github_bug_00221.c b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/github_bug_00221.c
new file mode 100644
index 00000000000..c327789d9f8
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/github_bug_00221.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gd.h"
+
+#include "gdtest.h"
+
+
+int main()
+{
+ gdRect bbox;
+ gdRect area;
+ double affine[6];
+
+ affine[0] = -0.965926;
+ affine[1] = -0.258819;
+ affine[2] = 0.258819;
+ affine[3] = -0.965926;
+ affine[4] = 0.000000;
+ affine[5] = 0.000000;
+ area.x = 0;
+ area.y = 0;
+ area.width = 262;
+ area.height = 166;
+ if (gdTransformAffineBoundingBox(&area, affine, &bbox) != GD_TRUE) {
+ return 1;
+ }
+ if (!(bbox.x ==-253 && bbox.y ==-228 && bbox.width == 298 && bbox.height == 230)) {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt
index a64f785d8e8..f9aa0e23c78 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt
@@ -1,4 +1,3 @@
-
SET(TESTS_FILES
gif_im2im
gif_null
@@ -11,8 +10,4 @@ SET(TESTS_FILES
bug00227
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am
new file mode 100644
index 00000000000..50f671fbceb
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am
@@ -0,0 +1,25 @@
+libgd_test_programs += \
+ gif/bug00005_2 \
+ gif/bug00181 \
+ gif/bug00227 \
+ gif/gif_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gif/bug00005 \
+ gif/bug00006 \
+ gif/bug00060 \
+ gif/bug00066 \
+ gif/gif_im2im
+endif
+
+EXTRA_DIST += \
+ gif/CMakeLists.txt \
+ gif/bug00005_0.gif \
+ gif/bug00005_1.gif \
+ gif/bug00005_2.gif \
+ gif/bug00005_2_exp.png \
+ gif/bug00005_3.gif \
+ gif/bug00060.gif \
+ gif/bug00066.gif \
+ gif/bug00066_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00005.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00005.c
index 1911e6a17a9..dd0ffce4f8b 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00005.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00005.c
@@ -11,17 +11,10 @@ int main()
FILE *fp;
int i = 0;
int error = 0;
- char path[1024];
+ char *path;
for (i=0; i < files_cnt; i++) {
- sprintf(path, "%s/gif/%s", GDTEST_TOP_DIR, giffiles[i]);
-
- fp = fopen(path, "rb");
- if (!fp) {
- gdTestErrorMsg("<%s> Input file does not exist!\n", path);
- return 1;
- }
-
+ fp = gdTestFileOpen2("gif", giffiles[i]);
im = gdImageCreateFromGif(fp);
fclose(fp);
@@ -29,10 +22,11 @@ int main()
if (!im) {
error = 1;
} else {
- sprintf(path, "%s/gif/%s", GDTEST_TOP_DIR, exp[i]);
+ path = gdTestFilePath2("gif", exp[i]);
if (!gdAssertImageEqualsToFile(path, im)) {
error = 1;
}
+ free(path);
gdImageDestroy(im);
}
} else {
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00006.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00006.c
index 57d7ad01611..f1a7fe86341 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00006.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00006.c
@@ -2,12 +2,11 @@
#include "gd.h"
#include "gdtest.h"
-#define TMP_FN "_tmp_bug0006.gif"
-
int main()
{
gdImagePtr im;
FILE *fp;
+ char *file;
const int r = 255, g = 0, b = 0;
int r_f,g_f,b_f, trans_c_f;
int trans_c = gdTrueColorAlpha(r,g,b,0);
@@ -22,9 +21,10 @@ int main()
gdImageColorTransparent(im, trans_c);
gdImageFilledRectangle(im, 0,0, 192,36, trans_c);
- fp = fopen(TMP_FN, "wb");
+ file = gdTestTempFile("bug0006.gif");
+ fp = fopen(file, "wb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for writing\n", TMP_FN);
+ gdTestErrorMsg("Cannot open <%s> for writing\n", file);
return 1;
}
gdImageGif(im,fp);
@@ -32,16 +32,16 @@ int main()
gdImageDestroy(im);
- fp = fopen(TMP_FN, "rb");
+ fp = fopen(file, "rb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for reading\n", TMP_FN);
+ gdTestErrorMsg("Cannot open <%s> for reading\n", file);
return 1;
}
im = gdImageCreateFromGif(fp);
fclose(fp);
if (!im) {
- gdTestErrorMsg("Cannot create image from <%s>\n", TMP_FN);
+ gdTestErrorMsg("Cannot create image from <%s>\n", file);
return 1;
}
@@ -60,8 +60,5 @@ int main()
/* Destroy it */
gdImageDestroy(im);
- if (remove(TMP_FN) == -1) {
- gdTestErrorMsg("Cannot remove file: <%s>\n", TMP_FN);
- }
return error;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00060.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00060.c
index 721d3bc401d..7a3316a2dc5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00060.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00060.c
@@ -6,17 +6,7 @@
int main()
{
gdImagePtr im;
- FILE *fp;
- char path[1024];
-
- sprintf(path, "%s/gif/bug00060.gif", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
-
- if (!fp) {
- printf("cannot open <%s>\n", path);
- return -1;
- }
-
+ FILE *fp = gdTestFileOpen("gif/bug00060.gif");
im = gdImageCreateFromGif(fp);
fclose(fp);
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00066.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00066.c
index be24066ca2e..9cddfef9829 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00066.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00066.c
@@ -6,22 +6,13 @@ int main()
{
gdImagePtr im;
FILE *fp;
- char path[1024];
int error = 0;
- sprintf(path, "%s/gif/bug00066.gif", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
-
- if (!fp) {
- printf("cannot open <%s>\n", path);
- return -1;
- }
-
+ fp = gdTestFileOpen("gif/bug00066.gif");
im = gdImageCreateFromGif(fp);
fclose(fp);
- sprintf(path, "%s/gif/bug00066_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
+ if (!gdAssertImageEqualsToFile("gif/bug00066_exp.png", im)) {
error = 1;
}
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
index 27d6481175e..43b9e3b15c9 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
@@ -5,6 +5,7 @@
int main()
{
gdImagePtr im, im2, im3;
+ char *file;
FILE *fp;
int black, trans;
int error = 0;
@@ -16,28 +17,30 @@ int main()
return 1;
}
im->interlace = 1;
- fp = fopen("bug00181.gif", "wb");
+ file = gdTestTempFile("bug00181.gif");
+ fp = fopen(file, "wb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for writing.\n", "bug00181.gif");
+ gdTestErrorMsg("Cannot open <%s> for writing.\n", file);
return 1;
}
gdImageGif(im, fp);
gdImageDestroy(im);
fclose(fp);
- fp = fopen("bug00181.gif", "rb");
+ fp = fopen(file, "rb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for reading.\n", "bug00181.gif");
+ gdTestErrorMsg("Cannot open <%s> for reading.\n", file);
return 1;
}
im = gdImageCreateFromGif(fp);
fclose(fp);
if (!im) {
- gdTestErrorMsg("Cannot create image from <%s>\n", "bug00181.gif");
+ gdTestErrorMsg("Cannot create image from <%s>\n", file);
return 1;
}
error = !im->interlace;
gdImageDestroy(im);
+ free(file);
if (error) return error;
@@ -48,9 +51,10 @@ int main()
black = gdImageColorAllocate(im, 0, 0, 0);
trans = gdImageColorAllocate(im, 1, 1, 1);
gdImageRectangle(im, 0, 0, 10, 10, black);
- fp = fopen("bug00181a.gif", "wb");
+ file = gdTestTempFile("bug00181a.gif");
+ fp = fopen(file, "wb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for writing.\n", "bug00181a.gif");
+ gdTestErrorMsg("Cannot open <%s> for writing.\n", file);
return 1;
}
gdImageGifAnimBegin(im, fp, 1, 3);
@@ -75,15 +79,15 @@ int main()
gdImageDestroy(im2);
gdImageDestroy(im3);
- fp = fopen("bug00181a.gif", "rb");
+ fp = fopen(file, "rb");
if (!fp) {
- gdTestErrorMsg("Cannot open <%s> for reading.\n", "bug00181a.gif");
+ gdTestErrorMsg("Cannot open <%s> for reading.\n", file);
return 1;
}
im = gdImageCreateFromGif(fp);
fclose(fp);
if (!im) {
- gdTestErrorMsg("Cannot create image from <%s>\n", "bug00181a.gif");
+ gdTestErrorMsg("Cannot create image from <%s>\n", file);
return 1;
}
error = !im->interlace;
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00227.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00227.c
index 861006e7447..e25bd9a92a8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/bug00227.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00227.c
@@ -11,6 +11,7 @@
int main()
{
FILE *fp;
+ char *file;
gdImagePtr im0, im1, im2;
int i;
char *buf;
@@ -23,7 +24,8 @@ int main()
gdImageSetPixel(im0, i, 0, c);
}
- fp = fopen("bug00227.gif", "wb");
+ file = gdTestTempFile("bug00227.gif");
+ fp = fopen(file, "wb");
if (!fp) return 1;
gdImageGifAnimBegin(im0, fp, 0, 0);
@@ -55,7 +57,7 @@ int main()
gdImageDestroy(im2);
/* check the Global Color Table flag */
- fp = fopen("bug00227.gif", "rb");
+ fp = fopen(file, "rb");
if (!fp) return 1;
buf = malloc(PROBE_SIZE);
if (!buf) return 1;
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/gif_im2im.c b/Build/source/libs/gd/libgd-src/tests/gif/gif_im2im.c
index a5b0adbdb85..00bd1372e80 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/gif_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/gif/gif_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -23,39 +23,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_GIF(name) do { \
- FILE *fp; \
- \
- fp = fopen("gif_im2im_" #name ".gif", "wb"); \
- if (fp) { \
- gdImageGif(name, fp); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageGif(name, fp); \
+ fclose(fp); \
} while (0)
OUTPUT_GIF(src);
p = gdImageGifPtr(src, &size);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromGifPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_GIF(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt
index 9151f609173..5effc8c0de6 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt
@@ -1,14 +1,12 @@
-
+IF(JPEG_FOUND)
SET(TESTS_FILES
jpeg_im2im
jpeg_null
jpeg_read
jpeg_empty_file
jpeg_resolution
+ bug_github_18
)
+ENDIF(JPEG_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am
new file mode 100644
index 00000000000..bc196b197ba
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am
@@ -0,0 +1,21 @@
+if HAVE_LIBJPEG
+libgd_test_programs += \
+ jpeg/bug_github_18 \
+ jpeg/jpeg_empty_file \
+ jpeg/jpeg_im2im \
+ jpeg/jpeg_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ jpeg/jpeg_read \
+ jpeg/jpeg_resolution
+endif
+endif
+
+EXTRA_DIST += \
+ jpeg/CMakeLists.txt \
+ jpeg/conv_test.jpeg \
+ jpeg/conv_test_exp.png \
+ jpeg/empty.jpeg \
+ jpeg/github_bug_18_exp.jpeg \
+ jpeg/github_bug_18.png
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/bug_github_18.c b/Build/source/libs/gd/libgd-src/tests/jpeg/bug_github_18.c
new file mode 100644
index 00000000000..e8f67af3a45
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/bug_github_18.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include "gd.h"
+#include "gdtest.h"
+
+int main() {
+ gdImagePtr im, imres, imexp;
+ FILE *fp;
+ void *pjpeg;
+ unsigned int status = 0;
+ int size = 0;
+
+ fp = gdTestFileOpen("jpeg/github_bug_18.png");
+ im = gdImageCreateFromPng(fp);
+ fclose(fp);
+
+ if (im == NULL) {
+ gdTestErrorMsg("gdImageCreateFromJpeg failed.\n");
+ return 1;
+ }
+
+ pjpeg = gdImageJpegPtr(im, &size, 100);
+ if (pjpeg == NULL) {
+ status = 1;
+ gdTestErrorMsg("p is null\n");
+ goto door2;
+ }
+
+ if (size <= 0) {
+ status = 1;
+ gdTestErrorMsg("size is non-positive\n");
+ goto door2;
+ }
+
+ imres = gdImageCreateFromJpegPtr(size, pjpeg);
+ if (imres == NULL) {
+ status = 1;
+ goto door2;
+ }
+
+ fp = gdTestFileOpen("jpeg/github_bug_18_exp.jpeg");
+ imexp = gdImageCreateFromJpeg(fp);
+ if (imexp == NULL) {
+ fclose(fp);
+ status = 1;
+ goto door1;
+ }
+
+ if (gdTestImageCompareToImage("jpeg/github_bug_18.png", __LINE__, __FILE__, imexp, imres) != 1) {
+ status = 1;
+ }
+ gdImageDestroy(imexp);
+
+door1:
+ gdImageDestroy(imres);
+
+door2:
+ gdFree(pjpeg);
+ gdImageDestroy(im);
+ return status;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18.png b/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18.png
new file mode 100644
index 00000000000..abb72a9c5df
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18_exp.jpeg b/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18_exp.jpeg
new file mode 100644
index 00000000000..450223a3606
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/github_bug_18_exp.jpeg
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_empty_file.c b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_empty_file.c
index 844dbf43d3e..12ce24110c4 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_empty_file.c
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_empty_file.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -8,17 +7,10 @@ int main()
{
gdImagePtr im;
FILE *fp;
- char path[1024];
gdSetErrorMethod(gdSilence);
- sprintf(path, "%s/jpeg/empty.jpeg", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
- if (!fp) {
- printf("failed, cannot open file\n");
- return 1;
- }
-
+ fp = gdTestFileOpen("jpeg/empty.jpeg");
im = gdImageCreateFromJpeg(fp);
fclose(fp);
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
index 89a72be7ffd..9d113d103a0 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
@@ -14,7 +14,7 @@ int main()
src = gdImageCreateTrueColor(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -25,32 +25,28 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_JPEG(name) do { \
- FILE *fp; \
- \
- fp = fopen("jpeg_im2im_" #name ".jpeg", "wb"); \
- if (fp) { \
- gdImageJpeg(name, fp, 100); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageJpeg(name, fp, 100); \
+ fclose(fp); \
} while (0)
OUTPUT_JPEG(src);
p = gdImageJpegPtr(src, &size, 100);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromJpegPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_JPEG(dst);
@@ -58,7 +54,7 @@ int main()
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
#endif
gdImageDestroy(dst);
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_read.c b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_read.c
index 64130ce125a..42098fdda72 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_read.c
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_read.c
@@ -1,14 +1,9 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
#include "gdtest.h"
#include <jpeglib.h>
-#ifdef _MSC_VER
-# define snprintf _snprintf
-#endif
-
int main()
{
#if defined(JPEG_LIB_VERSION_MAJOR) && JPEG_LIB_VERSION_MAJOR >= 8
@@ -16,16 +11,8 @@ int main()
return 0;
#else
gdImagePtr im;
- FILE *fp;
- char path[1024];
-
- snprintf(path, sizeof(path)-1, "%s/jpeg/conv_test.jpeg", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
- if (!fp) {
- gdTestErrorMsg("failed, cannot open file: %s\n", path);
- return 1;
- }
-
+ int error = 0;
+ FILE *fp = gdTestFileOpen("jpeg/conv_test.jpeg");
im = gdImageCreateFromJpeg(fp);
fclose(fp);
@@ -33,13 +20,10 @@ int main()
gdTestErrorMsg("gdImageCreateFromJpeg failed.\n");
return 1;
}
- snprintf(path, sizeof(path), "%s/jpeg/conv_test_exp.png", GDTEST_TOP_DIR);
- if (!gdAssertImageEqualsToFile(path, im)) {
- gdTestErrorMsg("gdAssertImageEqualsToFile failed: <%s>.\n", path);
- gdImageDestroy(im);
- return 1;
- }
+ if (!gdAssertImageEqualsToFile("jpeg/conv_test_exp.png", im))
+ error = 1;
- return 0;
+ gdImageDestroy(im);
+ return error;
#endif
}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt
index 128b51df0ce..5235417eaae 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt
@@ -1,4 +1,4 @@
-
+IF(PNG_FOUND)
SET(TESTS_FILES
png_im2im
png_null
@@ -9,9 +9,6 @@ SET(TESTS_FILES
bug00088
bug00193
)
+ENDIF(PNG_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am
new file mode 100644
index 00000000000..01c48036cc7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am
@@ -0,0 +1,20 @@
+if HAVE_LIBPNG
+libgd_test_programs += \
+ png/bug00011 \
+ png/bug00033 \
+ png/bug00086 \
+ png/bug00088 \
+ png/bug00193 \
+ png/png_im2im \
+ png/png_null \
+ png/png_resolution
+endif
+
+EXTRA_DIST += \
+ png/CMakeLists.txt \
+ png/bug00033.png \
+ png/bug00088_1.png \
+ png/bug00088_1_exp.png \
+ png/bug00088_2.png \
+ png/bug00088_2_exp.png \
+ png/emptyfile
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00011.c b/Build/source/libs/gd/libgd-src/tests/png/bug00011.c
index 865c87ea5cd..f58ab61e2aa 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/bug00011.c
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00011.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -8,14 +7,8 @@ int main()
{
gdImagePtr im;
FILE *fp;
- char path[2048];
- sprintf(path, "%s/png/emptyfile", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
- if (!fp) {
- fprintf(stderr, "failed, cannot open file: %s\n", path);
- return 1;
- }
+ fp = gdTestFileOpen("png/emptyfile");
im = gdImageCreateFromPng(fp);
fclose(fp);
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00033.c b/Build/source/libs/gd/libgd-src/tests/png/bug00033.c
index f7e90f0824c..faf0a183590 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/bug00033.c
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00033.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -8,17 +7,10 @@ int main()
{
gdImagePtr im;
FILE *fp;
- char path[1024];
gdSetErrorMethod(gdSilence);
- sprintf(path, "%s/png/bug00033.png", GDTEST_TOP_DIR);
- fp = fopen(path, "rb");
- if (!fp) {
- printf("failed, cannot open file <%s>\n", path);
- return 1;
- }
-
+ fp = gdTestFileOpen("png/bug00033.png");
im = gdImageCreateFromPng(fp);
fclose(fp);
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00086.c b/Build/source/libs/gd/libgd-src/tests/png/bug00086.c
index ef9d43b2b56..f29b5d73e20 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/bug00086.c
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00086.c
@@ -1,4 +1,3 @@
-/* $Id$ */
/* id: gdbad3.c, Xavier Roche, May. 2007 */
/* gcc gdbad3.c -o bad -lgd && ./bad */
@@ -17,7 +16,7 @@ int main(void)
if ( ( im = gdImageCreateFromPngPtr(93, (char*) &pngdata[0]) ) == NULL) {
return 0;
} else {
- fprintf(stderr, "failed!\n");
+ gdTestErrorMsg("failed!\n");
gdImageDestroy(im);
return 1;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00088.c b/Build/source/libs/gd/libgd-src/tests/png/bug00088.c
index 78495aa4410..5c0ab5834a0 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/bug00088.c
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00088.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -9,7 +8,7 @@ int main()
int error;
gdImagePtr im;
FILE *fp;
- char path[1024];
+ char *path;
const char * files[2] = {"bug00088_1.png", "bug00088_2.png"};
const char * files_exp[2] = {"bug00088_1_exp.png", "bug00088_2_exp.png"};
@@ -18,13 +17,7 @@ int main()
for (i = 0; i < cnt; i++) {
- sprintf(path, "%s/png/%s", GDTEST_TOP_DIR, files[i]);
- fp = fopen(path, "rb");
- if (!fp) {
- printf("failed, cannot open file <%s>\n", path);
- return 1;
- }
-
+ fp = gdTestFileOpen2("png", files[i]);
im = gdImageCreateFromPng(fp);
fclose(fp);
@@ -33,10 +26,12 @@ int main()
continue;
}
- sprintf(path, "%s/png/%s", GDTEST_TOP_DIR, files_exp[i]);
+ path = gdTestFilePath2("png", files_exp[i]);
+
if (!gdAssertImageEqualsToFile(path, im)) {
error |= 1;
}
+ free(path);
gdImageDestroy(im);
}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/png_im2im.c b/Build/source/libs/gd/libgd-src/tests/png/png_im2im.c
index bac5e13aeb7..e02d057c220 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/png_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/png/png_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -23,39 +23,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_PNG(name) do { \
- FILE *fp; \
- \
- fp = fopen("png_im2im_" #name ".png", "wb"); \
- if (fp) { \
- gdImagePng(name, fp); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImagePng(name, fp); \
+ fclose(fp); \
} while (0)
OUTPUT_PNG(src);
p = gdImagePngPtr(src, &size);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromPngPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_PNG(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/test_config.h.in b/Build/source/libs/gd/libgd-src/tests/test_config.h.in
index c1bb988c842..f29f20a5d64 100644
--- a/Build/source/libs/gd/libgd-src/tests/test_config.h.in
+++ b/Build/source/libs/gd/libgd-src/tests/test_config.h.in
@@ -1,3 +1,9 @@
-/* Define the full path to the top src dir, required to get the path
- * of each input data */
-#define GDTEST_TOP_DIR "@srcdir@"
+#ifndef GD_TEST_CONFIG_H
+#define GD_TEST_CONFIG_H
+
+
+/* Define the full path to the top src dir, required to get the path
+ * of each input data */
+#define GDTEST_TOP_DIR "@srcdir@"
+#endif
+
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt
index 48f9412fb09..695a812a401 100644
--- a/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt
@@ -1,10 +1,10 @@
-
SET(TESTS_FILES
tga_null
+ bug00084
+ bug00247
+ bug00247a
+ bug00248
+ bug00248a
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am
new file mode 100644
index 00000000000..dff828fe395
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am
@@ -0,0 +1,15 @@
+libgd_test_programs += \
+ tga/bug00084 \
+ tga/bug00247 \
+ tga/bug00247a \
+ tga/bug00248 \
+ tga/bug00248a \
+ tga/tga_null
+
+EXTRA_DIST += \
+ tga/CMakeLists.txt \
+ tga/bug00084.tga \
+ tga/bug00247.tga \
+ tga/bug00247a.tga \
+ tga/bug00248.tga \
+ tga/bug00248a.tga
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00084.c b/Build/source/libs/gd/libgd-src/tests/tga/bug00084.c
new file mode 100644
index 00000000000..7d4ca92457d
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00084.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp = gdTestFileOpen("tga/bug00084.tga");
+ im = gdImageCreateFromTga(fp);
+ gdImageDestroy(im);
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00084.tga b/Build/source/libs/gd/libgd-src/tests/tga/bug00084.tga
new file mode 100644
index 00000000000..201e1450760
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00084.tga
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00247.c b/Build/source/libs/gd/libgd-src/tests/tga/bug00247.c
new file mode 100644
index 00000000000..49b1610cc0f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00247.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp = gdTestFileOpen("tga/bug00247.tga");
+ im = gdImageCreateFromTga(fp);
+ gdTestAssert(im == NULL);
+ fclose(fp);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00247.tga b/Build/source/libs/gd/libgd-src/tests/tga/bug00247.tga
new file mode 100644
index 00000000000..0fe4cac9eef
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00247.tga
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.c b/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.c
new file mode 100644
index 00000000000..1c825f94c9f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.c
@@ -0,0 +1,19 @@
+/*
+We test that a 8bpp TGA file will be gracefully rejected by
+gdImageCreateFromTga().
+*/
+
+#include <stdio.h>
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp = gdTestFileOpen("tga/bug00247a.tga");
+ im = gdImageCreateFromTga(fp);
+ gdTestAssert(im == NULL);
+ fclose(fp);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.tga b/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.tga
new file mode 100644
index 00000000000..65e55abeae2
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00247a.tga
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00248.c b/Build/source/libs/gd/libgd-src/tests/tga/bug00248.c
new file mode 100644
index 00000000000..5eb60464276
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00248.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main(int argc, char **argv)
+{
+ gdImagePtr im;
+ FILE *fp = gdTestFileOpen("tga/bug00248.tga");
+ im = gdImageCreateFromTga(fp);
+ gdTestAssert(im == NULL);
+ fclose(fp);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00248.tga b/Build/source/libs/gd/libgd-src/tests/tga/bug00248.tga
new file mode 100644
index 00000000000..f0a56f42e9f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00248.tga
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.c b/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.c
new file mode 100644
index 00000000000..8308eb5160a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.c
@@ -0,0 +1,16 @@
+/* See also <https://github.com/libgd/libgd/pull/257> */
+
+#include <stdio.h>
+
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp = gdTestFileOpen("tga/bug00248a.tga");
+ im = gdImageCreateFromTga(fp);
+ gdTestAssert(im == NULL);
+ fclose(fp);
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.tga b/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.tga
new file mode 100644
index 00000000000..29c4e26951d
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tga/bug00248a.tga
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt
index da49800542e..1f4f4c06f28 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt
@@ -1,11 +1,9 @@
-
+IF(TIFF_FOUND)
SET(TESTS_FILES
tiff_im2im
tiff_null
+ tiff_dpi
)
+ENDIF(TIFF_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am
new file mode 100644
index 00000000000..fd396990973
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am
@@ -0,0 +1,9 @@
+if HAVE_LIBTIFF
+libgd_test_programs += \
+ tiff/tiff_dpi \
+ tiff/tiff_im2im \
+ tiff/tiff_null
+endif
+
+EXTRA_DIST += \
+ tiff/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c
new file mode 100644
index 00000000000..347abf179a9
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c
@@ -0,0 +1,84 @@
+/*
+ * Test that reading and writing image resolution values to/from TIFF files
+ * works correctly. Set the image resolution, write the file, read the file
+ * back and test that the image resolution comes back correct.
+ */
+#ifdef _WIN32
+#include <stdio.h>
+int main()
+{
+ printf("skip");
+ return 0;
+}
+#else
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr src, dst;
+ int r, res_x, res_y;
+ void *p;
+ int size = 0;
+ int status = 0;
+
+ src = gdImageCreate(100, 100);
+ if (src == NULL) {
+ gdTestErrorMsg("could not create src\n");
+ return 1;
+ }
+ r = gdImageColorAllocate(src, 0xFF, 0, 0);
+ gdImageFilledRectangle(src, 0, 0, 99, 99, r);
+
+ // gd default DPI is 96; libtiff default is 72.
+ // Use something else so we know the value has been
+ // written / read correctly.
+ res_x = 100;
+ res_y = 200;
+ src->res_x = res_x;
+ src->res_y = res_y;
+
+#define OUTPUT_TIFF(name) do { \
+ FILE *fp = gdTestTempFp(); \
+ gdImageTiff(name, fp); \
+ fclose(fp); \
+ } while (0)
+
+ OUTPUT_TIFF(src);
+ p = gdImageTiffPtr(src, &size);
+ if (p == NULL) {
+ status = 1;
+ gdTestErrorMsg("p is null\n");
+ goto door0;
+ }
+ if (size <= 0) {
+ status = 1;
+ gdTestErrorMsg("size is non-positive\n");
+ goto door1;
+ }
+
+ dst = gdImageCreateFromTiffPtr(size, p);
+ if (dst == NULL) {
+ status = 1;
+ gdTestErrorMsg("could not create dst\n");
+ goto door1;
+ }
+
+ if (dst->res_x != res_x) {
+ status = 1;
+ gdTestErrorMsg("mismatch in res_x (got %d, expected %d)", dst->res_x, res_x);
+ }
+
+ if (dst->res_y != res_y) {
+ status = 1;
+ gdTestErrorMsg("mismatch in res_y (got %d, expected %d)", dst->res_y, res_y);
+ }
+
+ gdImageDestroy(dst);
+door1:
+ gdFree(p);
+door0:
+ gdImageDestroy(src);
+ return status;
+}
+#endif \ No newline at end of file
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c
index 4b6136d4b92..b6b240e3ce3 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c
@@ -1,3 +1,11 @@
+#ifdef _WIN32
+#include <stdio.h>
+int main()
+{
+ printf("skip");
+ return 0;
+}
+#else
#include "gd.h"
#include "gdtest.h"
@@ -8,13 +16,11 @@ int main()
void *p;
int size = 0;
int status = 0;
-#if 0
CuTestImageResult result = {0, 0};
-#endif
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
r = gdImageColorAllocate(src, 0xFF, 0, 0);
@@ -25,42 +31,38 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_TIFF(name) do { \
- FILE *fp; \
- \
- fp = fopen("tiff_im2im_" #name ".tiff", "wb"); \
- if (fp) { \
- gdImageTiff(name, fp); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageTiff(name, fp); \
+ fclose(fp); \
} while (0)
OUTPUT_TIFF(src);
p = gdImageTiffPtr(src, &size);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromTiffPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_TIFF(dst);
-#if 0
+
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
printf("pixels changed: %d\n", result.pixels_changed);
}
-#endif
+
gdImageDestroy(dst);
door1:
gdFree(p);
@@ -68,3 +70,4 @@ door0:
gdImageDestroy(src);
return status;
}
+#endif \ No newline at end of file
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c
index ccaade7498f..19b64f771c3 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c
@@ -1,3 +1,11 @@
+#ifdef _WIN32
+#include <stdio.h>
+int main()
+{
+ printf("skip");
+ return 0;
+}
+#else
#include "gd.h"
int main()
@@ -12,3 +20,4 @@ int main()
gdImageTiff(im, NULL); /* noop safely */
return 0;
}
+#endif \ No newline at end of file
diff --git a/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt
index 531933a8558..2c988680f8f 100644
--- a/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt
@@ -1,11 +1,6 @@
-
SET(TESTS_FILES
wbmp_im2im
wbmp_null
)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/wbmp/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/wbmp/Makemodule.am
new file mode 100644
index 00000000000..fb12272cd83
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/wbmp/Makemodule.am
@@ -0,0 +1,10 @@
+libgd_test_programs += \
+ wbmp/wbmp_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
+ wbmp/wbmp_im2im
+endif
+
+EXTRA_DIST += \
+ wbmp/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/wbmp/wbmp_im2im.c b/Build/source/libs/gd/libgd-src/tests/wbmp/wbmp_im2im.c
index 826c7fa953c..1b1ebb2452b 100644
--- a/Build/source/libs/gd/libgd-src/tests/wbmp/wbmp_im2im.c
+++ b/Build/source/libs/gd/libgd-src/tests/wbmp/wbmp_im2im.c
@@ -12,7 +12,7 @@ int main()
src = gdImageCreate(100, 100);
if (src == NULL) {
- printf("could not create src\n");
+ gdTestErrorMsg("could not create src\n");
return 1;
}
gdImageColorAllocate(src, 0xFF, 0xFF, 0xFF); /* allocate white for background color */
@@ -21,39 +21,35 @@ int main()
gdImageEllipse(src, 70, 25, 30, 20, b);
#define OUTPUT_WBMP(name) do { \
- FILE *fp; \
- \
- fp = fopen("wbmp_im2im_" #name ".wbmp", "wb"); \
- if (fp) { \
- gdImageWBMP(name, 1, fp); \
- fclose(fp); \
- } \
+ FILE *fp = gdTestTempFp(); \
+ gdImageWBMP(name, 1, fp); \
+ fclose(fp); \
} while (0)
OUTPUT_WBMP(src);
p = gdImageWBMPPtr(src, &size, 1);
if (p == NULL) {
status = 1;
- printf("p is null\n");
+ gdTestErrorMsg("p is null\n");
goto door0;
}
if (size <= 0) {
status = 1;
- printf("size is non-positive\n");
+ gdTestErrorMsg("size is non-positive\n");
goto door1;
}
dst = gdImageCreateFromWBMPPtr(size, p);
if (dst == NULL) {
status = 1;
- printf("could not create dst\n");
+ gdTestErrorMsg("could not create dst\n");
goto door1;
}
OUTPUT_WBMP(dst);
gdTestImageDiff(src, dst, NULL, &result);
if (result.pixels_changed > 0) {
status = 1;
- printf("pixels changed: %d\n", result.pixels_changed);
+ gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed);
}
gdImageDestroy(dst);
door1:
diff --git a/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt
new file mode 100644
index 00000000000..32e2c1d8347
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt
@@ -0,0 +1,7 @@
+IF(WEBP_FOUND)
+SET(TESTS_FILES
+ bug00111
+)
+ENDIF(WEBP_FOUND)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/webp/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/webp/Makemodule.am
new file mode 100644
index 00000000000..b03db6e239e
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/webp/Makemodule.am
@@ -0,0 +1,7 @@
+if HAVE_LIBWEBP
+libgd_test_programs += \
+ webp/bug00111
+endif
+
+EXTRA_DIST += \
+ webp/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/webp/bug00111.c b/Build/source/libs/gd/libgd-src/tests/webp/bug00111.c
new file mode 100644
index 00000000000..16f9504fbff
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/webp/bug00111.c
@@ -0,0 +1,25 @@
+#include "gd.h"
+#include <stdio.h>
+#include <stdlib.h>
+#ifndef _WIN32
+# include <unistd.h>
+#endif
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ im = gdImageCreateTrueColor(20, 20);
+ if (!im) {
+ return 0;
+ }
+
+ fp = gdTestTempFp();
+ gdImageWebp(im, fp);
+ fclose(fp);
+
+ gdImageDestroy(im);
+ return 0;
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
new file mode 100644
index 00000000000..183cf5eaf3f
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
@@ -0,0 +1,5 @@
+LIST(APPEND TESTS_FILES
+ github_bug_170
+)
+
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
new file mode 100644
index 00000000000..ba1eabd5bd4
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
@@ -0,0 +1,5 @@
+libgd_test_programs += \
+ xbm/github_bug_170
+
+EXTRA_DIST += \
+ xbm/CMakeLists.txt
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_170.c b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_170.c
new file mode 100644
index 00000000000..3900da7b1b6
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_170.c
@@ -0,0 +1,50 @@
+/*
+ Test writing of XBM images with a width that is not a multiple of 8
+
+ We create an image with a width of 11 pixels, and draw a circle on it.
+ To test that the padding is correctly applied, we write the image to disk
+ and assert that the number of bytes written matches our expectation.
+
+ See also <https://github.com/libgd/libgd/issues/170>.
+*/
+
+#include <inttypes.h>
+#include "gd.h"
+#include "gdtest.h"
+#ifdef _WIN32
+
+int main()
+{
+ /* skip for now */
+ return 0;
+}
+#else
+int main()
+{
+ gdImagePtr im;
+ int black;
+ FILE *outFile;
+ gdIOCtx *out;
+ off_t length;
+
+ /* create the test image */
+ im = gdImageCreate(11, 11);
+ gdImageColorAllocate(im, 255, 255, 255);
+ black = gdImageColorAllocate(im, 0, 0, 0);
+ gdImageArc(im, 5, 5, 10, 10, 0, 360, black);
+
+ /* write the file to disk, note the file length and delete the file */
+ outFile = gdTestTempFp();
+ out = gdNewFileCtx(outFile);
+ gdTestAssert(out != NULL);
+ gdImageXbmCtx(im, "github_bug_170.xbm", 1, out);
+ out->gd_free(out);
+ length = ftello(outFile);
+ fclose(outFile);
+
+ gdImageDestroy(im);
+
+ gdTestAssertMsg(length == 250, "expected to write 250 bytes; %jd bytes written", (intmax_t) length);
+ return gdNumFailures();
+}
+#endif \ No newline at end of file
diff --git a/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt
index e0a789c807b..1301bc3f824 100644
--- a/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt
@@ -1,12 +1,9 @@
-
+IF(XPM_FOUND)
SET(TESTS_FILES
bug00166
bug00185
color_name
)
+ENDIF(XPM_FOUND)
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} gdTest)
- add_test(NAME ${test_name} COMMAND ${test_name})
-ENDFOREACH(test_name)
+ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/xpm/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/xpm/Makemodule.am
new file mode 100644
index 00000000000..39350a6ffdd
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/Makemodule.am
@@ -0,0 +1,13 @@
+if HAVE_LIBXPM
+libgd_test_programs += \
+ xpm/bug00166 \
+ xpm/bug00185 \
+ xpm/color_name
+endif
+
+EXTRA_DIST += \
+ xpm/CMakeLists.txt \
+ xpm/bug00166.xpm \
+ xpm/bug00185.xpm \
+ xpm/bug00185_damaged.xpm \
+ xpm/color_name.xpm
diff --git a/Build/source/libs/gd/libgd-src/tests/xpm/bug00166.c b/Build/source/libs/gd/libgd-src/tests/xpm/bug00166.c
index 2ffd6af25a2..f4cf7d1ce59 100644
--- a/Build/source/libs/gd/libgd-src/tests/xpm/bug00166.c
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/bug00166.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -8,11 +7,12 @@ int
main(void)
{
gdImagePtr im;
- char path[1024];
+ char *path;
int c, result;
- sprintf(path, "%s/xpm/bug00166.xpm", GDTEST_TOP_DIR);
+ path = gdTestFilePath("xpm/bug00166.xpm");
im = gdImageCreateFromXpm(path);
+ free(path);
if (!im) {
return 2;
}
diff --git a/Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c b/Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c
index 2dda809cc96..3056ed950ea 100644
--- a/Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/bug00185.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -9,15 +8,17 @@ int
main()
{
gdImagePtr im;
- char path[1024];
+ char *path;
- sprintf(path, "%s/xpm/bug00185.xpm", GDTEST_TOP_DIR);
+ path = gdTestFilePath("xpm/bug00185.xpm");
im = gdImageCreateFromXpm(path);
+ free(path);
if (!im) return 1;
gdImageDestroy(im);
- sprintf(path, "%s/xpm/bug00185_damaged.xpm", GDTEST_TOP_DIR);
+ path = gdTestFilePath("xpm/bug00185_damaged.xpm");
im = gdImageCreateFromXpm(path);
+ free(path);
if (!im) return 0;
gdImageDestroy(im);
diff --git a/Build/source/libs/gd/libgd-src/tests/xpm/color_name.c b/Build/source/libs/gd/libgd-src/tests/xpm/color_name.c
index 22481785a83..894b4b7871a 100644
--- a/Build/source/libs/gd/libgd-src/tests/xpm/color_name.c
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/color_name.c
@@ -1,4 +1,3 @@
-/* $Id$ */
#include "gd.h"
#include <stdio.h>
#include <stdlib.h>
@@ -8,11 +7,12 @@ int
main(void)
{
gdImagePtr im;
- char path[1024];
+ char *path;
int c, result;
- sprintf(path, "%s/xpm/color_name.xpm", GDTEST_TOP_DIR);
+ path = gdTestFilePath("xpm/color_name.xpm");
im = gdImageCreateFromXpm(path);
+ free(path);
if (!im) {
return 2;
}