Drm create context with an implicit virtual memory address space

Related-To: NEO-4821

Change-Id: I18545d976788daacbb195e243f4049b7f83fd3a2
This commit is contained in:
Slawomir Milczarek
2020-07-14 04:36:16 +02:00
committed by sys_ocldev
parent 031ee61b5a
commit 3c4c7a0215
5 changed files with 34 additions and 11 deletions

View File

@ -430,11 +430,23 @@ TEST_F(DrmTests, whenDrmIsCreatedWithMultipleSubDevicesThenCreateMultipleVirtual
}
}
TEST_F(DrmTests, givenDrmIsCreatedWhenCreateVirtualMemoryFailsThenCallAbort) {
VariableBackup<decltype(failOnVirtualMemoryCreate)> backupFailOnVirtaualMemoryCreate(&failOnVirtualMemoryCreate);
TEST_F(DrmTests, givenDrmIsCreatedWhenCreateVirtualMemoryFailsThenReturnVirtualMemoryIdZeroAndPrintDebugMessage) {
DebugManagerStateRestore dbgRestorer;
DebugManager.flags.PrintDebugMessages.set(true);
VariableBackup<decltype(failOnVirtualMemoryCreate)> backupFailOnVirtualMemoryCreate(&failOnVirtualMemoryCreate);
failOnVirtualMemoryCreate = -1;
EXPECT_THROW(DrmWrap::createDrm(*rootDeviceEnvironment), std::exception);
::testing::internal::CaptureStderr();
auto drm = DrmWrap::createDrm(*rootDeviceEnvironment);
EXPECT_NE(drm, nullptr);
EXPECT_EQ(0u, drm->getVirtualMemoryAddressSpace(0));
EXPECT_EQ(0u, static_cast<DrmWrap *>(drm.get())->virtualMemoryIds.size());
std::string errStr = ::testing::internal::GetCapturedStderr();
EXPECT_THAT(errStr, ::testing::HasSubstr(std::string("INFO: Device doesn't support GEM Virtual Memory")));
}
int main(int argc, char **argv) {