summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests/xbm
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/xbm')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am12
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c35
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm5
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.pngbin0 -> 111 bytes
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c32
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm4
-rw-r--r--Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.pngbin0 -> 112 bytes
8 files changed, 90 insertions, 2 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
index 183cf5eaf3f..3e3bb696cad 100644
--- a/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/CMakeLists.txt
@@ -1,5 +1,9 @@
+IF(PNG_FOUND)
LIST(APPEND TESTS_FILES
+ github_bug_109
github_bug_170
+ x10_basic_read
)
+ENDIF(PNG_FOUND)
ADD_GD_TESTS()
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am b/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
index ba1eabd5bd4..a9a293d1612 100644
--- a/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/Makemodule.am
@@ -1,5 +1,13 @@
+if HAVE_LIBPNG
libgd_test_programs += \
- xbm/github_bug_170
+ xbm/github_bug_109 \
+ xbm/github_bug_170 \
+ xbm/x10_basic_read
+endif
EXTRA_DIST += \
- xbm/CMakeLists.txt
+ xbm/CMakeLists.txt \
+ xbm/github_bug_109.xbm \
+ xbm/github_bug_109_exp.png \
+ xbm/x10_basic_read.xbm \
+ xbm/x10_basic_read_exp.png
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c
new file mode 100644
index 00000000000..c0b50a8f0d4
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.c
@@ -0,0 +1,35 @@
+/**
+ * Test reading of XBM images with a width that is not a multiple of 8
+ *
+ * We're reading such an XBM image, and check that we got what we've expected,
+ * instead of an error message.
+ *
+ * See also <https://github.com/libgd/libgd/issues/109>.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ char *path;
+
+ fp = gdTestFileOpen2("xbm", "github_bug_109.xbm");
+ im = gdImageCreateFromXbm(fp);
+ fclose(fp);
+ gdTestAssert(im != NULL);
+ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 0) == 0);
+ gdTestAssert(gdImageGetTrueColorPixel(im, 0, 1) == 0xffffff);
+
+ path = gdTestFilePath2("xbm", "github_bug_109_exp.png");
+ gdAssertImageEqualsToFile(path, im);
+ gdFree(path);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm
new file mode 100644
index 00000000000..f427d86a54b
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109.xbm
@@ -0,0 +1,5 @@
+#define test_width 10
+#define test_height 10
+static unsigned char test_bits[] = {
+ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00,
+ 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00};
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png
new file mode 100644
index 00000000000..505b5457c85
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/github_bug_109_exp.png
Binary files differ
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c
new file mode 100644
index 00000000000..99b9019c5f7
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.c
@@ -0,0 +1,32 @@
+/**
+ * Test reading of an X10 style XBM file
+ *
+ * X10 style XBMs define a short[] instead of a char[] array. We're testing
+ * that such files are read correctly, particularly regarding the line padding,
+ * which is 2 bytes instead of 1, and the endianess.
+ */
+
+
+#include "gd.h"
+#include "gdtest.h"
+
+
+int main()
+{
+ gdImagePtr im;
+ FILE *fp;
+ char *path;
+
+ fp = gdTestFileOpen2("xbm", "x10_basic_read.xbm");
+ im = gdImageCreateFromXbm(fp);
+ fclose(fp);
+ gdTestAssert(im != NULL);
+
+ path = gdTestFilePath2("xbm", "x10_basic_read_exp.png");
+ gdAssertImageEqualsToFile(path, im);
+ gdFree(path);
+
+ gdImageDestroy(im);
+
+ return gdNumFailures();
+}
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm
new file mode 100644
index 00000000000..d8ca2cd4292
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read.xbm
@@ -0,0 +1,4 @@
+#define x10_basic_read_width 17
+#define x10_basic_read_height 3
+static unsigned short x10_basic_read_bits[] = {
+ 0xFFFF, 0x0001, 0x0000, 0x0000, 0xFFFF, 0x0001};
diff --git a/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png
new file mode 100644
index 00000000000..fbcdf0cfe57
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/xbm/x10_basic_read_exp.png
Binary files differ