Skip to content

Commit 6156fb2

Browse files
Jaime ArteagaCompute-Runtime-Automation
authored andcommitted
Add ULTs for L0 context interfaces
Signed-off-by: Jaime Arteaga <[email protected]>
1 parent 2d2d86b commit 6156fb2

File tree

2 files changed

+201
-0
lines changed

2 files changed

+201
-0
lines changed

level_zero/core/test/unit_tests/sources/context/test_context.cpp

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "test.h"
1313

1414
#include "level_zero/core/source/context/context_imp.h"
15+
#include "level_zero/core/source/image/image.h"
1516
#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h"
1617
#include "level_zero/core/test/unit_tests/fixtures/host_pointer_manager_fixture.h"
1718
#include "level_zero/core/test/unit_tests/mocks/mock_driver_handle.h"
@@ -333,5 +334,128 @@ HWTEST_F(ContextMakeMemoryResidentAndMigrationTests,
333334
context->freeMem(ptr);
334335
}
335336

337+
TEST_F(ContextTest, whenGettingDriverThenDriverIsRetrievedSuccessfully) {
338+
ze_context_handle_t hContext;
339+
ze_context_desc_t desc;
340+
341+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
342+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
343+
344+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
345+
L0::DriverHandle *driverHandleFromContext = contextImp->getDriverHandle();
346+
EXPECT_EQ(driverHandleFromContext, driverHandle.get());
347+
348+
res = contextImp->destroy();
349+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
350+
}
351+
352+
TEST_F(ContextTest, whenCallingVirtualMemInterfacesThenUnsupportedIsReturned) {
353+
ze_context_handle_t hContext;
354+
ze_context_desc_t desc;
355+
356+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
357+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
358+
359+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
360+
361+
void *pStart = 0x0;
362+
size_t size = 0u;
363+
void *ptr = nullptr;
364+
res = contextImp->reserveVirtualMem(pStart, size, &ptr);
365+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
366+
367+
size_t pagesize = 0u;
368+
res = contextImp->queryVirtualMemPageSize(device, size, &pagesize);
369+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
370+
371+
res = contextImp->freeVirtualMem(ptr, size);
372+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
373+
374+
res = contextImp->destroy();
375+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
376+
}
377+
378+
TEST_F(ContextTest, whenCallingPhysicalMemInterfacesThenUnsupportedIsReturned) {
379+
ze_context_handle_t hContext;
380+
ze_context_desc_t desc;
381+
382+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
383+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
384+
385+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
386+
387+
ze_physical_mem_desc_t descMem = {};
388+
ze_physical_mem_handle_t mem = {};
389+
res = contextImp->createPhysicalMem(device, &descMem, &mem);
390+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
391+
392+
res = contextImp->destroyPhysicalMem(mem);
393+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
394+
395+
res = contextImp->destroy();
396+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
397+
}
398+
399+
TEST_F(ContextTest, whenCallingMappingVirtualInterfacesThenUnsupportedIsReturned) {
400+
ze_context_handle_t hContext;
401+
ze_context_desc_t desc;
402+
403+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
404+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
405+
406+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
407+
408+
ze_physical_mem_desc_t descMem = {};
409+
ze_physical_mem_handle_t mem = {};
410+
res = contextImp->createPhysicalMem(device, &descMem, &mem);
411+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
412+
413+
ze_memory_access_attribute_t access = {};
414+
size_t offset = 0;
415+
void *ptr = nullptr;
416+
size_t size = 0;
417+
res = contextImp->mapVirtualMem(ptr, size, mem, offset, access);
418+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
419+
420+
res = contextImp->setVirtualMemAccessAttribute(ptr, size, access);
421+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
422+
423+
ze_memory_access_attribute_t outAccess = {};
424+
size_t outSize = 0;
425+
res = contextImp->getVirtualMemAccessAttribute(ptr, size, &outAccess, &outSize);
426+
427+
res = contextImp->unMapVirtualMem(ptr, size);
428+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
429+
430+
res = contextImp->destroyPhysicalMem(mem);
431+
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
432+
433+
res = contextImp->destroy();
434+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
435+
}
436+
437+
using IsAtMostProductDG1 = IsAtMostProduct<IGFX_DG1>;
438+
439+
HWTEST2_F(ContextTest, WhenCreatingImageThenSuccessIsReturned, IsAtMostProductDG1) {
440+
ze_context_handle_t hContext;
441+
ze_context_desc_t desc;
442+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
443+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
444+
445+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
446+
447+
ze_image_handle_t image = {};
448+
ze_image_desc_t imageDesc = {};
449+
450+
res = contextImp->createImage(device, &imageDesc, &image);
451+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
452+
EXPECT_NE(nullptr, image);
453+
454+
Image::fromHandle(image)->destroy();
455+
456+
res = contextImp->destroy();
457+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
458+
}
459+
336460
} // namespace ult
337461
} // namespace L0

