Metrics ULT Conditional coverage of metric_enumeration_imp.cpp

Resolves: LOCI-2220

Signed-off-by: vinod krishna <vinod.krishna@intel.com>
This commit is contained in:
vinod krishna 2021-04-15 11:06:16 +05:30 committed by Compute-Runtime-Automation
parent e3dae53d25
commit 66f0dc5564
2 changed files with 128 additions and 8 deletions

View File

@ -210,6 +210,7 @@ struct Mock<MetricGroup> : public MetricGroup {
}; };
struct MetricGroupImpTest : public MetricGroupImp { struct MetricGroupImpTest : public MetricGroupImp {
using MetricGroupImp::copyValue;
using MetricGroupImp::pReferenceConcurrentGroup; using MetricGroupImp::pReferenceConcurrentGroup;
using MetricGroupImp::pReferenceMetricSet; using MetricGroupImp::pReferenceMetricSet;
}; };

View File

@ -38,7 +38,7 @@ TEST_F(MetricEnumerationTest, givenIncorrectMetricsDiscoveryDeviceWhenZetGetMetr
EXPECT_EQ(metricGroupCount, 0u); EXPECT_EQ(metricGroupCount, 0u);
} }
TEST_F(MetricEnumerationTest, givenCorrectMetricDiscoverywhenLoadMetricsDiscoveryIsCalledThenReturnsSuccess) { TEST_F(MetricEnumerationTest, givenCorrectMetricDiscoveryWhenLoadMetricsDiscoveryIsCalledThenReturnsSuccess) {
EXPECT_CALL(*mockMetricEnumeration, loadMetricsDiscovery()) EXPECT_CALL(*mockMetricEnumeration, loadMetricsDiscovery())
.Times(1); .Times(1);
@ -46,7 +46,7 @@ TEST_F(MetricEnumerationTest, givenCorrectMetricDiscoverywhenLoadMetricsDiscover
EXPECT_EQ(mockMetricEnumeration->loadMetricsDiscovery(), ZE_RESULT_SUCCESS); EXPECT_EQ(mockMetricEnumeration->loadMetricsDiscovery(), ZE_RESULT_SUCCESS);
} }
TEST_F(MetricEnumerationTest, givenIncorrectMetricDiscoverywhenLoadMetricsDiscoveryIsCalledThenReturnsFail) { TEST_F(MetricEnumerationTest, givenIncorrectMetricDiscoveryWhenLoadMetricsDiscoveryIsCalledThenReturnsFail) {
mockMetricEnumeration->hMetricsDiscovery = nullptr; mockMetricEnumeration->hMetricsDiscovery = nullptr;
mockMetricEnumeration->openAdapterGroup = nullptr; mockMetricEnumeration->openAdapterGroup = nullptr;
@ -54,6 +54,15 @@ TEST_F(MetricEnumerationTest, givenIncorrectMetricDiscoverywhenLoadMetricsDiscov
EXPECT_EQ(mockMetricEnumeration->baseLoadMetricsDiscovery(), ZE_RESULT_ERROR_NOT_AVAILABLE); EXPECT_EQ(mockMetricEnumeration->baseLoadMetricsDiscovery(), ZE_RESULT_ERROR_NOT_AVAILABLE);
} }
TEST_F(MetricEnumerationTest, givenIncorrectMetricDiscoveryWhenMetricGroupGetIsCalledThenReturnsErrorUnknown) {
mockMetricEnumeration->hMetricsDiscovery = nullptr;
mockMetricEnumeration->openAdapterGroup = nullptr;
uint32_t metricGroupCount = 0;
EXPECT_EQ(zetMetricGroupGet(device->toHandle(), &metricGroupCount, nullptr), ZE_RESULT_ERROR_UNKNOWN);
}
TEST_F(MetricEnumerationTest, givenIncorrectMetricsDiscoveryInterfaceVersionWhenZetGetMetricGroupIsCalledThenReturnsFail) { TEST_F(MetricEnumerationTest, givenIncorrectMetricsDiscoveryInterfaceVersionWhenZetGetMetricGroupIsCalledThenReturnsFail) {
metricsDeviceParams.Version.MajorNumber = 0; metricsDeviceParams.Version.MajorNumber = 0;
@ -2314,7 +2323,6 @@ INSTANTIATE_TEST_CASE_P(parameterizedMetricEnumerationTestInformationTypes,
TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsTrue) { TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsTrue) {
// Metrics Discovery:: metric set.
Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet; Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2327,7 +2335,6 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsT
TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsFalse) { TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsFalse) {
// Metrics Discovery:: metric set.
Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet; Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2340,7 +2347,6 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenActivateIsCalledActivateReturnsF
TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateReturnsTrue) { TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateReturnsTrue) {
// Metrics Discovery:: metric set.
Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet; Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2353,7 +2359,6 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateRetu
TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateReturnsFalse) { TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateReturnsFalse) {
// Metrics Discovery:: metric set.
Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet; Mock<MetricsDiscovery::IMetricSet_1_5> metricsSet;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2366,7 +2371,6 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenDeactivateIsCalledDeactivateRetu
TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForReportsReturnsSuccess) { TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForReportsReturnsSuccess) {
// Metrics Discovery:: metric group.
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup; Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2380,7 +2384,6 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForRep
TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForReportsReturnsNotReady) { TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForReportsReturnsNotReady) {
// Metrics Discovery:: metric group.
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup; Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup; MetricGroupImpTest metricGroup;
@ -2392,5 +2395,121 @@ TEST_F(MetricEnumerationTest, givenMetricSetWhenWaitForReportsIsCalledWaitForRep
EXPECT_EQ(metricGroup.waitForReports(timeout), ZE_RESULT_NOT_READY); EXPECT_EQ(metricGroup.waitForReports(timeout), ZE_RESULT_NOT_READY);
} }
TEST_F(MetricEnumerationTest, givenTimeAndBufferSizeWhenOpenIoStreamReturnsErrorThenTheMetricGroupOpenIoStreamReturnsErrorUnknown) {
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup;
metricGroup.pReferenceConcurrentGroup = &concurrentGroup;
EXPECT_CALL(concurrentGroup, OpenIoStream(_, _, _, _))
.WillRepeatedly(Return(MetricsDiscovery::CC_ERROR_GENERAL));
uint32_t timerPeriodNs = 1;
uint32_t oaBufferSize = 100;
EXPECT_EQ(metricGroup.openIoStream(timerPeriodNs, oaBufferSize), ZE_RESULT_ERROR_UNKNOWN);
}
TEST_F(MetricEnumerationTest, givenReportCountAndReportDataWhenReadIoStreamReturnsOkTheMetricGroupReadIoStreamReturnsSuccess) {
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup;
metricGroup.pReferenceConcurrentGroup = &concurrentGroup;
EXPECT_CALL(concurrentGroup, ReadIoStream(_, _, _))
.WillOnce(Return(MetricsDiscovery::CC_OK));
uint32_t reportCount = 1;
uint8_t reportData = 0;
EXPECT_EQ(metricGroup.readIoStream(reportCount, reportData), ZE_RESULT_SUCCESS);
}
TEST_F(MetricEnumerationTest, givenReportCountAndReportDataWhenReadIoStreamReturnsPendingTheMetricGroupReadIoStreamReturnsSuccess) {
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup;
metricGroup.pReferenceConcurrentGroup = &concurrentGroup;
EXPECT_CALL(concurrentGroup, ReadIoStream(_, _, _))
.WillOnce(Return(MetricsDiscovery::CC_READ_PENDING));
uint32_t reportCount = 1;
uint8_t reportData = 0;
EXPECT_EQ(metricGroup.readIoStream(reportCount, reportData), ZE_RESULT_SUCCESS);
}
TEST_F(MetricEnumerationTest, givenReportCountAndReportDataWhenReadIoStreamReturnsErrorThenMetrigGroupReadIoStreamReturnsError) {
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup;
metricGroup.pReferenceConcurrentGroup = &concurrentGroup;
EXPECT_CALL(concurrentGroup, ReadIoStream(_, _, _))
.WillOnce(Return(MetricsDiscovery::CC_ERROR_GENERAL));
uint32_t reportCount = 1;
uint8_t reportData = 0;
EXPECT_EQ(metricGroup.readIoStream(reportCount, reportData), ZE_RESULT_ERROR_UNKNOWN);
}
TEST_F(MetricEnumerationTest, givenTimeAndBufferSizeWhenCloseIoStreamIsCalledCloseAndFailThenIoStreamReturnsErrorUnknown) {
Mock<MetricsDiscovery::IConcurrentGroup_1_5> concurrentGroup;
MetricGroupImpTest metricGroup;
metricGroup.pReferenceConcurrentGroup = &concurrentGroup;
EXPECT_CALL(concurrentGroup, CloseIoStream())
.WillRepeatedly(Return(MetricsDiscovery::CC_ERROR_GENERAL));
EXPECT_EQ(metricGroup.closeIoStream(), ZE_RESULT_ERROR_UNKNOWN);
}
TEST_F(MetricEnumerationTest, givenTTypedValueWhenCopyValueIsCalledReturnsFilledZetTypedValue) {
MetricsDiscovery::TTypedValue_1_0 source = {};
zet_typed_value_t destination = {};
MetricGroupImpTest metricGroup = {};
for (int vType = MetricsDiscovery::VALUE_TYPE_UINT32;
vType < MetricsDiscovery::VALUE_TYPE_LAST; vType++) {
source.ValueType = static_cast<MetricsDiscovery::TValueType>(vType);
if (vType != MetricsDiscovery::VALUE_TYPE_BOOL)
source.ValueUInt64 = 0xFF;
else
source.ValueBool = true;
metricGroup.copyValue(const_cast<MetricsDiscovery::TTypedValue_1_0 &>(source), destination);
switch (vType) {
case MetricsDiscovery::VALUE_TYPE_UINT32:
EXPECT_EQ(destination.type, ZET_VALUE_TYPE_UINT32);
EXPECT_EQ(destination.value.ui32, source.ValueUInt32);
break;
case MetricsDiscovery::VALUE_TYPE_UINT64:
EXPECT_EQ(destination.type, ZET_VALUE_TYPE_UINT64);
EXPECT_EQ(destination.value.ui64, source.ValueUInt64);
break;
case MetricsDiscovery::VALUE_TYPE_FLOAT:
EXPECT_EQ(destination.type, ZET_VALUE_TYPE_FLOAT32);
EXPECT_EQ(destination.value.fp32, source.ValueFloat);
break;
case MetricsDiscovery::VALUE_TYPE_BOOL:
EXPECT_EQ(destination.type, ZET_VALUE_TYPE_BOOL8);
EXPECT_EQ(destination.value.b8, source.ValueBool);
break;
default:
EXPECT_EQ(destination.type, ZET_VALUE_TYPE_UINT64);
EXPECT_EQ(destination.value.ui64, static_cast<uint64_t>(0));
break;
}
}
}
} // namespace ult } // namespace ult
} // namespace L0 } // namespace L0