Reduce gmock usage for firmware and GlobalOps

Related-To: LOCI-3130

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
This commit is contained in:
Bellekallu Rajkiran
2022-06-02 13:17:00 +00:00
committed by Compute-Runtime-Automation
parent dac180f2fb
commit 7f4e25a3f6
4 changed files with 35 additions and 56 deletions

View File

@@ -24,15 +24,15 @@ class FirmwareFsAccess : public FsAccess {};
template <>
struct Mock<FirmwareFsAccess> : public FirmwareFsAccess {
MOCK_METHOD(ze_result_t, read, (const std::string file, std::vector<std::string> &val), (override));
ze_result_t readValSuccess(const std::string file, std::vector<std::string> &val) {
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
val.push_back("mtd5: 00200000 00001000 \"i915-spi.42.auto.OptionROM\"");
return ZE_RESULT_SUCCESS;
}
ze_result_t readMtdValSuccess(const std::string file, std::vector<std::string> &val) {
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
ze_bool_t isReadFwTypes = true;
ze_result_t read(const std::string file, std::vector<std::string> &val) override {
if (isReadFwTypes) {
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
val.push_back("mtd5: 00200000 00001000 \"i915-spi.42.auto.OptionROM\"");
} else {
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
val.push_back("mtd3: 005ef000 00001000 \"i915-spi.42.auto.GSC\"");
}
return ZE_RESULT_SUCCESS;
}
};
@@ -40,6 +40,8 @@ struct Mock<FirmwareFsAccess> : public FirmwareFsAccess {
template <>
struct Mock<FirmwareInterface> : public FirmwareUtil {
ze_result_t getFwVersionResult = ZE_RESULT_SUCCESS;
ze_result_t mockFwGetVersion(std::string &fwVersion) {
fwVersion = mockFwVersion;
return ZE_RESULT_SUCCESS;
@@ -48,7 +50,12 @@ struct Mock<FirmwareInterface> : public FirmwareUtil {
fwVersion = mockOpromVersion;
return ZE_RESULT_SUCCESS;
}
ze_result_t mockGetFwVersion(std::string fwType, std::string &firmwareVersion) {
ze_result_t getFwVersion(std::string fwType, std::string &firmwareVersion) override {
if (getFwVersionResult != ZE_RESULT_SUCCESS) {
return getFwVersionResult;
}
if (fwType == "GSC") {
firmwareVersion = mockFwVersion;
} else if (fwType == "OptionROM") {
@@ -57,19 +64,21 @@ struct Mock<FirmwareInterface> : public FirmwareUtil {
return ZE_RESULT_SUCCESS;
}
void getDeviceSupportedFwTypes(std::vector<std::string> &fwTypes) override {
fwTypes = mockSupportedFwTypes;
}
Mock<FirmwareInterface>() = default;
MOCK_METHOD(ze_result_t, fwDeviceInit, (), (override));
MOCK_METHOD(ze_result_t, getFirstDevice, (igsc_device_info * info), (override));
MOCK_METHOD(ze_result_t, getFwVersion, (std::string fwType, std::string &firmwareVersion), (override));
MOCK_METHOD(ze_result_t, flashFirmware, (std::string fwType, void *pImage, uint32_t size), (override));
MOCK_METHOD(ze_result_t, fwIfrApplied, (bool &ifrStatus), (override));
ADDMETHOD_NOBASE(fwDeviceInit, ze_result_t, ZE_RESULT_SUCCESS, ());
ADDMETHOD_NOBASE(getFirstDevice, ze_result_t, ZE_RESULT_SUCCESS, (igsc_device_info * info));
ADDMETHOD_NOBASE(flashFirmware, ze_result_t, ZE_RESULT_SUCCESS, (std::string fwType, void *pImage, uint32_t size));
ADDMETHOD_NOBASE(fwIfrApplied, ze_result_t, ZE_RESULT_SUCCESS, (bool &ifrStatus));
ADDMETHOD_NOBASE(fwSupportedDiagTests, ze_result_t, ZE_RESULT_SUCCESS, (std::vector<std::string> & supportedDiagTests));
ADDMETHOD_NOBASE(fwRunDiagTests, ze_result_t, ZE_RESULT_SUCCESS, (std::string & osDiagType, zes_diag_result_t *pResult));
ADDMETHOD_NOBASE(fwGetMemoryErrorCount, ze_result_t, ZE_RESULT_SUCCESS, (zes_ras_error_type_t category, uint32_t subDeviceCount, uint32_t subDeviceId, uint64_t &count));
ADDMETHOD_NOBASE(fwGetEccConfig, ze_result_t, ZE_RESULT_SUCCESS, (uint8_t * currentState, uint8_t *pendingState));
ADDMETHOD_NOBASE(fwSetEccConfig, ze_result_t, ZE_RESULT_SUCCESS, (uint8_t newState, uint8_t *currentState, uint8_t *pendingState));
MOCK_METHOD(void, getDeviceSupportedFwTypes, (std::vector<std::string> & fwTypes), (override));
};
class PublicLinuxFirmwareImp : public L0::LinuxFirmwareImp {

View File

@@ -34,14 +34,6 @@ class ZesFirmwareFixture : public SysmanDeviceFixture {
pFwUtilInterfaceOld = pLinuxSysmanImp->pFwUtilInterface;
pMockFwInterface = std::make_unique<NiceMock<Mock<FirmwareInterface>>>();
pLinuxSysmanImp->pFwUtilInterface = pMockFwInterface.get();
ON_CALL(*pMockFwInterface.get(), fwDeviceInit())
.WillByDefault(::testing::Return(ZE_RESULT_SUCCESS));
ON_CALL(*pMockFwInterface.get(), getFirstDevice(_))
.WillByDefault(::testing::Return(ZE_RESULT_SUCCESS));
ON_CALL(*pMockFwInterface.get(), getDeviceSupportedFwTypes(_))
.WillByDefault(::testing::SetArgReferee<0>(mockSupportedFwTypes));
ON_CALL(*pFsAccess.get(), read(_, _))
.WillByDefault(::testing::Invoke(pFsAccess.get(), &Mock<FirmwareFsAccess>::readValSuccess));
for (const auto &handle : pSysmanDeviceImp->pFirmwareHandleContext->handleList) {
delete handle;
}
@@ -110,9 +102,6 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleWhenGettingFirmwareProperties
FirmwareImp *ptestFirmwareImp = new FirmwareImp(pSysmanDeviceImp->pFirmwareHandleContext->pOsSysman, mockSupportedFwTypes[0]);
pSysmanDeviceImp->pFirmwareHandleContext->handleList.push_back(ptestFirmwareImp);
ON_CALL(*pMockFwInterface.get(), getFwVersion(_, _))
.WillByDefault(::testing::Invoke(pMockFwInterface.get(), &Mock<FirmwareInterface>::mockGetFwVersion));
auto handles = getFirmwareHandles(mockHandleCount);
zes_firmware_properties_t properties = {};
@@ -128,9 +117,6 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleWhenGettingOpromPropertiesThe
FirmwareImp *ptestFirmwareImp = new FirmwareImp(pSysmanDeviceImp->pFirmwareHandleContext->pOsSysman, mockSupportedFwTypes[1]);
pSysmanDeviceImp->pFirmwareHandleContext->handleList.push_back(ptestFirmwareImp);
ON_CALL(*pMockFwInterface.get(), getFwVersion(_, _))
.WillByDefault(::testing::Invoke(pMockFwInterface.get(), &Mock<FirmwareInterface>::mockGetFwVersion));
auto handles = getFirmwareHandles(mockHandleCount);
zes_firmware_properties_t properties = {};
@@ -147,8 +133,7 @@ TEST_F(ZesFirmwareFixture, GivenFailedFirmwareInitializationWhenInitializingFirm
delete handle;
}
pSysmanDeviceImp->pFirmwareHandleContext->handleList.clear();
ON_CALL(*pMockFwInterface.get(), fwDeviceInit())
.WillByDefault(::testing::Return(ZE_RESULT_ERROR_UNKNOWN));
pMockFwInterface->fwDeviceInitResult = ZE_RESULT_ERROR_UNKNOWN;
pSysmanDeviceImp->pFirmwareHandleContext->init();
@@ -160,8 +145,7 @@ TEST_F(ZesFirmwareFixture, GivenRepeatedFWTypesWhenInitializingFirmwareContextTh
delete handle;
}
pSysmanDeviceImp->pFirmwareHandleContext->handleList.clear();
ON_CALL(*pFsAccess.get(), read(_, _))
.WillByDefault(::testing::Invoke(pFsAccess.get(), &Mock<FirmwareFsAccess>::readMtdValSuccess));
pFsAccess->isReadFwTypes = false;
pSysmanDeviceImp->pFirmwareHandleContext->init();
@@ -172,9 +156,6 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleWhenFlashingGscFirmwareThenSu
FirmwareImp *ptestFirmwareImp = new FirmwareImp(pSysmanDeviceImp->pFirmwareHandleContext->pOsSysman, mockSupportedFwTypes[0]);
pSysmanDeviceImp->pFirmwareHandleContext->handleList.push_back(ptestFirmwareImp);
ON_CALL(*pMockFwInterface.get(), flashFirmware(_, _, _))
.WillByDefault(::testing::Return(ZE_RESULT_SUCCESS));
auto handles = getFirmwareHandles(mockHandleCount);
uint8_t testImage[ZES_STRING_PROPERTY_SIZE] = {};
memset(testImage, 0xA, ZES_STRING_PROPERTY_SIZE);
@@ -193,8 +174,7 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleWhenFlashingUnkownFirmwareThe
FirmwareImp *ptestFirmwareImp = new FirmwareImp(pSysmanDeviceImp->pFirmwareHandleContext->pOsSysman, mockUnsupportedFwTypes[0]);
pSysmanDeviceImp->pFirmwareHandleContext->handleList.push_back(ptestFirmwareImp);
ON_CALL(*pMockFwInterface.get(), flashFirmware(_, _, _))
.WillByDefault(::testing::Return(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE));
pMockFwInterface->flashFirmwareResult = ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
uint8_t testImage[ZES_STRING_PROPERTY_SIZE] = {};
memset(testImage, 0xA, ZES_STRING_PROPERTY_SIZE);
@@ -210,8 +190,7 @@ TEST_F(ZesFirmwareFixture, GivenFirmwareInitializationFailureThenCreateHandleMus
delete handle;
}
pSysmanDeviceImp->pFirmwareHandleContext->handleList.clear();
ON_CALL(*pMockFwInterface.get(), fwDeviceInit())
.WillByDefault(::testing::Return(ZE_RESULT_ERROR_UNKNOWN));
pMockFwInterface->fwDeviceInitResult = ZE_RESULT_ERROR_UNKNOWN;
pSysmanDeviceImp->pFirmwareHandleContext->init();
EXPECT_EQ(0u, pSysmanDeviceImp->pFirmwareHandleContext->handleList.size());
}
@@ -221,8 +200,7 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleFirmwareLibraryCallFailureWhe
delete handle;
}
pSysmanDeviceImp->pFirmwareHandleContext->handleList.clear();
ON_CALL(*pMockFwInterface.get(), getFwVersion(_, _))
.WillByDefault(::testing::Return(ZE_RESULT_ERROR_UNINITIALIZED));
pMockFwInterface->getFwVersionResult = ZE_RESULT_ERROR_UNINITIALIZED;
pSysmanDeviceImp->pFirmwareHandleContext->init();
auto handles = getFirmwareHandles(mockHandleCount);
@@ -257,8 +235,6 @@ class ZesFirmwareUninitializedFixture : public SysmanDeviceFixture {
pFwUtilInterfaceOld = pLinuxSysmanImp->pFwUtilInterface;
pLinuxSysmanImp->pFwUtilInterface = nullptr;
ON_CALL(*pFsAccess.get(), read(_, _))
.WillByDefault(::testing::Invoke(pFsAccess.get(), &Mock<FirmwareFsAccess>::readValSuccess));
}
void TearDown() override {
if (!sysmanUltsEnable) {

View File

@@ -77,11 +77,8 @@ struct GlobalOperationsDiagnosticsHandleContext : public DiagnosticsHandleContex
};
template <>
struct Mock<GlobalOperationsDiagnosticsHandleContext> : public GlobalOperationsDiagnosticsHandleContext {
void initMock() {}
Mock<GlobalOperationsDiagnosticsHandleContext>(OsSysman *pOsSysman) : GlobalOperationsDiagnosticsHandleContext(pOsSysman) {}
void init(void) override {
initMock();
}
ADDMETHOD_NOBASE_VOIDRETURN(init, ());
};
struct GlobalOperationsFirmwareHandleContext : public FirmwareHandleContext {
@@ -89,9 +86,8 @@ struct GlobalOperationsFirmwareHandleContext : public FirmwareHandleContext {
};
template <>
struct Mock<GlobalOperationsFirmwareHandleContext> : public GlobalOperationsFirmwareHandleContext {
void initMock() {}
Mock<GlobalOperationsFirmwareHandleContext>(OsSysman *pOsSysman) : GlobalOperationsFirmwareHandleContext(pOsSysman) {}
MOCK_METHOD(void, init, (), (override));
ADDMETHOD_NOBASE_VOIDRETURN(init, ());
};
class GlobalOperationsSysfsAccess : public SysfsAccess {};
@@ -426,9 +422,9 @@ struct Mock<GlobalOperationsFsAccess> : public GlobalOperationsFsAccess {
MOCK_METHOD(ze_result_t, canWrite, (const std::string file), (override));
};
class FirmwareInterface : public FirmwareUtil {};
class GlobalOpsFwInterface : public FirmwareUtil {};
template <>
struct Mock<FirmwareInterface> : public FirmwareUtil {
struct Mock<GlobalOpsFwInterface> : public GlobalOpsFwInterface {
ze_result_t mockFwDeviceInit(void) {
return ZE_RESULT_SUCCESS;
@@ -447,7 +443,7 @@ struct Mock<FirmwareInterface> : public FirmwareUtil {
ifrStatus = false;
return ZE_RESULT_SUCCESS;
}
Mock<FirmwareInterface>() = default;
Mock<GlobalOpsFwInterface>() = default;
MOCK_METHOD(ze_result_t, fwDeviceInit, (), (override));
MOCK_METHOD(ze_result_t, getFirstDevice, (igsc_device_info * info), (override));

View File

@@ -101,8 +101,6 @@ class SysmanGlobalOperationsFixture : public SysmanDeviceFixture {
.WillByDefault(::testing::Invoke(pRasHandleContext.get(), &Mock<GlobalOperationsRasHandleContext>::initMock));
ON_CALL(*pEngineHandleContext.get(), init())
.WillByDefault(::testing::Invoke(pEngineHandleContext.get(), &Mock<GlobalOperationsEngineHandleContext>::initMock));
ON_CALL(*pFirmwareHandleContext.get(), init())
.WillByDefault(::testing::Invoke(pFirmwareHandleContext.get(), &Mock<GlobalOperationsFirmwareHandleContext>::initMock));
ON_CALL(*pSysfsAccess.get(), read(_, Matcher<std::string &>(_)))
.WillByDefault(::testing::Invoke(pSysfsAccess.get(), &Mock<GlobalOperationsSysfsAccess>::getValString));
ON_CALL(*pSysfsAccess.get(), read(_, Matcher<uint64_t &>(_)))