diff --git a/lib/API/Device.cpp b/lib/API/Device.cpp index fc1044884..8d28a26ec 100644 --- a/lib/API/Device.cpp +++ b/lib/API/Device.cpp @@ -15,7 +15,6 @@ #include "llvm/Support/Error.h" -#include #include using namespace offloadtest; @@ -27,21 +26,24 @@ Device::~Device() {} llvm::Expected>> offloadtest::initializeDevices(const DeviceConfig Config) { llvm::SmallVector> Devices; + llvm::Error Result = llvm::Error::success(); #ifdef OFFLOADTEST_ENABLE_D3D12 if (auto Err = initializeDX12Devices(Config, Devices)) - return Err; + Result = llvm::joinErrors(std::move(Result), std::move(Err)); #endif #ifdef OFFLOADTEST_ENABLE_VULKAN if (auto Err = initializeVulkanDevices(Config, Devices)) - return Err; + Result = llvm::joinErrors(std::move(Result), std::move(Err)); #endif #ifdef OFFLOADTEST_ENABLE_METAL if (auto Err = initializeMetalDevices(Config, Devices)) - return Err; + Result = llvm::joinErrors(std::move(Result), std::move(Err)); #endif + if (Result) + return std::move(Result); return Devices; } diff --git a/test/lit.cfg.py b/test/lit.cfg.py index 35e8f2ba5..029953e74 100644 --- a/test/lit.cfg.py +++ b/test/lit.cfg.py @@ -241,7 +241,7 @@ def setDeviceFeatures(config, device, compiler): target_device = None # Find the right device to configure against pattern = re.compile(GPUName, re.IGNORECASE) -for device in devices["Devices"]: +for device in devices.get("Devices", []): is_warp = "Microsoft Basic Render Driver" in device["Description"] is_gpu_name_match = bool(pattern.search(device["Description"])) if device["API"] == "DirectX" and config.offloadtest_enable_d3d12: