tests: Add file for extended image tests
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 9b3b193..ed19703 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -16,6 +16,12 @@
    COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
 target_link_libraries(xglbase XGL gtest gtest_main)
 
+add_executable(xgl_image_tests image_tests.cpp ${COMMON_CPP})
+set_target_properties(xgl_image_tests
+   PROPERTIES
+   COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
+target_link_libraries(xgl_image_tests XGL gtest gtest_main)
+
 target_link_libraries(xglinfo XGL)
 
 add_subdirectory(gtest-1.7.0)
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index d384116..1eee8a6 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -67,7 +67,12 @@
 class XglImageTest : public ::testing::Test {
 public:
     XglGpu *gpu;
-    void CreateImage();
+    void CreateImage(XGL_UINT w, XGL_UINT h);
+    void DestroyImage();
+
+    void CreateImageView(XGL_IMAGE_VIEW_CREATE_INFO* pCreateInfo,
+                         XGL_IMAGE_VIEW* pView);
+    void DestroyImageView(XGL_IMAGE_VIEW imageView);
 
 protected:
     XGL_APPLICATION_INFO app_info;
@@ -222,8 +227,27 @@
     ASSERT_XGL_SUCCESS(xglDestroyObject(m_image));
 }
 
-TEST_F(XglImageTest, CreateImage) {
-    CreateImageTest();
+void XglImageTest::CreateImageView(XGL_IMAGE_VIEW_CREATE_INFO *pCreateInfo,
+                                   XGL_IMAGE_VIEW *pView)
+{
+    pCreateInfo->image = this->m_image;
+    ASSERT_XGL_SUCCESS(xglCreateImageView(gpu->device(), pCreateInfo, pView));
+}
+
+void XglImageTest::DestroyImageView(XGL_IMAGE_VIEW imageView)
+{
+    ASSERT_XGL_SUCCESS(xglDestroyObject(imageView));
+}
+
+TEST_F(XglImageTest, CreateImageViewTest) {
+    XGL_FORMAT fmt;
+    XGL_IMAGE_VIEW imageView;
+    XGL_RESULT err;
+
+    fmt.channelFormat = XGL_CH_FMT_R8G8B8A8;
+    fmt.numericFormat = XGL_NUM_FMT_UINT;
+
+    CreateImage(512, 256);
 
     //    typedef struct _XGL_IMAGE_VIEW_CREATE_INFO
     //    {
@@ -237,9 +261,7 @@
     //        XGL_FLOAT                               minLod;
     //    } XGL_IMAGE_VIEW_CREATE_INFO;
     XGL_IMAGE_VIEW_CREATE_INFO viewInfo = {};
-    XGL_IMAGE_VIEW view;
     viewInfo.sType = XGL_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
-    viewInfo.image = image;
     viewInfo.viewType = XGL_IMAGE_VIEW_2D;
     viewInfo.format = fmt;
 
@@ -259,8 +281,9 @@
     //        const XGL_IMAGE_VIEW_CREATE_INFO*           pCreateInfo,
     //        XGL_IMAGE_VIEW*                             pView);
 
-    err = xglCreateImageView(gpu->device(), &viewInfo, &view);
-    ASSERT_XGL_SUCCESS(err);
+    CreateImageView(&viewInfo, &imageView);
+
+    DestroyImageView(imageView);
 }
 
 int main(int argc, char **argv) {