From 2a993fda3d007dfa6e3d9513eeedcfddb25fb612 Mon Sep 17 00:00:00 2001 From: "Jablonski, Mateusz" Date: Wed, 26 Feb 2020 09:08:22 +0100 Subject: [PATCH] Linux: discover all devices Related-To: NEO-4208 Change-Id: Id1a6d4a71790623fe27a1687c8a3553b3b70f398 Signed-off-by: Jablonski, Mateusz --- opencl/test/unit_test/linux/main_linux_dll.cpp | 17 +++++++++++++++++ shared/source/os_interface/linux/drm_neo.cpp | 1 - 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/opencl/test/unit_test/linux/main_linux_dll.cpp b/opencl/test/unit_test/linux/main_linux_dll.cpp index fcf718af91..be7647e3e5 100644 --- a/opencl/test/unit_test/linux/main_linux_dll.cpp +++ b/opencl/test/unit_test/linux/main_linux_dll.cpp @@ -59,6 +59,23 @@ int testOpen(const char *fullPath, int, ...) { return openRetVal; }; +int openCounter = 1; +int openWithCounter(const char *fullPath, int, ...) { + if (openCounter > 0) { + openCounter--; + return 1023; // valid file descriptor for ULT + } + return -1; +}; + +TEST(DrmTest, GivenTwoOpenableDevicesWhenDiscoverDevicesThenCreateTwoHwDeviceIds) { + VariableBackup backupOpenFull(&openFull); + openFull = openWithCounter; + openCounter = 2; + auto hwDeviceIds = OSInterface::discoverDevices(); + EXPECT_EQ(2u, hwDeviceIds.size()); +} + TEST(DrmTest, GivenSelectedNotExistingDeviceWhenGetDeviceFdThenFail) { DebugManagerStateRestore stateRestore; DebugManager.flags.ForceDeviceId.set("1234"); diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 501405d446..0859465518 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -323,7 +323,6 @@ std::vector> OSInterface::discoverDevices() { if (fileDescriptor >= 0) { if (Drm::isi915Version(fileDescriptor)) { hwDeviceIds.push_back(std::make_unique(fileDescriptor)); - break; } else { SysCalls::close(fileDescriptor); }