diff options
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/gdimageconvolution')
4 files changed, 53 insertions, 27 deletions
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 802c38220ae..dc1fc51cefb 100644 --- a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt +++ b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/CMakeLists.txt @@ -1,3 +1,5 @@ +LIST(APPEND TESTS_FILES bug00369) + IF(PNG_FOUND) LIST(APPEND TESTS_FILES basic diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/Makemodule.am index 8f65b0f36e9..df5249d4529 100644 --- a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/Makemodule.am +++ b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/Makemodule.am @@ -1,3 +1,6 @@ +libgd_test_programs += \ + gdimageconvolution/bug00369 + if HAVE_LIBPNG libgd_test_programs += \ gdimageconvolution/basic diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/basic.c b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/basic.c index 267a079d898..5fe308ca043 100644 --- a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/basic.c +++ b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/basic.c @@ -2,61 +2,54 @@ * Basic test for gdImageConvolution() and related functions */ - #include "gd.h" #include "gdtest.h" - static void test_convolution(void (*convolution_func)(gdImagePtr im), const char *expected) { - gdImagePtr im; - FILE *fp; - char *path; + gdImagePtr im; + FILE *fp; + char *path; - fp = gdTestFileOpen2("gdimageconvolution", "basic.png"); - im = gdImageCreateFromPng(fp); - fclose(fp); + fp = gdTestFileOpen2("gdimageconvolution", "basic.png"); + im = gdImageCreateFromPng(fp); + fclose(fp); - convolution_func(im); + convolution_func(im); - path = gdTestFilePath2("gdimageconvolution", expected); - gdAssertImageEqualsToFile(path, im); - gdFree(path); + path = gdTestFilePath2("gdimageconvolution", expected); + gdAssertImageEqualsToFile(path, im); + gdFree(path); - gdImageDestroy(im); + gdImageDestroy(im); } - static void test_edge_detect_quick(gdImagePtr im) { - gdImageEdgeDetectQuick(im); + gdImageEdgeDetectQuick(im); } - static void test_smooth(gdImagePtr im) { - gdImageSmooth(im, 5); + gdImageSmooth(im, 5); } - static void test_emboss(gdImagePtr im) { - gdImageEmboss(im); + gdImageEmboss(im); } - static void test_mean_removal(gdImagePtr im) { - gdImageMeanRemoval(im); + gdImageMeanRemoval(im); } - int main() { - test_convolution(&test_edge_detect_quick, "basic_edge_detect_quick.png"); - test_convolution(&test_smooth, "basic_smooth.png"); - test_convolution(&test_emboss, "basic_emboss.png"); - test_convolution(&test_mean_removal, "basic_mean_removal.png"); + test_convolution(&test_edge_detect_quick, "basic_edge_detect_quick.png"); + test_convolution(&test_smooth, "basic_smooth.png"); + test_convolution(&test_emboss, "basic_emboss.png"); + test_convolution(&test_mean_removal, "basic_mean_removal.png"); - return gdNumFailures(); + return gdNumFailures(); } diff --git a/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/bug00369.c b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/bug00369.c new file mode 100644 index 00000000000..631cb7adbc1 --- /dev/null +++ b/Build/source/libs/gd/libgd-src/tests/gdimageconvolution/bug00369.c @@ -0,0 +1,28 @@ +/** + * Test Issue #369 for gdImageConvolution() + */ + +#include "gd.h" +#include "gdtest.h" + +int main() +{ + gdImagePtr im; + float matrix[3][3] = { + {1, 0, 1}, + {0, 5, 0}, + {1, 0, 0} + }; + + im = gdImageCreateTrueColor(40, 40); + gdImageAlphaBlending(im, gdEffectReplace); + gdImageFilledRectangle(im, 0, 0, 39, 39, 0x7FFFFFFF); + gdImageFilledEllipse(im, 19, 19, 20, 20, 0x00FF00); + + gdImageConvolution(im, matrix, 9, 1); + gdTestAssert(0x7F010101 == gdImageGetPixel(im, 0, 0)); + + gdImageDestroy(im); + + return gdNumFailures(); +} |