summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-09-21 00:20:42 +0200
committerBenjamin Otte <otte@redhat.com>2015-09-24 12:48:48 +0200
commitd3212ed070fb6ee9e99db11381854a9d1b2e2507 (patch)
tree756cf31a5e9b8793603b9362aa51104bee1b35b7
parent0fd2e3f8e1fdb6ecb47d0a7ef8ec21385602f1cc (diff)
downloadgdk-pixbuf-d3212ed070fb6ee9e99db11381854a9d1b2e2507.tar.gz
tests: Add TGA test
Add a bunch of TGA files and a test that loads the image byte by byte and copies only the parts given via the area-updated signal of the loader and then checks the resulting image is correct.
-rw-r--r--tests/Makefile.am10
-rw-r--r--tests/pixbuf-slow-load.c172
-rw-r--r--tests/test-images/tga/gtk-logo-16bpp-bottom-left.tgabin0 -> 4642 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-16bpp-bottom-right.tgabin0 -> 4642 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-16bpp-top-left.tgabin0 -> 4642 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-16bpp-top-right.tgabin0 -> 4642 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-24bpp-bottom-left.tgabin0 -> 6956 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-24bpp-bottom-right.tgabin0 -> 6956 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-24bpp-top-left.tgabin0 -> 6956 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-24bpp-top-right.tgabin0 -> 6956 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-32bpp-bottom-left.tgabin0 -> 9260 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-32bpp-bottom-right.tgabin0 -> 9260 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-32bpp-top-left.tgabin0 -> 9260 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-32bpp-top-right.tgabin0 -> 9260 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-left.tgabin0 -> 3196 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-right.tgabin0 -> 3196 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-8bpp-top-left.tgabin0 -> 3196 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-8bpp-top-right.tgabin0 -> 3196 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-left.tgabin0 -> 1797 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-right.tgabin0 -> 1797 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-left.tgabin0 -> 1797 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-right.tgabin0 -> 1797 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-16bpp-bottom-left.tgabin0 -> 4652 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-16bpp-bottom-right.tgabin0 -> 4652 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-16bpp-top-left.tgabin0 -> 4652 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-16bpp-top-right.tgabin0 -> 4652 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-8bpp-bottom-left.tgabin0 -> 2348 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-8bpp-bottom-right.tgabin0 -> 2348 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-8bpp-top-left.tgabin0 -> 2348 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-8bpp-top-right.tgabin0 -> 2348 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-left.tgabin0 -> 2216 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-right.tgabin0 -> 2216 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-left.tgabin0 -> 2216 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-right.tgabin0 -> 2216 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-left.tgabin0 -> 999 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-right.tgabin0 -> 999 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-left.tgabin0 -> 999 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-right.tgabin0 -> 999 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-24bpp-bottom-left.tgabin0 -> 2306 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-24bpp-bottom-right.tgabin0 -> 2306 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-24bpp-top-left.tgabin0 -> 2306 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-24bpp-top-right.tgabin0 -> 2306 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-32bpp-bottom-left.tgabin0 -> 4078 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-32bpp-bottom-right.tgabin0 -> 4078 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-32bpp-top-left.tgabin0 -> 4078 bytes
-rw-r--r--tests/test-images/tga/gtk-logo-rle-32bpp-top-right.tgabin0 -> 4078 bytes
46 files changed, 181 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1f09711f1..47e5d59d6 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -40,6 +40,7 @@ test_programs = \
pixbuf-resource \
pixbuf-scale \
pixbuf-short-gif-write \
+ pixbuf-slow-load \
pixbuf-save \
pixbuf-readonly-to-mutable \
pixbuf-composite \
@@ -61,7 +62,8 @@ dist_installed_test_data = \
cve-2015-4491.bmp \
large.png \
large.jpg \
- $(wildcard $(srcdir)/test-images/*)
+ $(wildcard $(srcdir)/test-images/*) \
+ $(wildcard $(srcdir)/test-images/tga/*)
cve_2015_4491_SOURCES = \
cve-2015-4491.c \
@@ -113,6 +115,12 @@ pixbuf_save_SOURCES = \
test-common.h \
$(NULL)
+pixbuf_slow_load_SOURCES = \
+ pixbuf-slow-load.c \
+ test-common.c \
+ test-common.h \
+ $(NULL)
+
pixbuf_jpeg_SOURCES = \
pixbuf-jpeg.c \
test-common.c \
diff --git a/tests/pixbuf-slow-load.c b/tests/pixbuf-slow-load.c
new file mode 100644
index 000000000..8186b5183
--- /dev/null
+++ b/tests/pixbuf-slow-load.c
@@ -0,0 +1,172 @@
+/* -*- Mode: C; c-basic-offset: 2; -*- */
+/* GdkPixbuf library - test loaders
+ *
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Benjamin Otte
+ */
+
+#include "config.h"
+
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#include "test-common.h"
+
+static void
+loader_size_prepared (GdkPixbufLoader *loader,
+ int w,
+ int h,
+ GdkPixbuf **pixbuf)
+{
+ g_assert (*pixbuf == NULL);
+
+ *pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, w, h);
+ g_assert (*pixbuf != NULL);
+}
+
+static void
+loader_area_updated (GdkPixbufLoader *loader,
+ int x,
+ int y,
+ int w,
+ int h,
+ GdkPixbuf **pixbuf)
+{
+ gdk_pixbuf_copy_area (gdk_pixbuf_loader_get_pixbuf (loader),
+ x, y,
+ w, h,
+ *pixbuf,
+ x, y);
+}
+
+static void
+test_slow_load (gconstpointer file)
+{
+ GdkPixbufLoader *loader;
+ GdkPixbuf *reference, *loaded = NULL;
+ GError *error = NULL;
+ const char *filename;
+ guchar *contents;
+ gsize i, contents_length;
+
+ filename = g_test_get_filename (G_TEST_DIST, file, NULL);
+ reference = gdk_pixbuf_new_from_file (filename, &error);
+ g_assert_no_error (error);
+ g_assert (reference != NULL);
+ if (!gdk_pixbuf_get_has_alpha (reference))
+ {
+ GdkPixbuf *tmp = gdk_pixbuf_add_alpha (reference, FALSE, 0, 0, 0);
+ g_object_unref (reference);
+ reference = tmp;
+ }
+
+ loader = gdk_pixbuf_loader_new_with_mime_type ("image/x-tga", &error);
+ g_assert_no_error (error);
+ g_assert (loader != NULL);
+ g_signal_connect (loader, "size-prepared", G_CALLBACK (loader_size_prepared), &loaded);
+ g_signal_connect (loader, "area-updated", G_CALLBACK (loader_area_updated), &loaded);
+
+ if (!g_file_get_contents (filename, (gchar **) &contents, &contents_length, &error))
+ g_assert_not_reached ();
+ g_assert_no_error (error);
+
+ for (i = 0; i < contents_length; i++)
+ {
+ if (!gdk_pixbuf_loader_write (loader, &contents[i], 1, &error))
+ g_assert_not_reached();
+ g_assert_no_error (error);
+ }
+
+ if (!gdk_pixbuf_loader_close (loader, &error))
+ g_assert_not_reached ();
+ g_assert_no_error (error);
+ g_assert (loaded != NULL);
+
+ g_assert (pixdata_equal (reference, loaded, &error));
+ g_assert_no_error (error);
+
+ g_free (contents);
+ g_object_unref (loaded);
+ g_object_unref (loader);
+ g_object_unref (reference);
+}
+
+static void
+test_add (const char *filename)
+{
+ char *testname;
+
+ testname = g_strconcat ("/pixbuf/slow-load/", filename, NULL);
+
+ g_test_add_data_func (testname,
+ filename,
+ test_slow_load);
+
+ g_free (testname);
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, NULL);
+
+ test_add ("test-images/tga/gtk-logo-16bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-16bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-16bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-16bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-24bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-24bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-24bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-24bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-32bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-32bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-32bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-32bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-8bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-8bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-8bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-8bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-rle-8bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-cmap-rle-8bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-16bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-16bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-16bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-16bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-8bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-8bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-8bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-8bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-16bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-16bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-16bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-16bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-8bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-8bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-8bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-gray-rle-8bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-rle-24bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-rle-24bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-rle-24bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-rle-24bpp-top-right.tga");
+ test_add ("test-images/tga/gtk-logo-rle-32bpp-bottom-left.tga");
+ test_add ("test-images/tga/gtk-logo-rle-32bpp-bottom-right.tga");
+ test_add ("test-images/tga/gtk-logo-rle-32bpp-top-left.tga");
+ test_add ("test-images/tga/gtk-logo-rle-32bpp-top-right.tga");
+
+ return g_test_run ();
+}
diff --git a/tests/test-images/tga/gtk-logo-16bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-16bpp-bottom-left.tga
new file mode 100644
index 000000000..3427825e8
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-16bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-16bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-16bpp-bottom-right.tga
new file mode 100644
index 000000000..42eec0ff1
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-16bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-16bpp-top-left.tga b/tests/test-images/tga/gtk-logo-16bpp-top-left.tga
new file mode 100644
index 000000000..57c643309
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-16bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-16bpp-top-right.tga b/tests/test-images/tga/gtk-logo-16bpp-top-right.tga
new file mode 100644
index 000000000..948c4c5f9
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-16bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-24bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-24bpp-bottom-left.tga
new file mode 100644
index 000000000..21c417595
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-24bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-24bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-24bpp-bottom-right.tga
new file mode 100644
index 000000000..4996e43f5
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-24bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-24bpp-top-left.tga b/tests/test-images/tga/gtk-logo-24bpp-top-left.tga
new file mode 100644
index 000000000..5da4c1f91
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-24bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-24bpp-top-right.tga b/tests/test-images/tga/gtk-logo-24bpp-top-right.tga
new file mode 100644
index 000000000..05edea5bf
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-24bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-32bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-32bpp-bottom-left.tga
new file mode 100644
index 000000000..79986c644
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-32bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-32bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-32bpp-bottom-right.tga
new file mode 100644
index 000000000..fefe92e62
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-32bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-32bpp-top-left.tga b/tests/test-images/tga/gtk-logo-32bpp-top-left.tga
new file mode 100644
index 000000000..3ba468305
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-32bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-32bpp-top-right.tga b/tests/test-images/tga/gtk-logo-32bpp-top-right.tga
new file mode 100644
index 000000000..afbe0e905
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-32bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-left.tga
new file mode 100644
index 000000000..0de138fa4
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-right.tga
new file mode 100644
index 000000000..cbbda1905
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-8bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-8bpp-top-left.tga b/tests/test-images/tga/gtk-logo-cmap-8bpp-top-left.tga
new file mode 100644
index 000000000..04e3a50b8
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-8bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-8bpp-top-right.tga b/tests/test-images/tga/gtk-logo-cmap-8bpp-top-right.tga
new file mode 100644
index 000000000..5bdda53af
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-8bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-left.tga
new file mode 100644
index 000000000..e5df6d5a6
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-right.tga
new file mode 100644
index 000000000..de3e4178d
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-left.tga b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-left.tga
new file mode 100644
index 000000000..aa75ab39e
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-right.tga b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-right.tga
new file mode 100644
index 000000000..fbde5d656
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-cmap-rle-8bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-left.tga
new file mode 100644
index 000000000..03b9ec471
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-right.tga
new file mode 100644
index 000000000..0b2a9a521
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-16bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-16bpp-top-left.tga b/tests/test-images/tga/gtk-logo-gray-16bpp-top-left.tga
new file mode 100644
index 000000000..7ea15465c
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-16bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-16bpp-top-right.tga b/tests/test-images/tga/gtk-logo-gray-16bpp-top-right.tga
new file mode 100644
index 000000000..4c0e4130c
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-16bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-left.tga
new file mode 100644
index 000000000..428aa9377
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-right.tga
new file mode 100644
index 000000000..58c925067
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-8bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-8bpp-top-left.tga b/tests/test-images/tga/gtk-logo-gray-8bpp-top-left.tga
new file mode 100644
index 000000000..80c1a0ec6
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-8bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-8bpp-top-right.tga b/tests/test-images/tga/gtk-logo-gray-8bpp-top-right.tga
new file mode 100644
index 000000000..e846052f0
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-8bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-left.tga
new file mode 100644
index 000000000..6264808e0
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-right.tga
new file mode 100644
index 000000000..fcb941ff3
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-left.tga b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-left.tga
new file mode 100644
index 000000000..28f34f217
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-right.tga b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-right.tga
new file mode 100644
index 000000000..c9432c80f
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-16bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-left.tga
new file mode 100644
index 000000000..3a1fe6d0d
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-right.tga
new file mode 100644
index 000000000..0d8ec83c2
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-left.tga b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-left.tga
new file mode 100644
index 000000000..5370ede36
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-right.tga b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-right.tga
new file mode 100644
index 000000000..354f6f582
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-gray-rle-8bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-left.tga
new file mode 100644
index 000000000..c4e39328a
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-right.tga
new file mode 100644
index 000000000..aefb5489f
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-24bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-24bpp-top-left.tga b/tests/test-images/tga/gtk-logo-rle-24bpp-top-left.tga
new file mode 100644
index 000000000..dfcdb8fb4
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-24bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-24bpp-top-right.tga b/tests/test-images/tga/gtk-logo-rle-24bpp-top-right.tga
new file mode 100644
index 000000000..1917ab06d
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-24bpp-top-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-left.tga b/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-left.tga
new file mode 100644
index 000000000..9f5e8fed9
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-right.tga b/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-right.tga
new file mode 100644
index 000000000..6b42d4da5
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-32bpp-bottom-right.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-32bpp-top-left.tga b/tests/test-images/tga/gtk-logo-rle-32bpp-top-left.tga
new file mode 100644
index 000000000..bc8421e29
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-32bpp-top-left.tga
Binary files differ
diff --git a/tests/test-images/tga/gtk-logo-rle-32bpp-top-right.tga b/tests/test-images/tga/gtk-logo-rle-32bpp-top-right.tga
new file mode 100644
index 000000000..baec40d6d
--- /dev/null
+++ b/tests/test-images/tga/gtk-logo-rle-32bpp-top-right.tga
Binary files differ