level_zero/core/test/unit_tests/sources/memory/test_memory.cpp

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "opencl/test/unit_test/mocks/mock_memory_manager.h"
1212
#include "test.h"
1313

14+
#include "level_zero/core/source/context/context_imp.h"
1415
#include "level_zero/core/source/driver/host_pointer_manager.h"
1516
#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h"
1617
#include "level_zero/core/test/unit_tests/mocks/mock_built_ins.h"
@@ -624,10 +625,86 @@ TEST_F(MemoryIPCTests,
624625
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
625626
EXPECT_EQ(ipcPtr, ptr);
626627

628+
result = driverHandle->closeIpcMemHandle(ipcPtr);
629+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
630+
627631
result = driverHandle->freeMem(ptr);
628632
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
629633
}
630634

635+
TEST_F(MemoryIPCTests,
636+
whenCallingOpenIpcHandleWithIpcHandleAndUsingContextThenDeviceAllocationIsReturned) {
637+
size_t size = 10;
638+
size_t alignment = 1u;
639+
void *ptr = nullptr;
640+
641+
ze_context_handle_t hContext;
642+
ze_context_desc_t desc;
643+
644+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
645+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
646+
647+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
648+
649+
ze_device_mem_alloc_desc_t deviceDesc = {};
650+
ze_result_t result = contextImp->allocDeviceMem(device->toHandle(),
651+
&deviceDesc,
652+
size, alignment, &ptr);
653+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
654+
EXPECT_NE(nullptr, ptr);
655+
656+
ze_ipc_mem_handle_t ipcHandle = {};
657+
result = contextImp->getIpcMemHandle(ptr, &ipcHandle);
658+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
659+
660+
ze_ipc_memory_flag_t flags = {};
661+
void *ipcPtr;
662+
result = contextImp->openIpcMemHandle(device->toHandle(), ipcHandle, flags, &ipcPtr);
663+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
664+
EXPECT_EQ(ipcPtr, ptr);
665+
666+
result = contextImp->closeIpcMemHandle(ipcPtr);
667+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
668+
669+
result = contextImp->freeMem(ptr);
670+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
671+
672+
result = contextImp->destroy();
673+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
674+
}
675+
676+
TEST_F(MemoryIPCTests,
677+
givenCallingGetIpcHandleWithDeviceAllocationAndUsingContextThenIpcHandleIsReturned) {
678+
size_t size = 10;
679+
size_t alignment = 1u;
680+
void *ptr = nullptr;
681+
682+
ze_context_handle_t hContext;
683+
ze_context_desc_t desc;
684+
685+
ze_result_t res = driverHandle->createContext(&desc, &hContext);
686+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
687+
688+
ContextImp *contextImp = static_cast<ContextImp *>(L0::Context::fromHandle(hContext));
689+
690+
ze_device_mem_alloc_desc_t deviceDesc = {};
691+
ze_result_t result = contextImp->allocDeviceMem(device->toHandle(),
692+
&deviceDesc,
693+
size, alignment, &ptr);
694+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
695+
EXPECT_NE(nullptr, ptr);
696+
697+
ze_ipc_mem_handle_t ipcHandle;
698+
result = contextImp->getIpcMemHandle(ptr, &ipcHandle);
699+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
700+
701+
result = contextImp->freeMem(ptr);
702+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
703+
704+
result = contextImp->destroy();
705+
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
706+
}
707+
631708
TEST_F(MemoryIPCTests,
632709
whenCallingOpenIpcHandleWithIncorrectHandleThenInvalidArgumentIsReturned) {
633710
ze_ipc_mem_handle_t ipcHandle = {};

0 commit comments

Comments
 (0)