mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Cleanup host ptr manager
Change-Id: I0fc9df41a08255eef8072666c1c5c16806e0f7cf Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
e128cb7a7c
commit
129380c1a6
@ -23,6 +23,7 @@
|
||||
#include "unit_tests/mocks/mock_event.h"
|
||||
#include "unit_tests/mocks/mock_kernel.h"
|
||||
#include "unit_tests/mocks/mock_mdi.h"
|
||||
#include "unit_tests/mocks/mock_memory_manager.h"
|
||||
#include "unit_tests/mocks/mock_program.h"
|
||||
#include "unit_tests/os_interface/mock_performance_counters.h"
|
||||
#include <memory>
|
||||
@ -382,22 +383,41 @@ TEST_F(EventTest, Event_Wait_NonBlocking) {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_F(EventTest, givenEventContainingCommandQueueWhenItsStatusIsUpdatedToCompletedThenTemporaryAllocationsAreDeleted) {
|
||||
struct UpdateEventTest : public ::testing::Test {
|
||||
|
||||
auto memoryManager = pCmdQ->getDevice().getMemoryManager();
|
||||
void SetUp() override {
|
||||
executionEnvironment = new ExecutionEnvironment;
|
||||
memoryManager = new MockMemoryManager(*executionEnvironment);
|
||||
hostPtrManager = static_cast<MockHostPtrManager *>(memoryManager->getHostPtrManager());
|
||||
executionEnvironment->memoryManager.reset(memoryManager);
|
||||
device.reset(Device::create<Device>(*platformDevices, executionEnvironment, 0u));
|
||||
context = std::make_unique<MockContext>(device.get());
|
||||
cl_int retVal = CL_OUT_OF_RESOURCES;
|
||||
commandQueue.reset(CommandQueue::create(context.get(), device.get(), nullptr, retVal));
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
ExecutionEnvironment *executionEnvironment;
|
||||
MockMemoryManager *memoryManager;
|
||||
MockHostPtrManager *hostPtrManager;
|
||||
std::unique_ptr<Device> device;
|
||||
std::unique_ptr<Context> context;
|
||||
std::unique_ptr<CommandQueue> commandQueue;
|
||||
};
|
||||
|
||||
TEST_F(UpdateEventTest, givenEventContainingCommandQueueWhenItsStatusIsUpdatedToCompletedThenTemporaryAllocationsAreDeleted) {
|
||||
void *ptr = (void *)0x1000;
|
||||
size_t size = 4096;
|
||||
auto temporary = memoryManager->allocateGraphicsMemory(size, ptr);
|
||||
temporary->taskCount = 3;
|
||||
memoryManager->storeAllocation(std::unique_ptr<GraphicsAllocation>(temporary), TEMPORARY_ALLOCATION);
|
||||
Event event(pCmdQ, CL_COMMAND_NDRANGE_KERNEL, 3, 3);
|
||||
Event event(commandQueue.get(), CL_COMMAND_NDRANGE_KERNEL, 3, 3);
|
||||
|
||||
EXPECT_EQ(1u, memoryManager->hostPtrManager.getFragmentCount());
|
||||
EXPECT_EQ(1u, hostPtrManager->getFragmentCount());
|
||||
|
||||
event.updateExecutionStatus();
|
||||
|
||||
EXPECT_EQ(0u, memoryManager->hostPtrManager.getFragmentCount());
|
||||
EXPECT_EQ(0u, hostPtrManager->getFragmentCount());
|
||||
}
|
||||
|
||||
class SurfaceMock : public Surface {
|
||||
|
Reference in New Issue
Block a user