Skip to content

Commit 2bcbaa2

Browse files
sysman: improve coverage of firmware API
added ULT to check for nullptr dereference. Signed-off-by: T J Vivek Vilvaraj <[email protected]>
1 parent e09c24b commit 2bcbaa2

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

level_zero/tools/test/unit_tests/sources/sysman/firmware/linux/test_zes_sysman_firmware.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,5 +209,42 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleFirmwareLibraryCallFailureWhe
209209
EXPECT_STREQ(mockSupportedFwTypes[1].c_str(), properties.name);
210210
EXPECT_STREQ("Unknown", properties.version);
211211
}
212+
213+
class ZesFirmwareUninitializedFixture : public SysmanDeviceFixture {
214+
215+
protected:
216+
zes_firmware_handle_t hSysmanFirmware = {};
217+
std::unique_ptr<Mock<FirmwareInterface>> pMockFwInterface;
218+
FirmwareUtil *pFwUtilInterfaceOld = nullptr;
219+
std::unique_ptr<Mock<FirmwareFsAccess>> pFsAccess;
220+
FsAccess *pFsAccessOriginal = nullptr;
221+
222+
void SetUp() override {
223+
SysmanDeviceFixture::SetUp();
224+
pFsAccessOriginal = pLinuxSysmanImp->pFsAccess;
225+
pFsAccess = std::make_unique<NiceMock<Mock<FirmwareFsAccess>>>();
226+
pLinuxSysmanImp->pFsAccess = pFsAccess.get();
227+
228+
pFwUtilInterfaceOld = pLinuxSysmanImp->pFwUtilInterface;
229+
pLinuxSysmanImp->pFwUtilInterface = nullptr;
230+
ON_CALL(*pFsAccess.get(), read(_, _))
231+
.WillByDefault(::testing::Invoke(pFsAccess.get(), &Mock<FirmwareFsAccess>::readValSuccess));
232+
}
233+
void TearDown() override {
234+
SysmanDeviceFixture::TearDown();
235+
pLinuxSysmanImp->pFwUtilInterface = pFwUtilInterfaceOld;
236+
pLinuxSysmanImp->pFsAccess = pFsAccessOriginal;
237+
}
238+
};
239+
240+
TEST_F(ZesFirmwareUninitializedFixture, GivenFirmwareLibraryMissingThenCreateHandleMustFail) {
241+
for (const auto &handle : pSysmanDeviceImp->pFirmwareHandleContext->handleList) {
242+
delete handle;
243+
}
244+
pSysmanDeviceImp->pFirmwareHandleContext->handleList.clear();
245+
pSysmanDeviceImp->pFirmwareHandleContext->init();
246+
EXPECT_EQ(0u, pSysmanDeviceImp->pFirmwareHandleContext->handleList.size());
247+
}
248+
212249
} // namespace ult
213250
} // namespace L0

0 commit comments

Comments
 (0)