diff --git a/offload/liboffload/src/OffloadImpl.cpp b/offload/liboffload/src/OffloadImpl.cpp index c6f64d218cd2..f2a02d1cff94 100644 --- a/offload/liboffload/src/OffloadImpl.cpp +++ b/offload/liboffload/src/OffloadImpl.cpp @@ -230,6 +230,12 @@ Error olGetDeviceInfoImplDetail(ol_device_handle_t Device, // Find the info if it exists under any of the given names auto GetInfo = [&](std::vector Names) { InfoQueueTy DevInfo; + if (Device == HostDevice()) + return std::string("Host"); + + if (!Device->Device) + return std::string(""); + if (auto Err = Device->Device->obtainInfoImpl(DevInfo)) return std::string(""); diff --git a/offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp b/offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp index 46ed622fa8b8..1240f219813e 100644 --- a/offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp +++ b/offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp @@ -37,6 +37,16 @@ TEST_P(olGetDeviceInfoTest, SuccessName) { ASSERT_EQ(std::strlen(Name.data()), Size - 1); } +TEST_P(olGetDeviceInfoTest, HostName) { + size_t Size = 0; + ASSERT_SUCCESS(olGetDeviceInfoSize(Host, OL_DEVICE_INFO_NAME, &Size)); + ASSERT_GT(Size, 0ul); + std::vector Name; + Name.resize(Size); + ASSERT_SUCCESS(olGetDeviceInfo(Host, OL_DEVICE_INFO_NAME, Size, Name.data())); + ASSERT_EQ(std::strlen(Name.data()), Size - 1); +} + TEST_P(olGetDeviceInfoTest, SuccessVendor) { size_t Size = 0; ASSERT_SUCCESS(olGetDeviceInfoSize(Device, OL_DEVICE_INFO_VENDOR, &Size));