diff --git a/src/base/SConscript b/src/base/SConscript
index a011463..c9162b4 100644
--- a/src/base/SConscript
+++ b/src/base/SConscript
@@ -84,6 +84,8 @@
 Source('loader/ecoff_object.cc')
 Source('loader/elf_object.cc')
 Source('loader/image_file_data.cc')
+GTest('loader/image_file_data.test', 'loader/image_file_data.test.cc',
+'loader/image_file_data.cc')
 Source('loader/memory_image.cc')
 Source('loader/object_file.cc')
 Source('loader/symtab.cc')
diff --git a/src/base/loader/image_file_data.test.cc b/src/base/loader/image_file_data.test.cc
new file mode 100644
index 0000000..61eeae1
--- /dev/null
+++ b/src/base/loader/image_file_data.test.cc
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2019 The Regents of the University of California
+ * All rights reserved
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Bobby R. Bruce
+ */
+
+#include <gtest/gtest.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <cstdlib>
+
+#include "base/loader/image_file_data.hh"
+#include "base/loader/small_image_file.test.hh"
+
+TEST(ImageFileDataTest, SimpleImage)
+{
+    /*
+     * Create a temporary file from our data blob.
+     */
+    char filename[] = "image-XXXXXX";
+    int fd = mkstemp(filename);
+    ASSERT_NE(-1, fd);
+    ssize_t size = write(fd, image_file, sizeof(image_file));
+
+    /*
+     * In this basic test, the image file is simply loaded to the
+     * ImageFileData object (i.e., no decompression).
+     */
+    ImageFileData idf(filename);
+
+    EXPECT_EQ(idf.filename(), filename);
+    EXPECT_EQ(size, idf.len());
+
+    for (size_t i = 0; i < sizeof(image_file); i++) {
+        EXPECT_EQ(image_file[i], idf.data()[i]);
+    }
+
+    /*
+     * Close and delete the temporary file.
+     */
+    close(fd);
+    unlink(filename);
+}
+
+
+TEST(ImageFileDataTest, GZipImage)
+{
+    /*
+     * Create temporary files from our data blobs.
+     */
+    char filename_gz[] = "image-XXXXXX";
+    int fd_gz = mkstemp(filename_gz);
+    ASSERT_NE(-1, fd_gz);
+    ssize_t size_gz = write(fd_gz, image_file_gzipped,
+                            sizeof(image_file_gzipped));
+
+    char filename[] = "image-XXXXXX";
+    int fd = mkstemp(filename);
+    ASSERT_NE(-1, fd);
+    ssize_t size = write(fd, image_file, sizeof(image_file));
+
+    /*
+     * ImageFileData decompresses a gzipped file. image_file_gzipped is just
+     * image_file gzipped. Therefore ifd_gz.len() should equal ifd.len() and
+     * ifd.data() should equal ifd_gz.data().
+     */
+    ImageFileData ifd_gz(filename_gz);
+    ImageFileData ifd(filename);
+
+    EXPECT_EQ(ifd.len(), ifd_gz.len());
+    EXPECT_EQ(size, ifd.len());
+    EXPECT_NE(size_gz, ifd_gz.len());
+
+    for (size_t index = 0; index < ifd.len(); index++) {
+        EXPECT_EQ(ifd.data()[index], ifd_gz.data()[index]);
+    }
+
+    /*
+     * Close and delete the temporary files.
+     */
+    close(fd);
+    unlink(filename);
+    close(fd_gz);
+    unlink(filename_gz);
+}
diff --git a/src/base/loader/small_image_file.test.hh b/src/base/loader/small_image_file.test.hh
new file mode 100644
index 0000000..df49f0b
--- /dev/null
+++ b/src/base/loader/small_image_file.test.hh
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2019 The Regents of the University of California
+ * All rights reserved
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Bobby R. Bruce
+ */
+
+#ifndef __SMALL_IMAGE_FILE_HH__
+#define __SMALL_IMAGE_FILE_HH__
+
+#include <cstdint>
+
+/**
+ * This image file contains the text "This is a test image.\n" 31 times.
+ */
+const uint8_t image_file[] = {
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69,
+    0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74,
+    0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a,
+    0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
+    0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x69,
+    0x6d, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68,
+    0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+    0x74, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x61,
+    0x67, 0x65, 0x2e, 0x0a, 0x54, 0x68, 0x69, 0x73,
+    0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65,
+    0x73, 0x74, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+    0x2e, 0x0a
+};
+
+/**
+ * This is "image_file" compressed using GZip.
+ */
+const uint8_t image_file_gzipped[] = {
+    0x1f, 0x8b, 0x08, 0x08, 0x48, 0x4b, 0xcb, 0x5d,
+    0x00, 0x03, 0x62, 0x6c, 0x61, 0x2e, 0x69, 0x6d,
+    0x67, 0x00, 0x0b, 0xc9, 0xc8, 0x2c, 0x56, 0x00,
+    0xa2, 0x44, 0x85, 0x92, 0xd4, 0xe2, 0x12, 0x85,
+    0xcc, 0xdc, 0xc4, 0xf4, 0x54, 0x3d, 0xae, 0x90,
+    0x51, 0xd1, 0x51, 0xd1, 0x41, 0x26, 0x0a, 0x00,
+    0xc9, 0x58, 0x6c, 0x4e, 0xaa, 0x02, 0x00, 0x00
+};
+
+#endif // __SMALL_IMAGE_FILE_HH__
\ No newline at end of file
