blob: 779180fc4097ca88245ed3f45f375aa7181af76c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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();
gdTestAssert(fp);
if (!fp) {
exit(2);
}
gdImagePngEx(im, fp, 100);
gdImageDestroy(im);
fclose(fp);
gdTestAssert(error_handler_called);
return gdNumFailures();
}
|