mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-10 07:08:04 +08:00
Metric Api: Moved the initialization to zeInit
Change-Id: Ia390389e514facb3d81cc28d97bf017367e9f728 Signed-off-by: Robert Krzemien <robert.krzemien@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
70babc4b69
commit
d76515a18d
@@ -158,40 +158,31 @@ bool MetricContextImp::isMetricGroupActivated(const zet_metric_group_handle_t hM
|
||||
|
||||
ze_result_t MetricContextImp::activateMetricGroups() { return metricGroupDomains.activate(); }
|
||||
|
||||
void MetricContext::enableMetricApi(ze_result_t &result) {
|
||||
if (!getenv_tobool("ZE_ENABLE_METRICS")) {
|
||||
result = ZE_RESULT_SUCCESS;
|
||||
return;
|
||||
}
|
||||
|
||||
ze_result_t MetricContext::enableMetricApi() {
|
||||
if (!isMetricApiAvailable()) {
|
||||
result = static_cast<ze_result_t>(0x70020000);
|
||||
return;
|
||||
return static_cast<ze_result_t>(0x70020000);
|
||||
}
|
||||
|
||||
DriverHandle *driverHandle = L0::DriverHandle::fromHandle(GlobalDriverHandle);
|
||||
|
||||
uint32_t count = 0;
|
||||
result = driverHandle->getDevice(&count, nullptr);
|
||||
if (result != ZE_RESULT_SUCCESS) {
|
||||
result = ZE_RESULT_ERROR_UNKNOWN;
|
||||
return;
|
||||
if (driverHandle->getDevice(&count, nullptr) != ZE_RESULT_SUCCESS) {
|
||||
return ZE_RESULT_ERROR_UNINITIALIZED;
|
||||
}
|
||||
|
||||
std::vector<ze_device_handle_t> devices(count);
|
||||
result = driverHandle->getDevice(&count, devices.data());
|
||||
if (result != ZE_RESULT_SUCCESS) {
|
||||
result = ZE_RESULT_ERROR_UNKNOWN;
|
||||
return;
|
||||
if (driverHandle->getDevice(&count, devices.data()) != ZE_RESULT_SUCCESS) {
|
||||
return ZE_RESULT_ERROR_UNINITIALIZED;
|
||||
}
|
||||
|
||||
for (auto deviceHandle : devices) {
|
||||
Device *device = L0::Device::fromHandle(deviceHandle);
|
||||
if (!device->getMetricContext().loadDependencies()) {
|
||||
result = static_cast<ze_result_t>(0x70020000);
|
||||
return;
|
||||
return static_cast<ze_result_t>(0x70020000);
|
||||
}
|
||||
}
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
std::unique_ptr<MetricContext> MetricContext::create(Device &device) {
|
||||
|
||||
@@ -43,8 +43,8 @@ struct MetricContext {
|
||||
virtual void setMetricsLibrary(MetricsLibrary &metricsLibrary) = 0;
|
||||
virtual void setMetricEnumeration(MetricEnumeration &metricEnumeration) = 0;
|
||||
|
||||
// Called by zetInit.
|
||||
static void enableMetricApi(ze_result_t &result);
|
||||
// Called by zeInit.
|
||||
static ze_result_t enableMetricApi();
|
||||
|
||||
// Metric groups activation.
|
||||
virtual ze_result_t activateMetricGroups() = 0;
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#include "level_zero/tools/source/tools_init_imp.h"
|
||||
|
||||
#include "level_zero/tools/source/metrics/metric.h"
|
||||
#include "level_zero/tools/source/pin/pin.h"
|
||||
#include "level_zero/tools/source/sysman/sysman.h"
|
||||
#include "level_zero/tools/source/tools_init.h"
|
||||
@@ -18,10 +17,6 @@
|
||||
namespace L0 {
|
||||
|
||||
static void enableTools(ze_result_t &result, ze_init_flag_t flag, bool *ptoolsAreEnabled) {
|
||||
MetricContext::enableMetricApi(std::ref(result));
|
||||
if (result != ZE_RESULT_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
SysmanHandleContext::init(flag);
|
||||
PinContext::init(flag, std::ref(result));
|
||||
if (result != ZE_RESULT_SUCCESS) {
|
||||
|
||||
@@ -8,8 +8,8 @@ target_sources(${TARGET_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric_enumeration.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_metric_enumeration.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_enumeration.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_query_pool.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_tracer.cpp
|
||||
|
||||
@@ -18,9 +18,6 @@ void MetricDeviceFixture::SetUp() {
|
||||
DeviceFixture::SetUp();
|
||||
|
||||
// Initialize metric api.
|
||||
ze_result_t result = ZE_RESULT_SUCCESS;
|
||||
MetricContext::enableMetricApi(result);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
auto &metricContext = device->getMetricContext();
|
||||
metricContext.setInitializationState(ZE_RESULT_SUCCESS);
|
||||
|
||||
@@ -166,53 +163,6 @@ StatusCode MockMetricsLibraryApi::GetData(GetReportData_1_0 *data) {
|
||||
return Mock<MetricsLibrary>::g_mockApi->MockGetData(data);
|
||||
}
|
||||
|
||||
Mock<MetricEnumeration>::Mock(::L0::MetricContext &metricContext) : MetricEnumeration(metricContext) {
|
||||
}
|
||||
|
||||
Mock<MetricEnumeration>::~Mock() {
|
||||
}
|
||||
|
||||
MockMetricsDiscoveryApi *Mock<MetricEnumeration>::g_mockApi = nullptr;
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenMetricsDevice(IMetricsDevice_1_5 **device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockOpenMetricsDevice(device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenMetricsDeviceFromFile(const char *fileName, void *openParams, IMetricsDevice_1_5 **device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockOpenMetricsDeviceFromFile(fileName, openParams, device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::CloseMetricsDevice(IMetricsDevice_1_5 *device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockCloseMetricsDevice(device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::SaveMetricsDeviceToFile(const char *fileName, void *saveParams, IMetricsDevice_1_5 *device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockSaveMetricsDeviceToFile(fileName, saveParams, device);
|
||||
}
|
||||
|
||||
void Mock<MetricEnumeration>::setMockedApi(MockMetricsDiscoveryApi *mockedApi) {
|
||||
|
||||
if (mockedApi) {
|
||||
|
||||
// Mock class used to communicate with metrics library.
|
||||
metricEnumeration = &metricContext.getMetricEnumeration();
|
||||
metricContext.setMetricEnumeration(*this);
|
||||
|
||||
// Mock metrics library api functions.
|
||||
openMetricsDevice = mockedApi->OpenMetricsDevice;
|
||||
closeMetricsDevice = mockedApi->CloseMetricsDevice;
|
||||
openMetricsDeviceFromFile = mockedApi->OpenMetricsDeviceFromFile;
|
||||
|
||||
// Mock metrics library api.
|
||||
Mock<MetricEnumeration>::g_mockApi = mockedApi;
|
||||
|
||||
} else {
|
||||
|
||||
// Restore an original class used to communicate with metrics library.
|
||||
metricContext.setMetricEnumeration(*metricEnumeration);
|
||||
}
|
||||
}
|
||||
|
||||
Mock<MetricQuery>::Mock() {}
|
||||
|
||||
Mock<MetricQuery>::~Mock() {}
|
||||
@@ -223,206 +173,3 @@ Mock<MetricQueryPool>::~Mock() {}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
namespace MetricsDiscovery {
|
||||
|
||||
IMetricsDevice_1_0::~IMetricsDevice_1_0() {}
|
||||
|
||||
TMetricsDeviceParams_1_0 *IMetricsDevice_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_0 *IMetricsDevice_1_0::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TGlobalSymbol_1_0 *IMetricsDevice_1_0::GetGlobalSymbol(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TTypedValue_1_0 *IMetricsDevice_1_0::GetGlobalSymbolValueByName(const char *name) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricsDevice_1_0::GetLastError(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return TCompletionCode::CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricsDevice_1_0::GetGpuCpuTimestamps(uint64_t *, uint64_t *,
|
||||
uint32_t *) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return TCompletionCode::CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_1 *IMetricsDevice_1_1::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TMetricsDeviceParams_1_2 *MetricsDiscovery::IMetricsDevice_1_2::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IOverride_1_2 *IMetricsDevice_1_2::GetOverride(unsigned int) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IOverride_1_2 *IMetricsDevice_1_2::GetOverrideByName(char const *) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_5 *IMetricsDevice_1_5::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_0::~IConcurrentGroup_1_0() {}
|
||||
|
||||
TConcurrentGroupParams_1_0 *IConcurrentGroup_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0 *IConcurrentGroup_1_0::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::OpenIoStream(IMetricSet_1_0 *metricSet, uint32_t processId, uint32_t *nsTimerPeriod, uint32_t *oaBufferSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::ReadIoStream(uint32_t *reportsCount, char *reportData, uint32_t readFlags) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::CloseIoStream(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::WaitForReports(uint32_t milliseconds) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IConcurrentGroup_1_0::GetIoMeasurementInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IConcurrentGroup_1_0::GetIoGpuContextInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_1 *IConcurrentGroup_1_1::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_3::SetIoStreamSamplingType(TSamplingType type) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetricSet_1_5 *IConcurrentGroup_1_5::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0::~IMetricSet_1_0() {}
|
||||
|
||||
TMetricSetParams_1_0 *IMetricSet_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetric_1_0 *IMetricSet_1_0::GetMetric(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IMetricSet_1_0::GetInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0 *IMetricSet_1_0::GetComplementaryMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_0::Activate(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_0::Deactivate(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetric_1_0 *IMetricSet_1_0::AddCustomMetric(
|
||||
const char *symbolName, const char *shortName, const char *groupName, const char *longName, const char *dxToOglAlias,
|
||||
uint32_t usageFlagsMask, uint32_t apiMask, TMetricResultType resultType, const char *resultUnits, TMetricType metricType,
|
||||
int64_t loWatermark, int64_t hiWatermark, THwUnitType hwType, const char *ioReadEquation, const char *deltaFunction,
|
||||
const char *queryReadEquation, const char *normalizationEquation, const char *maxValueEquation, const char *signalName) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_1 ::~IMetricSet_1_1() {}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::SetApiFiltering(uint32_t apiMask) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::CalculateMetrics(const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out,
|
||||
uint32_t outSize, uint32_t *outReportCount, bool enableContextFiltering) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::CalculateIoMeasurementInformation(TTypedValue_1_0 *out, uint32_t outSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetricSet_1_4 ::~IMetricSet_1_4() {}
|
||||
|
||||
TMetricSetParams_1_4 *IMetricSet_1_4::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_5 *IMetricSet_1_5::GetComplementaryMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_5::CalculateMetrics(const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out,
|
||||
uint32_t outSize, uint32_t *outReportCount, TTypedValue_1_0 *outMaxValues, uint32_t outMaxValuesSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetric_1_0 ::~IMetric_1_0() {}
|
||||
|
||||
TMetricParams_1_0 *IMetric_1_0::GetParams() {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace MetricsDiscovery
|
||||
|
||||
@@ -13,15 +13,11 @@
|
||||
#include "level_zero/tools/source/metrics/metric.h"
|
||||
#include "level_zero/tools/source/metrics/metric_enumeration_imp.h"
|
||||
#include "level_zero/tools/source/metrics/metric_query_imp.h"
|
||||
#include "level_zero/tools/test/unit_tests/sources/metrics/mock_metric_enumeration.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
template <>
|
||||
struct WhiteBox<::L0::MetricGroup> : public ::L0::MetricGroup {
|
||||
using BaseClass = ::L0::MetricGroup;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct WhiteBox<::L0::MetricQuery> : public ::L0::MetricQuery {
|
||||
using BaseClass = ::L0::MetricQuery;
|
||||
@@ -32,7 +28,6 @@ struct WhiteBox<::L0::MetricQueryPool> : public ::L0::MetricQueryPool {
|
||||
using BaseClass = ::L0::MetricQuery;
|
||||
};
|
||||
|
||||
using MetricGroup = WhiteBox<::L0::MetricGroup>;
|
||||
using MetricQuery = WhiteBox<::L0::MetricQuery>;
|
||||
using MetricQueryPool = WhiteBox<::L0::MetricQueryPool>;
|
||||
|
||||
@@ -125,128 +120,6 @@ struct Mock<MetricsLibrary> : public MetricsLibrary {
|
||||
static MockMetricsLibraryApi *g_mockApi;
|
||||
};
|
||||
|
||||
using MetricsDiscovery::IConcurrentGroup_1_5;
|
||||
using MetricsDiscovery::IInformation_1_0;
|
||||
using MetricsDiscovery::IMetric_1_0;
|
||||
using MetricsDiscovery::IMetricsDevice_1_5;
|
||||
using MetricsDiscovery::IMetricSet_1_0;
|
||||
using MetricsDiscovery::IMetricSet_1_5;
|
||||
using MetricsDiscovery::IOverride_1_2;
|
||||
using MetricsDiscovery::TCompletionCode;
|
||||
using MetricsDiscovery::TConcurrentGroupParams_1_0;
|
||||
using MetricsDiscovery::TGlobalSymbol_1_0;
|
||||
using MetricsDiscovery::TMetricParams_1_0;
|
||||
using MetricsDiscovery::TMetricsDeviceParams_1_2;
|
||||
using MetricsDiscovery::TMetricSetParams_1_4;
|
||||
using MetricsDiscovery::TSamplingType;
|
||||
using MetricsDiscovery::TTypedValue_1_0;
|
||||
|
||||
struct MockMetricsDiscoveryApi {
|
||||
|
||||
// Original api functions.
|
||||
static TCompletionCode MD_STDCALL OpenMetricsDevice(IMetricsDevice_1_5 **device);
|
||||
static TCompletionCode MD_STDCALL OpenMetricsDeviceFromFile(const char *fileName, void *openParams, IMetricsDevice_1_5 **device);
|
||||
static TCompletionCode MD_STDCALL CloseMetricsDevice(IMetricsDevice_1_5 *device);
|
||||
static TCompletionCode MD_STDCALL SaveMetricsDeviceToFile(const char *fileName, void *saveParams, IMetricsDevice_1_5 *device);
|
||||
|
||||
// Mocked api functions.
|
||||
MOCK_METHOD(TCompletionCode, MockOpenMetricsDevice, (IMetricsDevice_1_5 **));
|
||||
MOCK_METHOD(TCompletionCode, MockOpenMetricsDeviceFromFile, (const char *, void *, IMetricsDevice_1_5 **));
|
||||
MOCK_METHOD(TCompletionCode, MockCloseMetricsDevice, (IMetricsDevice_1_5 *));
|
||||
MOCK_METHOD(TCompletionCode, MockSaveMetricsDeviceToFile, (const char *, void *, IMetricsDevice_1_5 *));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetricsDevice_1_5> : public IMetricsDevice_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricsDeviceParams_1_2 *, GetParams, (), (override));
|
||||
MOCK_METHOD(IOverride_1_2 *, GetOverride, (uint32_t index), (override));
|
||||
MOCK_METHOD(IOverride_1_2 *, GetOverrideByName, (const char *symbolName), (override));
|
||||
MOCK_METHOD(IConcurrentGroup_1_5 *, GetConcurrentGroup, (uint32_t index), (override));
|
||||
MOCK_METHOD(TGlobalSymbol_1_0 *, GetGlobalSymbol, (uint32_t index), (override));
|
||||
MOCK_METHOD(TTypedValue_1_0 *, GetGlobalSymbolValueByName, (const char *name), (override));
|
||||
MOCK_METHOD(TCompletionCode, GetLastError, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, GetGpuCpuTimestamps, (uint64_t * gpuTimestampNs, uint64_t *cpuTimestampNs, uint32_t *cpuId), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IConcurrentGroup_1_5> : public IConcurrentGroup_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(IMetricSet_1_5 *, GetMetricSet, (uint32_t index), (override));
|
||||
MOCK_METHOD(TConcurrentGroupParams_1_0 *, GetParams, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenIoStream, (IMetricSet_1_0 * metricSet, uint32_t processId, uint32_t *nsTimerPeriod, uint32_t *oaBufferSize), (override));
|
||||
MOCK_METHOD(TCompletionCode, ReadIoStream, (uint32_t * reportsCount, char *reportData, uint32_t readFlags), (override));
|
||||
MOCK_METHOD(TCompletionCode, CloseIoStream, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, WaitForReports, (uint32_t milliseconds), (override));
|
||||
MOCK_METHOD(TCompletionCode, SetIoStreamSamplingType, (TSamplingType type), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetIoMeasurementInformation, (uint32_t index), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetIoGpuContextInformation, (uint32_t index), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetricSet_1_5> : public IMetricSet_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricSetParams_1_4 *, GetParams, (), (override));
|
||||
MOCK_METHOD(IMetric_1_0 *, GetMetric, (uint32_t index), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetInformation, (uint32_t index), (override));
|
||||
MOCK_METHOD(TCompletionCode, Activate, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, Deactivate, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, SetApiFiltering, (uint32_t apiMask), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateMetrics, (const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out, uint32_t outSize, uint32_t *outReportCount, bool enableContextFiltering), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateIoMeasurementInformation, (TTypedValue_1_0 * out, uint32_t outSize), (override));
|
||||
MOCK_METHOD(IMetricSet_1_5 *, GetComplementaryMetricSet, (uint32_t index), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateMetrics, (const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out, uint32_t outSize, uint32_t *outReportCount, TTypedValue_1_0 *outMaxValues, uint32_t outMaxValuesSize), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetric_1_0> : public IMetric_1_0 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricParams_1_0 *, GetParams, (), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Mock<MetricEnumeration> : public MetricEnumeration {
|
||||
Mock(::L0::MetricContext &metricContext);
|
||||
~Mock() override;
|
||||
|
||||
// Api mock enable/disable.
|
||||
void setMockedApi(MockMetricsDiscoveryApi *mockedApi);
|
||||
|
||||
// Mock metric enumeration functions.
|
||||
MOCK_METHOD(bool, isInitialized, (), (override));
|
||||
MOCK_METHOD(ze_result_t, loadMetricsDiscovery, (), (override));
|
||||
|
||||
// Mock metrics discovery api.
|
||||
static MockMetricsDiscoveryApi *g_mockApi;
|
||||
|
||||
// Original metric enumeration obtained from metric context.
|
||||
::L0::MetricEnumeration *metricEnumeration = nullptr;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Mock<MetricGroup> : public MetricGroup {
|
||||
Mock() {}
|
||||
|
||||
MOCK_METHOD(ze_result_t, getMetric, (uint32_t *, zet_metric_handle_t *), (override));
|
||||
MOCK_METHOD(ze_result_t, calculateMetricValues, (size_t, const uint8_t *, uint32_t *, zet_typed_value_t *), (override));
|
||||
MOCK_METHOD(ze_result_t, getProperties, (zet_metric_group_properties_t * properties), (override));
|
||||
MOCK_METHOD(uint32_t, getRawReportSize, (), (override));
|
||||
MOCK_METHOD(bool, activate, (), (override));
|
||||
MOCK_METHOD(bool, deactivate, (), (override));
|
||||
MOCK_METHOD(ze_result_t, waitForReports, (const uint32_t), (override));
|
||||
MOCK_METHOD(ze_result_t, openIoStream, (uint32_t &, uint32_t &), (override));
|
||||
MOCK_METHOD(ze_result_t, readIoStream, (uint32_t &, uint8_t &), (override));
|
||||
MOCK_METHOD(ze_result_t, closeIoStream, (), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Mock<MetricQueryPool> : public MetricQueryPool {
|
||||
Mock();
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "level_zero/tools/test/unit_tests/sources/metrics/mock_metric.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
Mock<MetricEnumeration>::Mock(::L0::MetricContext &metricContext) : MetricEnumeration(metricContext) {
|
||||
}
|
||||
|
||||
Mock<MetricEnumeration>::~Mock() {
|
||||
}
|
||||
|
||||
MockMetricsDiscoveryApi *Mock<MetricEnumeration>::g_mockApi = nullptr;
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenMetricsDevice(IMetricsDevice_1_5 **device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockOpenMetricsDevice(device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenMetricsDeviceFromFile(const char *fileName, void *openParams, IMetricsDevice_1_5 **device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockOpenMetricsDeviceFromFile(fileName, openParams, device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::CloseMetricsDevice(IMetricsDevice_1_5 *device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockCloseMetricsDevice(device);
|
||||
}
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::SaveMetricsDeviceToFile(const char *fileName, void *saveParams, IMetricsDevice_1_5 *device) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockSaveMetricsDeviceToFile(fileName, saveParams, device);
|
||||
}
|
||||
|
||||
void Mock<MetricEnumeration>::setMockedApi(MockMetricsDiscoveryApi *mockedApi) {
|
||||
|
||||
if (mockedApi) {
|
||||
|
||||
// Mock class used to communicate with metrics library.
|
||||
metricEnumeration = &metricContext.getMetricEnumeration();
|
||||
metricContext.setMetricEnumeration(*this);
|
||||
|
||||
// Mock metrics library api functions.
|
||||
openMetricsDevice = mockedApi->OpenMetricsDevice;
|
||||
closeMetricsDevice = mockedApi->CloseMetricsDevice;
|
||||
openMetricsDeviceFromFile = mockedApi->OpenMetricsDeviceFromFile;
|
||||
|
||||
// Mock metrics library api.
|
||||
Mock<MetricEnumeration>::g_mockApi = mockedApi;
|
||||
|
||||
} else {
|
||||
|
||||
// Restore an original class used to communicate with metrics library.
|
||||
metricContext.setMetricEnumeration(*metricEnumeration);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
namespace MetricsDiscovery {
|
||||
|
||||
IMetricsDevice_1_0::~IMetricsDevice_1_0() {}
|
||||
|
||||
TMetricsDeviceParams_1_0 *IMetricsDevice_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_0 *IMetricsDevice_1_0::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TGlobalSymbol_1_0 *IMetricsDevice_1_0::GetGlobalSymbol(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TTypedValue_1_0 *IMetricsDevice_1_0::GetGlobalSymbolValueByName(const char *name) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricsDevice_1_0::GetLastError(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return TCompletionCode::CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricsDevice_1_0::GetGpuCpuTimestamps(uint64_t *, uint64_t *,
|
||||
uint32_t *) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return TCompletionCode::CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_1 *IMetricsDevice_1_1::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TMetricsDeviceParams_1_2 *MetricsDiscovery::IMetricsDevice_1_2::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IOverride_1_2 *IMetricsDevice_1_2::GetOverride(unsigned int) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IOverride_1_2 *IMetricsDevice_1_2::GetOverrideByName(char const *) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_5 *IMetricsDevice_1_5::GetConcurrentGroup(uint32_t) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IConcurrentGroup_1_0::~IConcurrentGroup_1_0() {}
|
||||
|
||||
TConcurrentGroupParams_1_0 *IConcurrentGroup_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0 *IConcurrentGroup_1_0::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::OpenIoStream(IMetricSet_1_0 *metricSet, uint32_t processId, uint32_t *nsTimerPeriod, uint32_t *oaBufferSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::ReadIoStream(uint32_t *reportsCount, char *reportData, uint32_t readFlags) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::CloseIoStream(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_0::WaitForReports(uint32_t milliseconds) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IConcurrentGroup_1_0::GetIoMeasurementInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IConcurrentGroup_1_0::GetIoGpuContextInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_1 *IConcurrentGroup_1_1::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IConcurrentGroup_1_3::SetIoStreamSamplingType(TSamplingType type) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetricSet_1_5 *IConcurrentGroup_1_5::GetMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0::~IMetricSet_1_0() {}
|
||||
|
||||
TMetricSetParams_1_0 *IMetricSet_1_0::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetric_1_0 *IMetricSet_1_0::GetMetric(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IInformation_1_0 *IMetricSet_1_0::GetInformation(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_0 *IMetricSet_1_0::GetComplementaryMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_0::Activate(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_0::Deactivate(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetric_1_0 *IMetricSet_1_0::AddCustomMetric(
|
||||
const char *symbolName, const char *shortName, const char *groupName, const char *longName, const char *dxToOglAlias,
|
||||
uint32_t usageFlagsMask, uint32_t apiMask, TMetricResultType resultType, const char *resultUnits, TMetricType metricType,
|
||||
int64_t loWatermark, int64_t hiWatermark, THwUnitType hwType, const char *ioReadEquation, const char *deltaFunction,
|
||||
const char *queryReadEquation, const char *normalizationEquation, const char *maxValueEquation, const char *signalName) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_1 ::~IMetricSet_1_1() {}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::SetApiFiltering(uint32_t apiMask) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::CalculateMetrics(const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out,
|
||||
uint32_t outSize, uint32_t *outReportCount, bool enableContextFiltering) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_1::CalculateIoMeasurementInformation(TTypedValue_1_0 *out, uint32_t outSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetricSet_1_4 ::~IMetricSet_1_4() {}
|
||||
|
||||
TMetricSetParams_1_4 *IMetricSet_1_4::GetParams(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IMetricSet_1_5 *IMetricSet_1_5::GetComplementaryMetricSet(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IMetricSet_1_5::CalculateMetrics(const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out,
|
||||
uint32_t outSize, uint32_t *outReportCount, TTypedValue_1_0 *outMaxValues, uint32_t outMaxValuesSize) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
IMetric_1_0 ::~IMetric_1_0() {}
|
||||
|
||||
TMetricParams_1_0 *IMetric_1_0::GetParams() {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace MetricsDiscovery
|
||||
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "level_zero/core/source/device/device.h"
|
||||
#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h"
|
||||
#include "level_zero/core/test/unit_tests/mock.h"
|
||||
#include "level_zero/core/test/unit_tests/white_box.h"
|
||||
#include "level_zero/tools/source/metrics/metric.h"
|
||||
#include "level_zero/tools/source/metrics/metric_enumeration_imp.h"
|
||||
#include "level_zero/tools/source/metrics/metric_query_imp.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
template <>
|
||||
struct WhiteBox<::L0::MetricGroup> : public ::L0::MetricGroup {
|
||||
using BaseClass = ::L0::MetricGroup;
|
||||
};
|
||||
|
||||
using MetricGroup = WhiteBox<::L0::MetricGroup>;
|
||||
|
||||
using MetricsDiscovery::IConcurrentGroup_1_5;
|
||||
using MetricsDiscovery::IInformation_1_0;
|
||||
using MetricsDiscovery::IMetric_1_0;
|
||||
using MetricsDiscovery::IMetricsDevice_1_5;
|
||||
using MetricsDiscovery::IMetricSet_1_0;
|
||||
using MetricsDiscovery::IMetricSet_1_5;
|
||||
using MetricsDiscovery::IOverride_1_2;
|
||||
using MetricsDiscovery::TCompletionCode;
|
||||
using MetricsDiscovery::TConcurrentGroupParams_1_0;
|
||||
using MetricsDiscovery::TGlobalSymbol_1_0;
|
||||
using MetricsDiscovery::TMetricParams_1_0;
|
||||
using MetricsDiscovery::TMetricsDeviceParams_1_2;
|
||||
using MetricsDiscovery::TMetricSetParams_1_4;
|
||||
using MetricsDiscovery::TSamplingType;
|
||||
using MetricsDiscovery::TTypedValue_1_0;
|
||||
|
||||
struct MockMetricsDiscoveryApi {
|
||||
|
||||
// Original api functions.
|
||||
static TCompletionCode MD_STDCALL OpenMetricsDevice(IMetricsDevice_1_5 **device);
|
||||
static TCompletionCode MD_STDCALL OpenMetricsDeviceFromFile(const char *fileName, void *openParams, IMetricsDevice_1_5 **device);
|
||||
static TCompletionCode MD_STDCALL CloseMetricsDevice(IMetricsDevice_1_5 *device);
|
||||
static TCompletionCode MD_STDCALL SaveMetricsDeviceToFile(const char *fileName, void *saveParams, IMetricsDevice_1_5 *device);
|
||||
|
||||
// Mocked api functions.
|
||||
MOCK_METHOD(TCompletionCode, MockOpenMetricsDevice, (IMetricsDevice_1_5 **));
|
||||
MOCK_METHOD(TCompletionCode, MockOpenMetricsDeviceFromFile, (const char *, void *, IMetricsDevice_1_5 **));
|
||||
MOCK_METHOD(TCompletionCode, MockCloseMetricsDevice, (IMetricsDevice_1_5 *));
|
||||
MOCK_METHOD(TCompletionCode, MockSaveMetricsDeviceToFile, (const char *, void *, IMetricsDevice_1_5 *));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetricsDevice_1_5> : public IMetricsDevice_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricsDeviceParams_1_2 *, GetParams, (), (override));
|
||||
MOCK_METHOD(IOverride_1_2 *, GetOverride, (uint32_t index), (override));
|
||||
MOCK_METHOD(IOverride_1_2 *, GetOverrideByName, (const char *symbolName), (override));
|
||||
MOCK_METHOD(IConcurrentGroup_1_5 *, GetConcurrentGroup, (uint32_t index), (override));
|
||||
MOCK_METHOD(TGlobalSymbol_1_0 *, GetGlobalSymbol, (uint32_t index), (override));
|
||||
MOCK_METHOD(TTypedValue_1_0 *, GetGlobalSymbolValueByName, (const char *name), (override));
|
||||
MOCK_METHOD(TCompletionCode, GetLastError, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, GetGpuCpuTimestamps, (uint64_t * gpuTimestampNs, uint64_t *cpuTimestampNs, uint32_t *cpuId), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IConcurrentGroup_1_5> : public IConcurrentGroup_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(IMetricSet_1_5 *, GetMetricSet, (uint32_t index), (override));
|
||||
MOCK_METHOD(TConcurrentGroupParams_1_0 *, GetParams, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenIoStream, (IMetricSet_1_0 * metricSet, uint32_t processId, uint32_t *nsTimerPeriod, uint32_t *oaBufferSize), (override));
|
||||
MOCK_METHOD(TCompletionCode, ReadIoStream, (uint32_t * reportsCount, char *reportData, uint32_t readFlags), (override));
|
||||
MOCK_METHOD(TCompletionCode, CloseIoStream, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, WaitForReports, (uint32_t milliseconds), (override));
|
||||
MOCK_METHOD(TCompletionCode, SetIoStreamSamplingType, (TSamplingType type), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetIoMeasurementInformation, (uint32_t index), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetIoGpuContextInformation, (uint32_t index), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetricSet_1_5> : public IMetricSet_1_5 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricSetParams_1_4 *, GetParams, (), (override));
|
||||
MOCK_METHOD(IMetric_1_0 *, GetMetric, (uint32_t index), (override));
|
||||
MOCK_METHOD(IInformation_1_0 *, GetInformation, (uint32_t index), (override));
|
||||
MOCK_METHOD(TCompletionCode, Activate, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, Deactivate, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, SetApiFiltering, (uint32_t apiMask), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateMetrics, (const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out, uint32_t outSize, uint32_t *outReportCount, bool enableContextFiltering), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateIoMeasurementInformation, (TTypedValue_1_0 * out, uint32_t outSize), (override));
|
||||
MOCK_METHOD(IMetricSet_1_5 *, GetComplementaryMetricSet, (uint32_t index), (override));
|
||||
MOCK_METHOD(TCompletionCode, CalculateMetrics, (const unsigned char *rawData, uint32_t rawDataSize, TTypedValue_1_0 *out, uint32_t outSize, uint32_t *outReportCount, TTypedValue_1_0 *outMaxValues, uint32_t outMaxValuesSize), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IMetric_1_0> : public IMetric_1_0 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(TMetricParams_1_0 *, GetParams, (), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Mock<MetricEnumeration> : public MetricEnumeration {
|
||||
Mock(::L0::MetricContext &metricContext);
|
||||
~Mock() override;
|
||||
|
||||
// Api mock enable/disable.
|
||||
void setMockedApi(MockMetricsDiscoveryApi *mockedApi);
|
||||
|
||||
// Mock metric enumeration functions.
|
||||
MOCK_METHOD(bool, isInitialized, (), (override));
|
||||
MOCK_METHOD(ze_result_t, loadMetricsDiscovery, (), (override));
|
||||
|
||||
// Mock metrics discovery api.
|
||||
static MockMetricsDiscoveryApi *g_mockApi;
|
||||
|
||||
// Original metric enumeration obtained from metric context.
|
||||
::L0::MetricEnumeration *metricEnumeration = nullptr;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Mock<MetricGroup> : public MetricGroup {
|
||||
Mock() {}
|
||||
|
||||
MOCK_METHOD(ze_result_t, getMetric, (uint32_t *, zet_metric_handle_t *), (override));
|
||||
MOCK_METHOD(ze_result_t, calculateMetricValues, (size_t, const uint8_t *, uint32_t *, zet_typed_value_t *), (override));
|
||||
MOCK_METHOD(ze_result_t, getProperties, (zet_metric_group_properties_t * properties), (override));
|
||||
MOCK_METHOD(uint32_t, getRawReportSize, (), (override));
|
||||
MOCK_METHOD(bool, activate, (), (override));
|
||||
MOCK_METHOD(bool, deactivate, (), (override));
|
||||
MOCK_METHOD(ze_result_t, waitForReports, (const uint32_t), (override));
|
||||
MOCK_METHOD(ze_result_t, openIoStream, (uint32_t &, uint32_t &), (override));
|
||||
MOCK_METHOD(ze_result_t, readIoStream, (uint32_t &, uint8_t &), (override));
|
||||
MOCK_METHOD(ze_result_t, closeIoStream, (), (override));
|
||||
};
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
Reference in New Issue
Block a user