1 /**
2  * Passing an unrecognized format to gdImageGd2() should result in
3  * GD2_FMT_TRUECOLOR_COMPRESSED for truecolor images.
4  *
5  * See <https://github.com/libgd/libgd/issues/289>.
6  */
7 
8 #include "gd.h"
9 #include "gdtest.h"
10 
11 
12 #define GD2_FMT_UNRECOGNIZED 0
13 #define GD2_FMT_TRUECOLOR_COMPRESSED 4
14 
15 #define MSG "expected %s byte to be %d, but got %d\n"
16 
17 
main()18 int main()
19 {
20     gdImagePtr im;
21     char *buffer;
22     int size;
23 
24     im = gdImageCreateTrueColor(10, 10);
25     gdTestAssert(im != NULL);
26     buffer = (char *) gdImageGd2Ptr(im, 128, GD2_FMT_UNRECOGNIZED, &size);
27     gdTestAssert(buffer != NULL);
28     gdImageDestroy(im);
29     gdTestAssertMsg(buffer[12] == 0, MSG, "1st", 0, buffer[12]);
30     gdTestAssertMsg(buffer[13] == GD2_FMT_TRUECOLOR_COMPRESSED, MSG, "2nd", GD2_FMT_TRUECOLOR_COMPRESSED, buffer[13]);
31 
32     gdFree(buffer);
33 
34     return gdNumFailures();
35 }
36