diff --git a/tests/VulkanUnitTests/Device.cpp b/tests/VulkanUnitTests/Device.cpp
index 098e736..18ebe18 100644
--- a/tests/VulkanUnitTests/Device.cpp
+++ b/tests/VulkanUnitTests/Device.cpp
@@ -171,6 +171,11 @@
 	return VK_SUCCESS;
 }
 
+void Device::DestroyBuffer(VkBuffer buffer) const
+{
+	driver->vkDestroyBuffer(device, buffer, nullptr);
+}
+
 VkResult Device::CreateShaderModule(
 		const std::vector<uint32_t>& spirv, VkShaderModule* out) const
 {
@@ -184,6 +189,11 @@
 	return driver->vkCreateShaderModule(device, &info, 0, out);
 }
 
+void Device::DestroyShaderModule(VkShaderModule shaderModule) const
+{
+	driver->vkDestroyShaderModule(device, shaderModule, nullptr);
+}
+
 VkResult Device::CreateDescriptorSetLayout(
 		const std::vector<VkDescriptorSetLayoutBinding>& bindings,
 		VkDescriptorSetLayout* out) const
@@ -199,6 +209,11 @@
 	return driver->vkCreateDescriptorSetLayout(device, &info, 0, out);
 }
 
+void Device::DestroyDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) const
+{
+	driver->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr);
+}
+
 VkResult Device::CreatePipelineLayout(
 		VkDescriptorSetLayout layout, VkPipelineLayout* out) const
 {
@@ -215,6 +230,11 @@
 	return driver->vkCreatePipelineLayout(device, &info, 0, out);
 }
 
+void Device::DestroyPipelineLayout(VkPipelineLayout pipelineLayout) const
+{
+	driver->vkDestroyPipelineLayout(device, pipelineLayout, nullptr);
+}
+
 VkResult Device::CreateComputePipeline(
 		VkShaderModule module, VkPipelineLayout pipelineLayout,
 		VkPipeline* out) const
@@ -241,6 +261,11 @@
 	return driver->vkCreateComputePipelines(device, 0, 1, &info, 0, out);
 }
 
+void Device::DestroyPipeline(VkPipeline pipeline) const
+{
+	driver->vkDestroyPipeline(device, pipeline, nullptr);
+}
+
 VkResult Device::CreateStorageBufferDescriptorPool(uint32_t descriptorCount,
 		VkDescriptorPool* out) const
 {
@@ -261,6 +286,11 @@
 	return driver->vkCreateDescriptorPool(device, &info, 0, out);
 }
 
+void Device::DestroyDescriptorPool(VkDescriptorPool descriptorPool) const
+{
+	driver->vkDestroyDescriptorPool(device, descriptorPool, nullptr);
+}
+
 VkResult Device::AllocateDescriptorSet(
 		VkDescriptorPool pool, VkDescriptorSetLayout layout,
 		VkDescriptorSet* out) const
@@ -331,6 +361,11 @@
     return VK_ERROR_OUT_OF_DEVICE_MEMORY; // TODO: Change to something not made up?
 }
 
+void Device::FreeMemory(VkDeviceMemory memory) const
+{
+	driver->vkFreeMemory(device, memory, nullptr);
+}
+
 VkResult Device::MapMemory(VkDeviceMemory memory, VkDeviceSize offset,
 		VkDeviceSize size, VkMemoryMapFlags flags, void **ppData) const
 {
@@ -353,6 +388,11 @@
     return driver->vkCreateCommandPool(device, &info, 0, out);
 }
 
+void Device::DestroyCommandPool(VkCommandPool commandPool) const
+{
+    return driver->vkDestroyCommandPool(device, commandPool, nullptr);
+}
+
 VkResult Device::AllocateCommandBuffer(
 		VkCommandPool pool, VkCommandBuffer* out) const
 {
@@ -366,6 +406,11 @@
     return driver->vkAllocateCommandBuffers(device, &info, out);
 }
 
