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/bmp/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/fontconfig/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt19
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/bug00209.c28
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/bug00209.gd2bin0 -> 1050 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gd2/gd2_read.c6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagebrightness/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolor/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecontrast/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c17
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageflip/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageflip/gdimageflip.c2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/CMakeLists.txt3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.c51
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.pngbin0 -> 2436 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt14
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagenegate/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am1
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringft/gdimagestringft_bbox.c3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am1
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am1
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt16
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/uninitialized_memory_read.c42
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/unitialized_memory_read.gifbin0 -> 11464 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/bug00338.c51
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/Makemodule.am4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00338.c48
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00381_1.c31
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00381_2.c35
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00381_2.gdbin0 -> 10008 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am6
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt3
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am7
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c10
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_im2im.c9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_null.c9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.c26
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.tiffbin0 -> 606 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw_exp.pngbin0 -> 330 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt9
-rw-r--r--Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt2
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c35
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.pngbin0 -> 111 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c32
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.pngbin0 -> 112 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt2
101 files changed, 674 insertions, 128 deletions
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 a42629b8bcf..8f2a88f9753 100644
--- a/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/bmp/CMakeLists.txt
@@ -1,8 +1,13 @@
-SET(TESTS_FILES
- bmp_im2im
+LIST(APPEND TESTS_FILES
bmp_null
bug00275
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ bmp_im2im
bug00276
)
+ENDIF(PNG_FOUND)
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
index 27dc7ecd00a..f3f1660e9ce 100644
--- a/Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/bmp/Makemodule.am
@@ -1,11 +1,11 @@
libgd_test_programs += \
bmp/bmp_null \
- bmp/bug00275 \
- bmp/bug00276
+ bmp/bug00275
if HAVE_LIBPNG
libgd_test_programs += \
- bmp/bmp_im2im
+ bmp/bmp_im2im \
+ bmp/bug00276
endif
EXTRA_DIST += \
diff --git a/Build/source/libs/gd/libgd-src/tests/fontconfig/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/fontconfig/CMakeLists.txt
index 159130dffb2..f78c4cf11f3 100644
--- a/Build/source/libs/gd/libgd-src/tests/fontconfig/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/fontconfig/CMakeLists.txt
@@ -1,7 +1,9 @@
-IF(FREETYPE_FOUND AND FONTCONFIG_FOUND)
+if(FONTCONFIG_FOUND)
+IF(FREETYPE_FOUND)
LIST(APPEND TESTS_FILES
basic
)
-ENDIF(FREETYPE_FOUND AND FONTCONFIG_FOUND)
+ENDIF(FREETYPE_FOUND)
+ENDIF(FONTCONFIG_FOUND)
ADD_GD_TESTS()
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 728c226c661..9a1e0181a76 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/CMakeLists.txt
@@ -1,7 +1,9 @@
IF(FREETYPE_FOUND)
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00132
)
+ENDIF(PNG_FOUND)
ENDIF(FREETYPE_FOUND)
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
index d2524931193..312759a176f 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/Makemodule.am
@@ -1,7 +1,9 @@
if HAVE_LIBFREETYPE
+if HAVE_LIBPNG
libgd_test_programs += \
freetype/bug00132
endif
+endif
EXTRA_DIST += \
freetype/CMakeLists.txt \
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 713dd2d023f..42ed5b17dc6 100644
--- a/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c
+++ b/Build/source/libs/gd/libgd-src/tests/freetype/bug00132.c
@@ -11,6 +11,9 @@ int main()
char *path;
char *ret = NULL;
+ /* disable subpixel hinting */
+ putenv("FREETYPE_PROPERTIES=truetype:interpreter-version=35");
+
im = gdImageCreateTrueColor(50, 30);
if (!im) {
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 1fc57932e6c..6053ba50826 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gd/CMakeLists.txt
@@ -1,8 +1,13 @@
-SET(TESTS_FILES
- gd_im2im
+LIST(APPEND TESTS_FILES
gd_null
gd_num_colors
gd_versiontest
)
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ gd_im2im
+)
+ENDIF(PNG_FOUND)
+
ADD_GD_TESTS()
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 8c27babea2c..d60823130d8 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/CMakeLists.txt
@@ -1,12 +1,25 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug_289
+ bug00209
bug00309
bug00354
gd2_empty_file
- gd2_im2im
- gd2_null
php_bug_72339
+ gd2_read_corrupt
too_few_image_data
)
+IF(ZLIB_FOUND)
+LIST(APPEND TESTS_FILES
+ gd2_null
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ gd2_im2im
+ gd2_read
+)
+ENDIF(PNG_FOUND)
+ENDIF(ZLIB_FOUND)
+
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
index add4f34a76f..9c53b85649a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/Makemodule.am
@@ -1,5 +1,6 @@
libgd_test_programs += \
gd2/bug_289 \
+ gd2/bug00209 \
gd2/bug00309 \
gd2/bug00354 \
gd2/gd2_empty_file \
@@ -20,6 +21,7 @@ endif
EXTRA_DIST += \
gd2/CMakeLists.txt \
+ gd2/bug00209.gd2 \
gd2/bug00354a.gd2 \
gd2/bug00354b.gd2 \
gd2/conv_gd2_exp.gd2 \
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.c b/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.c
new file mode 100644
index 00000000000..4379d389ccc
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.c
@@ -0,0 +1,28 @@
+/**
+ * Regression test for github issue #209
+ *
+ * We're testing that bug00209.gd2, which claims to have 12336 x 48 pixels, but
+ * actually provides not enough image data, is rejected, i.e. that
+ * gdImageCreateFromGd2() returns NULL
+ *
+ * See <https://github.com/libgd/libgd/issues/209>.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ fp = gdTestFileOpen2("gd2", "bug00209.gd2");
+ gdTestAssert(fp != NULL);
+ im = gdImageCreateFromGd2(fp);
+ gdTestAssert(im == NULL);
+ fclose(fp);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.gd2 b/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.gd2
new file mode 100644
index 00000000000..1c797d1acfa
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gd2/bug00209.gd2
Binary files differ
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 94fe069f6c6..8ce8bd15d57 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
@@ -5,7 +5,7 @@
int main(int argc, char *argv[])
{
- int error, i = 0;
+ int error = 0, i = 0;
gdImagePtr im, exp;
FILE *fp;
char *path[] = {
@@ -40,8 +40,6 @@ int main(int argc, char *argv[])
gdTestErrorMsg("image %s differs from expected result\n", path[i]);
gdImageDestroy(im);
error = 1;
- } else {
- error = 0;
}
if (exp) {
gdImageDestroy(exp);
@@ -52,8 +50,6 @@ int main(int argc, char *argv[])
gdTestErrorMsg("image %s should have failed to be loaded\n", path[i]);
gdImageDestroy(im);
error = 1;
- } else {
- error = 0;
}
}
i++;
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 dcfdc54ca5e..fc8ca57b29d 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagearc/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00079
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagebrightness/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagebrightness/CMakeLists.txt
index 381c74d06e2..802c38220ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagebrightness/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagebrightness/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecolor/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecolor/CMakeLists.txt
index 381c74d06e2..802c38220ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolor/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolor/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 4f846c0b228..be903abe33e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorclosest/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagecolorclosest
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 383a30277b7..1cc19958d22 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolordeallocate/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdimagecolordeallocate
)
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 b627fa5682a..294fe4f7c9b 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorexact/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagecolorexact
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 4f7af18ecea..f2495d973ee 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorreplace/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagecolorreplace
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 a3e7bc21658..5b553388668 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolorresolve/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagecolorresolve
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 ce838725a61..f3a83f33f8f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecolortransparent/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdimagecolortransparent
)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecontrast/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecontrast/CMakeLists.txt
index 381c74d06e2..802c38220ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecontrast/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecontrast/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt
index 381c74d06e2..802c38220ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 024ad5a744a..f5863008810 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopy/CMakeLists.txt
@@ -1,6 +1,11 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00007
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00081
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt
index 636c81184ba..4d0d66ba436 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyresampled/CMakeLists.txt
@@ -1,8 +1,10 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
basic_alpha
exact_alpha
bug00201
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 e2d8249f91d..7f1a678670a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecopyrotated/CMakeLists.txt
@@ -1,5 +1,7 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00020
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt
index 4fee5c33f6b..ba48d643352 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/CMakeLists.txt
@@ -1,5 +1,9 @@
-SET(TESTS_FILES
+IF(TIFF_FOUND)
+if(WEBP_FOUND)
+LIST(APPEND TESTS_FILES
gdnametest
)
+ENDIF(WEBP_FOUND)
+ENDIF(TIFF_FOUND)
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
index b537cbc0a3f..df86097df95 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/Makemodule.am
@@ -1,5 +1,9 @@
+if HAVE_LIBTIFF
+if HAVE_LIBWEBP
libgd_test_programs += \
gdimagefile/gdnametest
+endif
+endif
EXTRA_DIST += \
gdimagefile/CMakeLists.txt \
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 66da484e821..2b3cc322c45 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefile/gdnametest.c
@@ -69,13 +69,10 @@ do_test() {
{"img.wbmp", 0, 1, 0},
{"img.bmp", 0, 1, 0},
{"img-ref.xpm", 0, 0, 1},
-
- // These break the test so I'm skipping them since the point
- // of this test is not those loaders.
- {"img-ref.xbm", 0, -1, 1},
- {"img-ref.tga", 0, -1, 1},
- {"img.webp", 0, -1, 0},
- {"img.tiff", 0, -1, 0},
+ {"img-ref.xbm", 0, 1, 1},
+ {"img-ref.tga", 0, 1, 1},
+ {"img.webp", 10, 1, 0},
+ {"img.tiff", 0, 1, 0},
{NULL, 0}
};
@@ -84,6 +81,7 @@ do_test() {
gdImagePtr orig, copy;
int status;
char *full_filename = NULL;
+ unsigned int pixels;
/* Some image readers are buggy and crash the program so we
* skip them. Bug fixers should remove these from the list of
@@ -97,7 +95,7 @@ do_test() {
* it. (If it's one of the built-in types, *that* a different
* problem; we assert that here.) */
if (!gdSupportsFileType(names[n].nm, 0)) {
- gdTestAssertMsg(!names[n].required, "GD doesn't support required file type: %s\n", full_filename);
+ gdTestAssertMsg(!names[n].required, "GD doesn't support required file type: %s\n", names[n].nm);
continue;
}/* if */
@@ -120,7 +118,8 @@ do_test() {
gdTestAssertMsg(!!copy, "Failed to load %s\n", full_filename);
if (!copy) continue;
- gdTestAssertMsg(gdMaxPixelDiff(orig, copy) <= names[n].maxdiff,"Pixels different on %s\n", full_filename, full_filename);
+ pixels = gdMaxPixelDiff(orig, copy);
+ gdTestAssertMsg(pixels <= names[n].maxdiff, "%u pixels different on %s\n", pixels, full_filename);
if (!names[n].readonly) {
status = remove(full_filename);
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 6b09c1bf5cc..457fd8d16a2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefill/CMakeLists.txt
@@ -1,9 +1,11 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00002_1
bug00002_2
bug00002_3
bug00002_4
bug00104_1
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt
index 1a0a2042e2d..ba6d28f49a6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledarc/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
php_bug43828
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 bafe7dd5ac1..5fe4edd1ad4 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledellipse/CMakeLists.txt
@@ -1,7 +1,9 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00010
bug00191
github_bug_00238
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 190dad7f943..030a22464b1 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledpolygon/CMakeLists.txt
@@ -1,4 +1,5 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagefilledpolygon0
gdimagefilledpolygon1
gdimagefilledpolygon2
@@ -7,5 +8,6 @@ SET(TESTS_FILES
php_bug_64641
self_intersecting
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 2b26022ca70..45688733eb3 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilledrectangle/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00004
bug00078
bug00106_gdimagefilledrectangle
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 f03529a6082..fcf18f1a2e5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilltoborder/CMakeLists.txt
@@ -1,6 +1,8 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00037
github_bug_215
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt
index a1b6642984e..7a3c9594d78 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagefilter/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdCopyBlurred
)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageflip/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimageflip/CMakeLists.txt
index 39caf080fb3..c532f01ec94 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageflip/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageflip/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
gdimageflip
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageflip/gdimageflip.c b/Build/source/libs/gd/libgd-src/tests/gdimageflip/gdimageflip.c
index e0a1a2ab3d7..a29e50e18f2 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageflip/gdimageflip.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageflip/gdimageflip.c
@@ -7,7 +7,7 @@
#include "gdtest.h"
-static void test_flip(void (*func)(gdImagePtr), const char *filename)
+static void test_flip(void (BGD_STDCALL *func)(gdImagePtr), const char *filename)
{
gdImagePtr im;
FILE *fp;
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/CMakeLists.txt
index 381c74d06e2..b83521dc8f7 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/CMakeLists.txt
@@ -1,5 +1,8 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
+ bug00386
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/Makemodule.am
index e715c5b4235..c6fec00ee3d 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/Makemodule.am
@@ -1,9 +1,11 @@
if HAVE_LIBPNG
libgd_test_programs += \
- gdimagegrayscale/basic
+ gdimagegrayscale/basic \
+ gdimagegrayscale/bug00386
endif
EXTRA_DIST += \
gdimagegrayscale/CMakeLists.txt \
gdimagegrayscale/basic.png \
- gdimagegrayscale/basic_exp.png
+ gdimagegrayscale/basic_exp.png \
+ gdimagegrayscale/bug00386.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.c b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.c
new file mode 100644
index 00000000000..5b6d048130a
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.c
@@ -0,0 +1,51 @@
+/**
+ * Test that gdImageGrayScale() produces pure gray-scale images
+ *
+ * We are reading a PNG image with transparency, apply gdImageGrayScale() and
+ * test that each pixel has equal red, blue and green components. To avoid
+ * flooding the test log, we bail out after the first non gray-scale pixel.
+ *
+ * We also make sure that the image is a truecolor image, since otherwise it is
+ * not guaranteed that all pixels are actually gray-scale.
+ *
+ * See also <https://github.com/libgd/libgd/issues/386>.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ int res;
+ int i, j;
+
+ fp = gdTestFileOpen2("gdimagegrayscale", "bug00386.png");
+ gdTestAssert(fp != NULL);
+ im = gdImageCreateFromPng(fp);
+ gdTestAssert(im != NULL);
+ fclose(fp);
+
+ res = gdImageTrueColor(im);
+ gdTestAssert(res != 0);
+
+ res = gdImageGrayScale(im);
+ gdTestAssert(res != 0);
+
+ for (i = 0; i < gdImageSX(im); i++) {
+ for (j = 0; j < gdImageSY(im); j++) {
+ int color = gdImageGetTrueColorPixel(im, i, j);
+ int red = gdImageRed(im, color);
+ int green = gdImageGreen(im, color);
+ int blue = gdImageBlue(im, color);
+ if (!gdTestAssert(red == green && green == blue)) {
+ return gdNumFailures();
+ }
+ }
+ }
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.png b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.png
new file mode 100644
index 00000000000..b5d5d1f4b25
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagegrayscale/bug00386.png
Binary files differ
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 a1658a61a04..1f8c419a682 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageline/CMakeLists.txt
@@ -1,11 +1,17 @@
-SET(TESTS_FILES
- gdimageline_aa
+LIST(APPEND TESTS_FILES
gdimageline_aa_outofrange
- gdImageAALine_thickness
- github_bug_167
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00077
bug00072
bug00111
+ gdimageline_aa
+ gdimageline_bug5
+ gdImageAALine_thickness
+ github_bug_167
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS(m)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagenegate/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagenegate/CMakeLists.txt
index 381c74d06e2..802c38220ae 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagenegate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagenegate/CMakeLists.txt
@@ -1,5 +1,7 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
basic
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 6ec1a0f15f4..5b3e06922f5 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimageopenpolygon/CMakeLists.txt
@@ -1,8 +1,10 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimageopenpolygon0
gdimageopenpolygon1
gdimageopenpolygon2
gdimageopenpolygon3
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 eadd82a4670..214c80148a9 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepixelate/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdimagepixelate
)
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 e965b73fdd2..647636adcea 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagepolygon/CMakeLists.txt
@@ -1,8 +1,10 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagepolygon0
gdimagepolygon1
gdimagepolygon2
gdimagepolygon3
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 9008d86c77f..e2a2b817e97 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/CMakeLists.txt
@@ -1,9 +1,14 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00003
bug00106_gdimagerectangle
- bug00299
github_bug_00172
point_ordering
)
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ bug00299
+)
+ENDIF(PNG_FOUND)
+
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
index ea9d52b9662..cd49b73fae4 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerectangle/Makemodule.am
@@ -1,10 +1,14 @@
libgd_test_programs += \
gdimagerectangle/bug00003 \
gdimagerectangle/bug00106_gdimagerectangle \
- gdimagerectangle/bug00299 \
gdimagerectangle/github_bug_00172 \
gdimagerectangle/point_ordering
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagerectangle/bug00299
+endif
+
EXTRA_DIST += \
gdimagerectangle/CMakeLists.txt \
gdimagerectangle/bug00299_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt
index ab8b4cfb7ca..01957c5905c 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/CMakeLists.txt
@@ -1,7 +1,14 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+IF(JPEG_FOUND)
+LIST(APPEND TESTS_FILES
bug00067
+)
+ENDIF(JPEG_FOUND)
+
+LIST(APPEND TESTS_FILES
php_bug_64898
php_bug_65070
)
+ENDIF(PNG_FOUND)
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
index 99b2398bb8a..9d375f39b9e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagerotate/Makemodule.am
@@ -1,9 +1,9 @@
+if HAVE_LIBPNG
if HAVE_LIBJPEG
libgd_test_programs += \
gdimagerotate/bug00067
endif
-if HAVE_LIBPNG
libgd_test_programs += \
gdimagerotate/php_bug_64898 \
gdimagerotate/php_bug_65070
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt
index b1d9cf3d85d..1174e6555d0 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00329
bug00330
github_bug_00218
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am
index 771030151df..432ddbeafb6 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescale/Makemodule.am
@@ -1,4 +1,3 @@
-
libgd_test_programs += \
gdimagescale/bug00329 \
gdimagescale/bug00330 \
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 0a9e2167c4c..479afe573aa 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagescatterex/CMakeLists.txt
@@ -1,6 +1,8 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00208_1
bug00208_2
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
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 f969cdf72d3..675bbfd4b62 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/CMakeLists.txt
@@ -1,8 +1,13 @@
-SET(TESTS_FILES
- alpha_blending
+LIST(APPEND TESTS_FILES
bug00186
gdeffectoverlay
gdeffectmultiply
)
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ alpha_blending
+)
+ENDIF(PNG_FOUND)
+
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
index 0a574ad14b1..1eb022453b1 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagesetpixel/Makemodule.am
@@ -1,9 +1,13 @@
libgd_test_programs += \
- gdimagesetpixel/alpha_blending \
gdimagesetpixel/bug00186 \
gdimagesetpixel/gdeffectmultiply \
gdimagesetpixel/gdeffectoverlay
+if HAVE_LIBPNG
+libgd_test_programs += \
+ gdimagesetpixel/alpha_blending
+endif
+
EXTRA_DIST += \
gdimagesetpixel/CMakeLists.txt \
gdimagesetpixel/alphablending_exp.png
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 a38613f9a81..00a8f43cb63 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/CMakeLists.txt
@@ -1,7 +1,9 @@
IF(FREETYPE_FOUND)
-SET(TESTS_FILES
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
gdimagestringft_bbox
)
+ENDIF(PNG_FOUND)
ENDIF(FREETYPE_FOUND)
-ADD_GD_TESTS()
+ADD_GD_TESTS(m)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am
index 0dfe26fb13c..956e1db0d10 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringft/Makemodule.am
@@ -1,7 +1,9 @@
if HAVE_LIBFREETYPE
+if HAVE_LIBPNG
libgd_test_programs += \
gdimagestringft/gdimagestringft_bbox
endif
+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 0161ec8101c..1596a9e7be5 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
@@ -38,6 +38,9 @@ int main()
int error = 0;
FILE *fp;
+ /* disable subpixel hinting */
+ putenv("FREETYPE_PROPERTIES=truetype:interpreter-version=35");
+
path = gdTestFilePath("freetype/DejaVuSans.ttf");
im = gdImageCreate(800, 800);
gdImageColorAllocate(im, 0xFF, 0xFF, 0xFF); /* allocate white for background color */
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 db08ac13a8e..c7130f119a9 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagestringftex/CMakeLists.txt
@@ -1,5 +1,5 @@
IF(FREETYPE_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdimagestringftex_returnfontpathname
)
ENDIF(FREETYPE_FOUND)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am
index 31f03624f66..ac9eedca029 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagetruecolortopalette/Makemodule.am
@@ -1,4 +1,3 @@
-
libgd_test_programs += \
gdimagetruecolortopalette/bug00307 \
gdimagetruecolortopalette/php_bug_72512
diff --git a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt
index 296e3f1ca77..af0fd8c585e 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdinterpolatedscale/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdModesAndPalettes
gdTrivialResize
)
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 bc72c27c84b..b796dd2b72a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdnewfilectx/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
gdnewfilectx_null
)
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 b0462fc42d7..7e9ee362985 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c
+++ b/Build/source/libs/gd/libgd-src/tests/gdtest/gdtest.c
@@ -40,6 +40,7 @@ void gdSilence(int priority, const char *format, va_list args)
(void)args;
}
+#ifdef HAVE_LIBPNG
gdImagePtr gdTestImageFromPng(const char *filename)
{
gdImagePtr image;
@@ -64,6 +65,7 @@ gdImagePtr gdTestImageFromPng(const char *filename)
fclose(fp);
return image;
}
+#endif
static char *tmpdir_base;
@@ -500,7 +502,7 @@ unsigned int gdMaxPixelDiff(gdImagePtr a, gdImagePtr b)
return diff;
}
-
+#ifdef HAVE_LIBPNG
int gdTestImageCompareToImage(const char* file, unsigned int line, const char* message,
gdImagePtr expected, gdImagePtr actual)
{
@@ -577,13 +579,15 @@ fail:
if (surface_diff) {
gdImageDestroy(surface_diff);
}
- return 0;
+ return 1;
}
+#endif
+#ifdef HAVE_LIBPNG
int gdTestImageCompareToFile(const char* file, unsigned int line, const char* message,
const char *expected_file, gdImagePtr actual)
{
- gdImagePtr expected;
+ gdImagePtr expected = 0;
int res = 1;
expected = gdTestImageFromPng(expected_file);
@@ -597,7 +601,7 @@ int gdTestImageCompareToFile(const char* file, unsigned int line, const char* me
}
return res;
}
-
+#endif
static int failureCount = 0;
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 aa09d66c40a..25f60459005 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdtiled/CMakeLists.txt
@@ -1,5 +1,9 @@
-SET(TESTS_FILES
+IF(PNG_FOUND)
+IF(ZLIB_FOUND)
+LIST(APPEND TESTS_FILES
bug00032
)
+ENDIF(ZLIB_FOUND)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt
index f5c5bb75b0a..9851123fd7f 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/CMakeLists.txt
@@ -1,4 +1,4 @@
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
github_bug_00221
)
diff --git a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am
index e70b0735d12..2566ed58c88 100644
--- a/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gdtransformaffineboundingbox/Makemodule.am
@@ -1,4 +1,3 @@
-
libgd_test_programs += \
gdtransformaffineboundingbox/github_bug_00221
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 f9aa0e23c78..7d40cddca6a 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/gif/CMakeLists.txt
@@ -1,13 +1,19 @@
-SET(TESTS_FILES
- gif_im2im
+LIST(APPEND TESTS_FILES
+ bug00005_2
+ bug00181
+ bug00227
gif_null
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
bug00005
- bug00005_2
bug00006
bug00060
bug00066
- bug00181
- bug00227
+ gif_im2im
+ uninitialized_memory_read
)
+ENDIF(PNG_FOUND)
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
index 50f671fbceb..0bdeab7e663 100644
--- a/Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/gif/Makemodule.am
@@ -2,7 +2,8 @@ libgd_test_programs += \
gif/bug00005_2 \
gif/bug00181 \
gif/bug00227 \
- gif/gif_null
+ gif/gif_null \
+ gif/uninitialized_memory_read
if HAVE_LIBPNG
libgd_test_programs += \
@@ -22,4 +23,5 @@ EXTRA_DIST += \
gif/bug00005_3.gif \
gif/bug00060.gif \
gif/bug00066.gif \
- gif/bug00066_exp.png
+ gif/bug00066_exp.png \
+ gif/unitialized_memory_read.gif
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/uninitialized_memory_read.c b/Build/source/libs/gd/libgd-src/tests/gif/uninitialized_memory_read.c
new file mode 100644
index 00000000000..566fc4acc91
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gif/uninitialized_memory_read.c
@@ -0,0 +1,42 @@
+/**
+ * Test for uninitialized color map entries
+ *
+ * We're reading a crafted GIF which consists of 16x16 color blocks and which
+ * has only two palette entries in the global color map, but uses other palette
+ * indexes as well. We verify whether all undefined palette indexes produce the
+ * color black.
+ *
+ * See also <CAKm_7a-AO++B6cXYWM_DtycPENG5WNWK7NSEvQ5OmZziMY_JyA@mail.gmail.com>
+ * which had been sent to security@libgd.org.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ int i, j, col;
+
+ fp = gdTestFileOpen2("gif", "unitialized_memory_read.gif");
+ gdTestAssert(fp != NULL);
+ im = gdImageCreateFromGif(fp);
+ gdTestAssert(im != NULL);
+ fclose(fp);
+
+ for (i = 0; i < gdImageSX(im); i += 16) {
+ for (j = 0; j < gdImageSY(im); j += 16) {
+ if (gdImageGetPixel(im, i, j) >= 2) {
+ col = gdImageGetTrueColorPixel(im, i, j);
+ gdTestAssertMsg(col == 0, "(%d,%d): expected color 0, but got %d\n", i, j, col);
+ }
+ }
+ }
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/unitialized_memory_read.gif b/Build/source/libs/gd/libgd-src/tests/gif/unitialized_memory_read.gif
new file mode 100644
index 00000000000..92fbb7ff20d
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gif/unitialized_memory_read.gif
Binary files differ
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 5effc8c0de6..19964b0ce2c 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/CMakeLists.txt
@@ -1,12 +1,18 @@
IF(JPEG_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
+ jpeg_empty_file
jpeg_im2im
jpeg_null
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ bug_github_18
jpeg_read
- jpeg_empty_file
jpeg_resolution
- bug_github_18
+ bug00338
)
+ENDIF(PNG_FOUND)
ENDIF(JPEG_FOUND)
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
index bc196b197ba..7e5d317b69f 100644
--- a/Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/Makemodule.am
@@ -1,12 +1,13 @@
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/bug_github_18 \
+ jpeg/bug00338 \
jpeg/jpeg_read \
jpeg/jpeg_resolution
endif
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/bug00338.c b/Build/source/libs/gd/libgd-src/tests/jpeg/bug00338.c
new file mode 100644
index 00000000000..15224d32b34
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/bug00338.c
@@ -0,0 +1,51 @@
+/**
+ * Regression test for <https://github.com/libgd/libgd/issues/338>
+ *
+ * We're testing that reading a JPEG image with gdImageCreateFromJpeg()
+ * raises a GD_WARNING for the fatal libjpeg error, but not a GD_ERROR.
+ * We also make sure, that the fatal libjpeg error is actually reported.
+ *
+ * See also ../png/bug00338.c
+ */
+
+
+#include <string.h>
+#include "gd.h"
+#include "gd_errors.h"
+#include "gdtest.h"
+
+
+#define MSG "gd-jpeg: JPEG library reports unrecoverable error: %s"
+
+
+static int error_handler_called = 0;
+
+
+static void error_handler(int priority, const char *format, va_list args)
+{
+ if (!strcmp(format, MSG)) {
+ gdTestAssertMsg(priority == GD_WARNING, "expected priority %d, but got %d", GD_WARNING, priority);
+ error_handler_called = 1;
+ }
+}
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ gdSetErrorMethod(error_handler);
+
+ im = gdImageCreateTrueColor(10, 10);
+ fp = gdTestTempFp();
+ gdImagePng(im, fp);
+ gdImageDestroy(im);
+
+ im = gdImageCreateFromJpeg(fp);
+ gdTestAssert(im == NULL);
+
+ gdTestAssert(error_handler_called);
+
+ return gdNumFailures();
+}
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 5235417eaae..6fd64b24447 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/png/CMakeLists.txt
@@ -1,5 +1,5 @@
IF(PNG_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
png_im2im
png_null
png_resolution
@@ -8,6 +8,9 @@ SET(TESTS_FILES
bug00086
bug00088
bug00193
+ bug00338
+ bug00381_1
+ bug00381_2
)
ENDIF(PNG_FOUND)
diff --git a/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am
index 01c48036cc7..c167955b1cb 100644
--- a/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/png/Makemodule.am
@@ -5,6 +5,9 @@ libgd_test_programs += \
png/bug00086 \
png/bug00088 \
png/bug00193 \
+ png/bug00338 \
+ png/bug00381_1 \
+ png/bug00381_2 \
png/png_im2im \
png/png_null \
png/png_resolution
@@ -17,4 +20,5 @@ EXTRA_DIST += \
png/bug00088_1_exp.png \
png/bug00088_2.png \
png/bug00088_2_exp.png \
+ png/bug00381_2.gd \
png/emptyfile
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00338.c b/Build/source/libs/gd/libgd-src/tests/png/bug00338.c
new file mode 100644
index 00000000000..0bdd9f9a6f0
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00338.c
@@ -0,0 +1,48 @@
+/**
+ * Regression test for <https://github.com/libgd/libgd/issues/338>
+ *
+ * We're testing that writing a PNG image with an unsupported quality
+ * raises a GD_WARNING for the fatal libpng error, but not a GD_ERROR.
+ * We also make sure, that the fatal libpng error is actually reported.
+ *
+ * See also ../jpeg/bug00338.c
+ */
+
+
+#include <string.h>
+#include "gd.h"
+#include "gd_errors.h"
+#include "gdtest.h"
+
+
+#define MSG "gd-png: fatal libpng error: %s\n"
+
+
+static int error_handler_called = 0;
+
+
+static void error_handler(int priority, const char *format, va_list args)
+{
+ if (!strcmp(format, MSG)) {
+ gdTestAssertMsg(priority == GD_WARNING, "expected priority %d, but got %d", GD_WARNING, priority);
+ error_handler_called = 1;
+ }
+}
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+
+ gdSetErrorMethod(error_handler);
+
+ im = gdImageCreateTrueColor(10, 10);
+ fp = gdTestTempFp();
+ gdImagePngEx(im, fp, 100);
+ gdImageDestroy(im);
+
+ gdTestAssert(error_handler_called);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00381_1.c b/Build/source/libs/gd/libgd-src/tests/png/bug00381_1.c
new file mode 100644
index 00000000000..d8f375b89f8
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00381_1.c
@@ -0,0 +1,31 @@
+/**
+ * Test that failure to convert to PNG returns NULL
+ *
+ * We are creating a palette image without allocating any colors in the palette,
+ * and pass this image to `gdImagePngPtr()` which is supposed to fail, and as
+ * such should return NULL.
+ *
+ * See also <https://github.com/libgd/libgd/issues/381>
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ void *data;
+ int size = 0;
+
+ im = gdImageCreate(100, 100);
+ gdTestAssert(im != NULL);
+
+ data = gdImagePngPtr(im, &size);
+ gdTestAssert(data == NULL);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.c b/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.c
new file mode 100644
index 00000000000..84c7bb15654
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.c
@@ -0,0 +1,35 @@
+/**
+ * Test that failure to convert to PNG returns NULL
+ *
+ * We are reading a palette image without any colors in the palette, and pass
+ * this image to `gdImagePngPtr()` which is supposed to fail, and as such should
+ * return NULL.
+ *
+ * See also <https://github.com/libgd/libgd/issues/381>
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ void *data;
+ int size = 0;
+
+ fp = gdTestFileOpen2("png", "bug00381_2.gd");
+ gdTestAssert(fp != NULL);
+ im = gdImageCreateFromGd(fp);
+ gdTestAssert(im != NULL);
+ fclose(fp);
+
+ data = gdImagePngPtr(im, &size);
+ gdTestAssert(data == NULL);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.gd b/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.gd
new file mode 100644
index 00000000000..c18480aeeb3
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00381_2.gd
Binary files differ
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 af234971183..ca191a65ced 100644
--- a/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/tga/CMakeLists.txt
@@ -1,12 +1,17 @@
-SET(TESTS_FILES
- tga_null
+LIST(APPEND TESTS_FILES
bug00084
bug00247
bug00247a
bug00248
bug00248a
heap_overflow
+ tga_null
+)
+
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
tga_read
)
+ENDIF(PNG_FOUND)
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
index ab08dbff2b9..091e3bef35d 100644
--- a/Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/tga/Makemodule.am
@@ -5,8 +5,12 @@ libgd_test_programs += \
tga/bug00248 \
tga/bug00248a \
tga/heap_overflow \
- tga/tga_null \
+ tga/tga_null
+
+if HAVE_LIBPNG
+libgd_test_programs += \
tga/tga_read
+endif
EXTRA_DIST += \
tga/CMakeLists.txt \
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 e5862ac126f..8e542e690c4 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/CMakeLists.txt
@@ -1,9 +1,10 @@
IF(TIFF_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
tiff_im2im
tiff_invalid_read
tiff_null
tiff_dpi
+ tiff_read_bw
)
ENDIF(TIFF_FOUND)
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am
index 670434a7d32..2a88d68df3c 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/Makemodule.am
@@ -3,11 +3,14 @@ libgd_test_programs += \
tiff/tiff_dpi \
tiff/tiff_im2im \
tiff/tiff_invalid_read \
- tiff/tiff_null
+ tiff/tiff_null \
+ tiff/tiff_read_bw
endif
EXTRA_DIST += \
tiff/CMakeLists.txt \
tiff/tiff_invalid_read_1.tiff \
tiff/tiff_invalid_read_2.tiff \
- tiff/tiff_invalid_read_3.tiff
+ tiff/tiff_invalid_read_3.tiff \
+ tiff/tiff_read_bw.tiff \
+ tiff/tiff_read_bw_exp.png
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
index d639839c420..7b607a25fa1 100644
--- a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_dpi.c
@@ -3,14 +3,7 @@
* 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"
@@ -81,4 +74,3 @@ door0:
gdImageDestroy(src);
return status;
}
-#endif
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 b6b240e3ce3..7b6c4cb9c5f 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,11 +1,3 @@
-#ifdef _WIN32
-#include <stdio.h>
-int main()
-{
- printf("skip");
- return 0;
-}
-#else
#include "gd.h"
#include "gdtest.h"
@@ -70,4 +62,3 @@ 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 19b64f771c3..ccaade7498f 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,11 +1,3 @@
-#ifdef _WIN32
-#include <stdio.h>
-int main()
-{
- printf("skip");
- return 0;
-}
-#else
#include "gd.h"
int main()
@@ -20,4 +12,3 @@ 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/tiff/tiff_read_bw.c b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.c
new file mode 100644
index 00000000000..c302c63aa86
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.c
@@ -0,0 +1,26 @@
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ char *path;
+
+ fp = gdTestFileOpen2("tiff", "tiff_read_bw.tiff");
+ gdTestAssert(fp != NULL);
+ im = gdImageCreateFromTiff(fp);
+ fclose(fp);
+
+ gdTestAssert(im != NULL);
+ gdTestAssert(!gdImageTrueColor(im));
+
+ path = gdTestFilePath2("tiff", "tiff_read_bw_exp.png");
+ gdAssertImageEqualsToFile(path, im);
+ gdFree(path);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.tiff b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.tiff
new file mode 100644
index 00000000000..69813f0ddd9
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw.tiff
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw_exp.png b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw_exp.png
new file mode 100644
index 00000000000..b43daf9b8da
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/tiff/tiff_read_bw_exp.png
Binary files differ
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 2c988680f8f..1f85a15f86e 100644
--- a/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/wbmp/CMakeLists.txt
@@ -1,6 +1,11 @@
-SET(TESTS_FILES
- wbmp_im2im
+LIST(APPEND TESTS_FILES
wbmp_null
)
+IF(PNG_FOUND)
+LIST(APPEND TESTS_FILES
+ wbmp_im2im
+)
+ENDIF(PNG_FOUND)
+
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt
index d2db95b9698..ec27127b1d6 100644
--- a/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/webp/CMakeLists.txt
@@ -1,5 +1,5 @@
IF(WEBP_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00111
bug_double_free
)
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
index 183cf5eaf3f..3e3bb696cad 100644
--- a/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
@@ -1,5 +1,9 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
+ github_bug_109
github_bug_170
+ x10_basic_read
)
+ENDIF(PNG_FOUND)
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
index ba1eabd5bd4..a9a293d1612 100644
--- a/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
@@ -1,5 +1,13 @@
+if HAVE_LIBPNG
libgd_test_programs += \
- xbm/github_bug_170
+ xbm/github_bug_109 \
+ xbm/github_bug_170 \
+ xbm/x10_basic_read
+endif
EXTRA_DIST += \
- xbm/CMakeLists.txt
+ xbm/CMakeLists.txt \
+ xbm/github_bug_109.xbm \
+ xbm/github_bug_109_exp.png \
+ xbm/x10_basic_read.xbm \
+ xbm/x10_basic_read_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c
new file mode 100644
index 00000000000..c0b50a8f0d4
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c
@@ -0,0 +1,35 @@
+/**
+ * Test reading of XBM images with a width that is not a multiple of 8
+ *
+ * We're reading such an XBM image, and check that we got what we've expected,
+ * instead of an error message.
+ *
+ * See also <https://github.com/libgd/libgd/issues/109>.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ char *path;
+
+ fp = gdTestFileOpen2("xbm", "github_bug_109.xbm");
+ im = gdImageCreateFromXbm(fp);
+ fclose(fp);
+ gdTestAssert(im != NULL);
+ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 0) == 0);
+ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 1) == 0xffffff);
+
+ path = gdTestFilePath2("xbm", "github_bug_109_exp.png");
+ gdAssertImageEqualsToFile(path, im);
+ gdFree(path);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm
new file mode 100644
index 00000000000..f427d86a54b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm
@@ -0,0 +1,5 @@
+#define test_width 10
+#define test_height 10
+static unsigned char test_bits[] = {
+ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00,
+ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00};
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png
new file mode 100644
index 00000000000..505b5457c85
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c
new file mode 100644
index 00000000000..99b9019c5f7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c
@@ -0,0 +1,32 @@
+/**
+ * Test reading of an X10 style XBM file
+ *
+ * X10 style XBMs define a short[] instead of a char[] array. We're testing
+ * that such files are read correctly, particularly regarding the line padding,
+ * which is 2 bytes instead of 1, and the endianess.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ char *path;
+
+ fp = gdTestFileOpen2("xbm", "x10_basic_read.xbm");
+ im = gdImageCreateFromXbm(fp);
+ fclose(fp);
+ gdTestAssert(im != NULL);
+
+ path = gdTestFilePath2("xbm", "x10_basic_read_exp.png");
+ gdAssertImageEqualsToFile(path, im);
+ gdFree(path);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm
new file mode 100644
index 00000000000..d8ca2cd4292
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm
@@ -0,0 +1,4 @@
+#define x10_basic_read_width 17
+#define x10_basic_read_height 3
+static unsigned short x10_basic_read_bits[] = {
+ 0xFFFF, 0x0001, 0x0000, 0x0000, 0xFFFF, 0x0001};
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png
new file mode 100644
index 00000000000..fbcdf0cfe57
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png
Binary files differ
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 1301bc3f824..0b1a106c6fe 100644
--- a/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/xpm/CMakeLists.txt
@@ -1,5 +1,5 @@
IF(XPM_FOUND)
-SET(TESTS_FILES
+LIST(APPEND TESTS_FILES
bug00166
bug00185
color_name