tests:Add destructors for 4 objects

Textures, Pipelines, Shaders and Samplers
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 59d5302..1524e28 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -753,6 +753,10 @@
     m_textureViewInfo.view = m_textureView;
 
 }
+XglTextureObj::~XglTextureObj()
+{
+       if (m_texture != XGL_NULL_HANDLE) xglDestroyObject(m_texture);
+}
 
 void XglTextureObj::ChangeColors(uint32_t color1, uint32_t color2)
 {
@@ -797,6 +801,10 @@
     assert(!err);
 
 }
+XglSamplerObj::~XglSamplerObj()
+{
+    if (m_sampler != XGL_NULL_HANDLE) xglDestroyObject(m_sampler);
+}
 
 /*
  * Basic ConstantBuffer constructor. Then use create methods to fill in the details.
@@ -1073,7 +1081,10 @@
         assert(!err);
     }
 }
-
+XglShaderObj::~XglShaderObj()
+{
+    if (m_shader != XGL_NULL_HANDLE) xglDestroyObject(m_shader);
+}
 XglPipelineObj::XglPipelineObj(XglDevice *device)
 {
     XGL_RESULT err;
@@ -1184,7 +1195,10 @@
         m_vertexBufferObjs[i]->Bind(m_cmdBuffer, m_vertexBufferObjs[i]->m_constantBufferView.offset,  m_vertexBufferBindings[i]);
     }
 }
-
+XglPipelineObj::~XglPipelineObj()
+{
+       if (m_pipeline != XGL_NULL_HANDLE) xglDestroyObject(m_pipeline);
+}
 
 XglMemoryRefManager::XglMemoryRefManager() {
 
diff --git a/tests/xglrenderframework.h b/tests/xglrenderframework.h
index bc61c7f..ea1b576 100644
--- a/tests/xglrenderframework.h
+++ b/tests/xglrenderframework.h
@@ -153,6 +153,7 @@
 {
 public:
     XglTextureObj(XglDevice *device);
+    ~XglTextureObj();
     void ChangeColors(uint32_t color1, uint32_t color2);
     XGL_IMAGE                  m_texture;
     XGL_IMAGE_VIEW_ATTACH_INFO m_textureViewInfo;
@@ -171,6 +172,7 @@
 {
 public:
     XglSamplerObj(XglDevice *device);
+    ~XglSamplerObj();
     XGL_SAMPLER m_sampler;
 
 protected:
@@ -210,6 +212,7 @@
 {
 public:
     XglShaderObj(XglDevice *device, const char * shaderText, XGL_PIPELINE_SHADER_STAGE stage, XglRenderFramework *framework);
+    ~XglShaderObj();
     XGL_PIPELINE_SHADER_STAGE_CREATE_INFO* GetStageCreateInfo(XglDescriptorSetObj *descriptorSet);
     void BindShaderEntitySlotToMemory(int slot, XGL_DESCRIPTOR_SET_SLOT_TYPE type, XglConstantBufferObj *constantBuffer);
     void BindShaderEntitySlotToImage(int slot, XGL_DESCRIPTOR_SET_SLOT_TYPE type, XglTextureObj *texture);
@@ -236,6 +239,7 @@
 {
 public:
     XglPipelineObj(XglDevice *device);
+    ~XglPipelineObj();
     void BindPipelineCommandBuffer(XGL_CMD_BUFFER m_cmdBuffer, XglDescriptorSetObj *descriptorSet);
     void AddShader(XglShaderObj* shaderObj);
     void AddVertexInputAttribs(XGL_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION* vi_attrib, int count);