Blame tests/jpeg/bug00338.c
|
Packit |
ed3af9 |
/**
|
|
Packit |
ed3af9 |
* Regression test for <https://github.com/libgd/libgd/issues/338>
|
|
Packit |
ed3af9 |
*
|
|
Packit |
ed3af9 |
* We're testing that reading a JPEG image with gdImageCreateFromJpeg()
|
|
Packit |
ed3af9 |
* raises a GD_WARNING for the fatal libjpeg error, but not a GD_ERROR.
|
|
Packit |
ed3af9 |
* We also make sure, that the fatal libjpeg error is actually reported.
|
|
Packit |
ed3af9 |
*
|
|
Packit |
ed3af9 |
* See also ../png/bug00338.c
|
|
Packit |
ed3af9 |
*/
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
#include <string.h>
|
|
Packit |
ed3af9 |
#include "gd.h"
|
|
Packit |
ed3af9 |
#include "gd_errors.h"
|
|
Packit |
ed3af9 |
#include "gdtest.h"
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
#define MSG "gd-jpeg: JPEG library reports unrecoverable error: %s"
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
static int error_handler_called = 0;
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
static void error_handler(int priority, const char *format, va_list args)
|
|
Packit |
ed3af9 |
{
|
|
Packit |
ed3af9 |
if (!strcmp(format, MSG)) {
|
|
Packit |
ed3af9 |
gdTestAssertMsg(priority == GD_WARNING, "expected priority %d, but got %d", GD_WARNING, priority);
|
|
Packit |
ed3af9 |
error_handler_called = 1;
|
|
Packit |
ed3af9 |
}
|
|
Packit |
ed3af9 |
}
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
int main()
|
|
Packit |
ed3af9 |
{
|
|
Packit |
ed3af9 |
gdImagePtr im;
|
|
Packit |
ed3af9 |
FILE *fp;
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
gdSetErrorMethod(error_handler);
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
im = gdImageCreateTrueColor(10, 10);
|
|
Packit |
ed3af9 |
fp = gdTestTempFp();
|
|
Packit |
ed3af9 |
gdImagePng(im, fp);
|
|
Packit |
ed3af9 |
gdImageDestroy(im);
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
im = gdImageCreateFromJpeg(fp);
|
|
Packit |
ed3af9 |
gdTestAssert(im == NULL);
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
gdTestAssert(error_handler_called);
|
|
Packit |
ed3af9 |
|
|
Packit |
ed3af9 |
return gdNumFailures();
|
|
Packit |
ed3af9 |
}
|