summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/gif/bug00181.c')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gif/bug00181.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c b/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
new file mode 100644
index 00000000000..27d6481175e
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gif/bug00181.c
@@ -0,0 +1,93 @@
+#include <stdio.h>
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr im, im2, im3;
+ FILE *fp;
+ int black, trans;
+ int error = 0;
+
+ /* GIFEncode */
+ im = gdImageCreate(100, 100);
+ if (!im) {
+ gdTestErrorMsg("Cannot create image.\n");
+ return 1;
+ }
+ im->interlace = 1;
+ fp = fopen("bug00181.gif", "wb");
+ if (!fp) {
+ gdTestErrorMsg("Cannot open <%s> for writing.\n", "bug00181.gif");
+ return 1;
+ }
+ gdImageGif(im, fp);
+ gdImageDestroy(im);
+ fclose(fp);
+
+ fp = fopen("bug00181.gif", "rb");
+ if (!fp) {
+ gdTestErrorMsg("Cannot open <%s> for reading.\n", "bug00181.gif");
+ return 1;
+ }
+ im = gdImageCreateFromGif(fp);
+ fclose(fp);
+ if (!im) {
+ gdTestErrorMsg("Cannot create image from <%s>\n", "bug00181.gif");
+ return 1;
+ }
+ error = !im->interlace;
+ gdImageDestroy(im);
+
+ if (error) return error;
+
+ /* GIFAnimEncode */
+ im = gdImageCreate(100, 100);
+ im->interlace = 1;
+ gdImageColorAllocate(im, 255, 255, 255); /* allocate white for background color */
+ black = gdImageColorAllocate(im, 0, 0, 0);
+ trans = gdImageColorAllocate(im, 1, 1, 1);
+ gdImageRectangle(im, 0, 0, 10, 10, black);
+ fp = fopen("bug00181a.gif", "wb");
+ if (!fp) {
+ gdTestErrorMsg("Cannot open <%s> for writing.\n", "bug00181a.gif");
+ return 1;
+ }
+ gdImageGifAnimBegin(im, fp, 1, 3);
+ gdImageGifAnimAdd(im, fp, 0, 0, 0, 100, 1, NULL);
+ im2 = gdImageCreate(100, 100);
+ im2->interlace = 1;
+ (void)gdImageColorAllocate(im2, 255, 255, 255);
+ gdImagePaletteCopy (im2, im);
+ gdImageRectangle(im2, 0, 0, 15, 15, black);
+ gdImageColorTransparent (im2, trans);
+ gdImageGifAnimAdd(im2, fp, 0, 0, 0, 100, 1, im);
+ im3 = gdImageCreate(100, 100);
+ im3->interlace = 1;
+ (void)gdImageColorAllocate(im3, 255, 255, 255);
+ gdImagePaletteCopy (im3, im);
+ gdImageRectangle(im3, 0, 0, 15, 20, black);
+ gdImageColorTransparent (im3, trans);
+ gdImageGifAnimAdd(im3, fp, 0, 0, 0, 100, 1, im2);
+ gdImageGifAnimEnd(fp);
+ fclose(fp);
+ gdImageDestroy(im);
+ gdImageDestroy(im2);
+ gdImageDestroy(im3);
+
+ fp = fopen("bug00181a.gif", "rb");
+ if (!fp) {
+ gdTestErrorMsg("Cannot open <%s> for reading.\n", "bug00181a.gif");
+ return 1;
+ }
+ im = gdImageCreateFromGif(fp);
+ fclose(fp);
+ if (!im) {
+ gdTestErrorMsg("Cannot create image from <%s>\n", "bug00181a.gif");
+ return 1;
+ }
+ error = !im->interlace;
+ gdImageDestroy(im);
+
+ return error;
+}