tests: Add xglGetImageSubresourceInfo test

Include xglGetImageSubresourceInfo calls as part of the
base test.
diff --git a/tests/init.cpp b/tests/init.cpp
index bfbe69f..447cf16 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -449,6 +449,7 @@
     XGL_SIZE size;
     XGL_FORMAT fmt;
     XGL_FORMAT_PROPERTIES image_fmt;
+    XGL_UINT data_size;
 
     w =512;
     h = 256;
@@ -525,8 +526,58 @@
     err = xglCreateImage(this->gpu->device(), &imageCreateInfo, &image);
     ASSERT_XGL_SUCCESS(err);
 
+    // Verify image resources
+//    XGL_RESULT XGLAPI xglGetImageSubresourceInfo(
+//        XGL_IMAGE                                   image,
+//        const XGL_IMAGE_SUBRESOURCE*                pSubresource,
+//        XGL_SUBRESOURCE_INFO_TYPE                   infoType,
+//        XGL_SIZE*                                   pDataSize,
+//        XGL_VOID*                                   pData);
+//    typedef struct _XGL_SUBRESOURCE_LAYOUT
+//    {
+//        XGL_GPU_SIZE                            offset;                 // Specified in bytes
+//        XGL_GPU_SIZE                            size;                   // Specified in bytes
+//        XGL_GPU_SIZE                            rowPitch;               // Specified in bytes
+//        XGL_GPU_SIZE                            depthPitch;             // Specified in bytes
+//    } XGL_SUBRESOURCE_LAYOUT;
+
+//    typedef struct _XGL_IMAGE_SUBRESOURCE
+//    {
+//        XGL_IMAGE_ASPECT                        aspect;
+//        XGL_UINT                                mipLevel;
+//        XGL_UINT                                arraySlice;
+//    } XGL_IMAGE_SUBRESOURCE;
+//    typedef enum _XGL_SUBRESOURCE_INFO_TYPE
+//    {
+//        // Info type for xglGetImageSubresourceInfo()
+//        XGL_INFO_TYPE_SUBRESOURCE_LAYOUT                        = 0x00000000,
+
+//        XGL_MAX_ENUM(_XGL_SUBRESOURCE_INFO_TYPE)
+//    } XGL_SUBRESOURCE_INFO_TYPE;
+    XGL_IMAGE_SUBRESOURCE subresource = {};
+    subresource.aspect = XGL_IMAGE_ASPECT_COLOR;
+    subresource.arraySlice = 0;
+
+    _w = w;
+    _h = h;
+    while( ( _w > 0 ) || ( _h > 0 ) )
+    {
+        XGL_SUBRESOURCE_LAYOUT layout = {};
+
+        err = xglGetImageSubresourceInfo(image, &subresource, XGL_INFO_TYPE_SUBRESOURCE_LAYOUT,
+                                         &data_size, &layout);
+        ASSERT_XGL_SUCCESS(err);
+        ASSERT_EQ(sizeof(XGL_SUBRESOURCE_LAYOUT), data_size) << "Invalid structure (XGL_SUBRESOURCE_LAYOUT) size";
+
+        // TODO: 4 should be replaced with pixel size for given format
+        EXPECT_LE(_w * 4, layout.rowPitch) << "Pitch does not match expected image pitch";
+        _w >>= 1;
+        _h >>= 1;
+
+        subresource.mipLevel++;
+    }
+
     XGL_MEMORY_REQUIREMENTS mem_req;
-    XGL_UINT data_size;
     err = xglGetObjectInfo(image, XGL_INFO_TYPE_MEMORY_REQUIREMENTS,
                            &data_size, &mem_req);
     ASSERT_XGL_SUCCESS(err);
@@ -589,7 +640,7 @@
 //        XGL_IMAGE_VIEW*                             pView);
 
     err = xglCreateImageView(gpu->device(), &viewInfo, &view);
-    ASSERT_XGL_SUCCESS(err);
+    ASSERT_XGL_SUCCESS(err) << "xglCreateImageView failed";
 
     // TODO: Test image memory.