Blame tests/jpeg/bug_github_18.c

Packit ed3af9
#include <stdio.h>
Packit ed3af9
#include "gd.h"
Packit ed3af9
#include "gdtest.h"
Packit ed3af9
Packit ed3af9
int main() {
Packit ed3af9
	gdImagePtr im, imres, imexp;
Packit ed3af9
	FILE *fp;
Packit ed3af9
	void *pjpeg;
Packit ed3af9
	unsigned int status = 0;
Packit ed3af9
	int size = 0;
Packit ed3af9
Packit ed3af9
	fp = gdTestFileOpen("jpeg/github_bug_18.png");
Packit ed3af9
	im = gdImageCreateFromPng(fp);
Packit ed3af9
	fclose(fp);
Packit ed3af9
Packit ed3af9
	if (im == NULL) {
Packit ed3af9
		gdTestErrorMsg("gdImageCreateFromJpeg failed.\n");
Packit ed3af9
		return 1;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	pjpeg = gdImageJpegPtr(im, &size, 100);
Packit ed3af9
	if (pjpeg == NULL) {
Packit ed3af9
		status = 1;
Packit ed3af9
		gdTestErrorMsg("p is null\n");
Packit ed3af9
		goto door2;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	if (size <= 0) {
Packit ed3af9
		status = 1;
Packit ed3af9
		gdTestErrorMsg("size is non-positive\n");
Packit ed3af9
		goto door2;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	imres = gdImageCreateFromJpegPtr(size, pjpeg);
Packit ed3af9
	if (imres == NULL) {
Packit ed3af9
		status = 1;
Packit ed3af9
		goto door2;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	fp = gdTestFileOpen("jpeg/github_bug_18_exp.jpeg");
Packit ed3af9
	imexp = gdImageCreateFromJpeg(fp);
Packit ed3af9
	if (imexp == NULL) {
Packit ed3af9
		fclose(fp);
Packit ed3af9
		status = 1;
Packit ed3af9
		goto door1;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	if (gdTestImageCompareToImage("jpeg/github_bug_18.png", __LINE__, __FILE__, imexp, imres) != 1) {
Packit ed3af9
		status = 1;
Packit ed3af9
	}
Packit ed3af9
	gdImageDestroy(imexp);
Packit ed3af9
Packit ed3af9
door1:
Packit ed3af9
	gdImageDestroy(imres);
Packit ed3af9
Packit ed3af9
door2:
Packit ed3af9
	gdFree(pjpeg);
Packit ed3af9
	gdImageDestroy(im);
Packit ed3af9
	return status;
Packit ed3af9
}