Files
compute-runtime/shared/test/common/mocks/mock_driver_model.h
Mateusz Jablonski af0e387f35 fix: ensure proper drm cleanup in L0 sysman init path
drm cleanup currently applied in positive scenario should be also
applied in case of multi GPU if some devices failed at initialization

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2025-07-09 13:48:53 +02:00

70 lines
1.9 KiB
C++

/*
* Copyright (C) 2022-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/helpers/driver_model_type.h"
#include "shared/source/os_interface/driver_info.h"
#include "shared/source/os_interface/os_interface.h"
#include "shared/test/common/helpers/default_hw_info.h"
#include "shared/test/common/test_macros/mock_method_macros.h"
#include <cstdint>
#include <functional>
namespace NEO {
class MockDriverModel : public NEO::DriverModel {
public:
MockDriverModel() : MockDriverModel(NEO::DriverModelType::unknown) {}
MockDriverModel(DriverModelType driverModelType) : DriverModel(driverModelType) {}
ADDMETHOD_NOBASE_VOIDRETURN(cleanup, ());
void setGmmInputArgs(void *args) override {}
uint32_t getDeviceHandle() const override { return {}; }
NEO::PhysicalDevicePciBusInfo getPciBusInfo() const override { return pciBusInfo; }
size_t getMaxMemAllocSize() const override {
return maxAllocSize;
}
bool isGpuHangDetected(NEO::OsContext &osContext) override {
if (isGpuHangDetectedSideEffect) {
std::invoke(isGpuHangDetectedSideEffect);
}
return isGpuHangDetectedToReturn;
}
PhysicalDevicePciSpeedInfo getPciSpeedInfo() const override { return pciSpeedInfo; }
const HardwareInfo *getHardwareInfo() const override { return nullptr; }
PhysicalDevicePciSpeedInfo pciSpeedInfo{};
PhysicalDevicePciBusInfo pciBusInfo{};
bool isGpuHangDetectedToReturn{};
std::function<void()> isGpuHangDetectedSideEffect{};
size_t maxAllocSize = 0;
};
class MockDriverModelWDDM : public MockDriverModel {
public:
MockDriverModelWDDM() : MockDriverModel() {
driverModelType = DriverModelType::wddm;
}
};
class MockDriverModelDRM : public MockDriverModel {
public:
MockDriverModelDRM() : MockDriverModel() {
driverModelType = DriverModelType::drm;
}
};
} // namespace NEO