+void Device::FreeCommandBuffer(VkCommandPool pool, VkCommandBuffer buffer)
+{
+	driver->vkFreeCommandBuffers(device, pool, 1, &buffer);
+}
+
 VkResult Device::BeginCommandBuffer(
 		VkCommandBufferUsageFlags usage, VkCommandBuffer commandBuffer) const
 {
diff --git a/tests/VulkanUnitTests/Device.hpp b/tests/VulkanUnitTests/Device.hpp
index 37b9108..ec582a7 100644
--- a/tests/VulkanUnitTests/Device.hpp
+++ b/tests/VulkanUnitTests/Device.hpp
@@ -46,32 +46,50 @@
 	VkResult CreateStorageBuffer(VkDeviceMemory memory, VkDeviceSize size,
 			VkDeviceSize offset, VkBuffer *out) const;
 
+	// DestroyBuffer destroys a VkBuffer.
+	void DestroyBuffer(VkBuffer buffer) const;
+
 	// CreateShaderModule creates a new shader module with the given SPIR-V
 	// code.
 	VkResult CreateShaderModule(const std::vector<uint32_t> &spirv,
 			VkShaderModule *out) const;
 
+	// DestroyShaderModule destroys a VkShaderModule.
+	void DestroyShaderModule(VkShaderModule shaderModule) const;
+
 	// CreateDescriptorSetLayout creates a new descriptor set layout with the
 	// given bindings.
 	VkResult CreateDescriptorSetLayout(
 			const std::vector<VkDescriptorSetLayoutBinding> &bindings,
 			VkDescriptorSetLayout *out) const;
 
+	// DestroyDescriptorSetLayout destroys a VkDescriptorSetLayout.
+	void DestroyDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) const;
+
 	// CreatePipelineLayout creates a new single set descriptor set layout.
 	VkResult CreatePipelineLayout(VkDescriptorSetLayout layout,
 			VkPipelineLayout *out) const;
 
+	// DestroyPipelineLayout destroys a VkPipelineLayout.
+	void DestroyPipelineLayout(VkPipelineLayout pipelineLayout) const;
+
 	// CreateComputePipeline creates a new compute pipeline with the entry point
 	// "main".
 	VkResult CreateComputePipeline(VkShaderModule module,
 			VkPipelineLayout pipelineLayout,
 			VkPipeline *out) const;
 
+	// DestroyPipeline destroys a graphics or compute pipeline.
+	void DestroyPipeline(VkPipeline pipeline) const;
+
 	// CreateStorageBufferDescriptorPool creates a new descriptor pool that can
 	// hold descriptorCount storage buffers.
 	VkResult CreateStorageBufferDescriptorPool(uint32_t descriptorCount,
 			VkDescriptorPool *out) const;
 
+	// DestroyDescriptorPool destroys the VkDescriptorPool.
+	void DestroyDescriptorPool(VkDescriptorPool descriptorPool) const;
+
 	// AllocateDescriptorSet allocates a single descriptor set with the given
 	// layout from pool.
 	VkResult AllocateDescriptorSet(VkDescriptorPool pool,
@@ -89,6 +107,9 @@
 	// VK_ERROR_OUT_OF_DEVICE_MEMORY is returned.
 	VkResult AllocateMemory(size_t size, VkMemoryPropertyFlags flags, VkDeviceMemory* out) const;
 
+	// FreeMemory frees the VkDeviceMemory.
+	void FreeMemory(VkDeviceMemory memory) const;
+
 	// MapMemory wraps vkMapMemory, supplying the first VkDevice parameter.
 	VkResult MapMemory(VkDeviceMemory memory, VkDeviceSize offset,
 			VkDeviceSize size, VkMemoryMapFlags flags, void **ppData) const;
@@ -99,9 +120,15 @@
 	// CreateCommandPool creates a new command pool.
 	VkResult CreateCommandPool(VkCommandPool* out) const;
 
+	// DestroyCommandPool destroys a VkCommandPool.
+	void DestroyCommandPool(VkCommandPool commandPool) const;
+
 	// AllocateCommandBuffer creates a new command buffer with a primary level.
 	VkResult AllocateCommandBuffer(VkCommandPool pool, VkCommandBuffer* out) const;
 
+	// FreeCommandBuffer frees the VkCommandBuffer.
+	void FreeCommandBuffer(VkCommandPool pool, VkCommandBuffer buffer);
+
 	// BeginCommandBuffer begins writing to commandBuffer.
 	VkResult BeginCommandBuffer(VkCommandBufferUsageFlags usage, VkCommandBuffer commandBuffer) const;
 
diff --git a/tests/VulkanUnitTests/VkInstanceFuncs.hpp b/tests/VulkanUnitTests/VkInstanceFuncs.hpp
index bcd054f..a8ba8f5 100644
--- a/tests/VulkanUnitTests/VkInstanceFuncs.hpp
+++ b/tests/VulkanUnitTests/VkInstanceFuncs.hpp
@@ -42,9 +42,19 @@
             VkPipelineLayout*);
 VK_INSTANCE(vkCreateShaderModule, VkResult, VkDevice, const VkShaderModuleCreateInfo*, const VkAllocationCallbacks*,
             VkShaderModule*);
+VK_INSTANCE(vkDestroyBuffer, void, VkDevice, VkBuffer, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyCommandPool, void, VkDevice, VkCommandPool, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyDescriptorPool, void, VkDevice, VkDescriptorPool, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyDescriptorSetLayout, void, VkDevice, VkDescriptorSetLayout, const VkAllocationCallbacks*);
 VK_INSTANCE(vkDestroyDevice, VkResult, VkDevice, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyInstance, void, VkInstance, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyPipeline, void, VkDevice, VkPipeline, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyPipelineLayout, void, VkDevice, VkPipelineLayout, const VkAllocationCallbacks*);
+VK_INSTANCE(vkDestroyShaderModule, void, VkDevice, VkShaderModule, const VkAllocationCallbacks*);
 VK_INSTANCE(vkEndCommandBuffer, VkResult, VkCommandBuffer);
 VK_INSTANCE(vkEnumeratePhysicalDevices, VkResult, VkInstance, uint32_t*, VkPhysicalDevice*);
+VK_INSTANCE(vkFreeCommandBuffers, void, VkDevice, VkCommandPool, uint32_t, const VkCommandBuffer*);
+VK_INSTANCE(vkFreeMemory, void, VkDevice, VkDeviceMemory, const VkAllocationCallbacks*);
 VK_INSTANCE(vkGetDeviceQueue, void, VkDevice, uint32_t, uint32_t, VkQueue*);
 VK_INSTANCE(vkGetPhysicalDeviceMemoryProperties, void, VkPhysicalDevice, VkPhysicalDeviceMemoryProperties*);
 VK_INSTANCE(vkGetPhysicalDeviceProperties, void, VkPhysicalDevice, VkPhysicalDeviceProperties*);
diff --git a/tests/VulkanUnitTests/unittests.cpp b/tests/VulkanUnitTests/unittests.cpp
index d2bfcc5..8a986b1 100644
--- a/tests/VulkanUnitTests/unittests.cpp
+++ b/tests/VulkanUnitTests/unittests.cpp
@@ -103,6 +103,8 @@
     EXPECT_EQ(physicalDeviceProperties.deviceType, VK_PHYSICAL_DEVICE_TYPE_CPU);
 
     EXPECT_EQ(strncmp(physicalDeviceProperties.deviceName, "SwiftShader Device", VK_MAX_PHYSICAL_DEVICE_NAME_SIZE), 0);
+
+    driver.vkDestroyInstance(instance, nullptr);
 }
 
 std::vector<uint32_t> compileSpirv(const char* assembly)
@@ -357,6 +359,19 @@
 
     device->UnmapMemory(memory);
     buffers = nullptr;
+
+    device->FreeCommandBuffer(commandPool, commandBuffer);
+    device->FreeMemory(memory);
+    device->DestroyPipeline(pipeline);
+    device->DestroyCommandPool(commandPool);
+    device->DestroyPipelineLayout(pipelineLayout);
+    device->DestroyDescriptorSetLayout(descriptorSetLayout);
+    device->DestroyDescriptorPool(descriptorPool);
+    device->DestroyBuffer(bufferIn);
+    device->DestroyBuffer(bufferOut);
+    device->DestroyShaderModule(shaderModule);
+    device.reset(nullptr);
+    driver.vkDestroyInstance(instance, nullptr);
 }
 
 INSTANTIATE_TEST_CASE_P(ComputeParams, SwiftShaderVulkanBufferToBufferComputeTest, testing::Values(
