@@ -38,7 +38,6 @@ class ZesFirmwareFixture : public SysmanDeviceFixture {
3838 delete handle;
3939 }
4040 pSysmanDeviceImp->pFirmwareHandleContext ->handleList .clear ();
41- pSysmanDeviceImp->pFirmwareHandleContext ->init ();
4241 }
4342 void TearDown () override {
4443 if (!sysmanUltsEnable) {
@@ -48,7 +47,11 @@ class ZesFirmwareFixture : public SysmanDeviceFixture {
4847 pLinuxSysmanImp->pFsAccess = pFsAccessOriginal;
4948 SysmanDeviceFixture::TearDown ();
5049 }
51-
50+ void initFirmware () {
51+ uint32_t count = 0 ;
52+ ze_result_t result = zesDeviceEnumFirmwares (device->toHandle (), &count, nullptr );
53+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
54+ }
5255 std::vector<zes_firmware_handle_t > getFirmwareHandles (uint32_t count) {
5356 std::vector<zes_firmware_handle_t > handles (count, nullptr );
5457 EXPECT_EQ (zesDeviceEnumFirmwares (device->toHandle (), &count, handles.data ()), ZE_RESULT_SUCCESS);
@@ -99,6 +102,8 @@ TEST_F(ZesFirmwareFixture, GivenComponentCountZeroWhenCallingzesFirmwareGetThenZ
99102}
100103
101104TEST_F (ZesFirmwareFixture, GivenValidFirmwareHandleWhenGettingFirmwarePropertiesThenVersionIsReturned) {
105+ initFirmware ();
106+
102107 FirmwareImp *ptestFirmwareImp = new FirmwareImp (pSysmanDeviceImp->pFirmwareHandleContext ->pOsSysman , mockSupportedFwTypes[0 ]);
103108 pSysmanDeviceImp->pFirmwareHandleContext ->handleList .push_back (ptestFirmwareImp);
104109
@@ -114,6 +119,8 @@ TEST_F(ZesFirmwareFixture, GivenValidFirmwareHandleWhenGettingFirmwareProperties
114119}
115120
116121TEST_F (ZesFirmwareFixture, GivenValidFirmwareHandleWhenGettingOpromPropertiesThenVersionIsReturned) {
122+ initFirmware ();
123+
117124 FirmwareImp *ptestFirmwareImp = new FirmwareImp (pSysmanDeviceImp->pFirmwareHandleContext ->pOsSysman , mockSupportedFwTypes[1 ]);
118125 pSysmanDeviceImp->pFirmwareHandleContext ->handleList .push_back (ptestFirmwareImp);
119126
@@ -153,6 +160,8 @@ TEST_F(ZesFirmwareFixture, GivenRepeatedFWTypesWhenInitializingFirmwareContextTh
153160}
154161
155162TEST_F (ZesFirmwareFixture, GivenValidFirmwareHandleWhenFlashingGscFirmwareThenSuccessIsReturned) {
163+ initFirmware ();
164+
156165 FirmwareImp *ptestFirmwareImp = new FirmwareImp (pSysmanDeviceImp->pFirmwareHandleContext ->pOsSysman , mockSupportedFwTypes[0 ]);
157166 pSysmanDeviceImp->pFirmwareHandleContext ->handleList .push_back (ptestFirmwareImp);
158167
@@ -194,6 +203,22 @@ TEST_F(ZesFirmwareFixture, GivenFirmwareInitializationFailureThenCreateHandleMus
194203 pSysmanDeviceImp->pFirmwareHandleContext ->init ();
195204 EXPECT_EQ (0u , pSysmanDeviceImp->pFirmwareHandleContext ->handleList .size ());
196205}
206+ TEST_F (ZesFirmwareFixture, GivenNewFirmwareContextWithHandleSizeZeroWhenFirmwareEnumerateIsCalledThenSuccessResultIsReturned) {
207+ uint32_t count = 0 ;
208+ OsSysman *pOsSysman = pSysmanDeviceImp->pFirmwareHandleContext ->pOsSysman ;
209+
210+ for (const auto &handle : pSysmanDeviceImp->pFirmwareHandleContext ->handleList ) {
211+ delete handle;
212+ }
213+ pSysmanDeviceImp->pFirmwareHandleContext ->handleList .clear ();
214+ delete pSysmanDeviceImp->pFirmwareHandleContext ;
215+
216+ pSysmanDeviceImp->pFirmwareHandleContext = new FirmwareHandleContext (pOsSysman);
217+ EXPECT_EQ (0u , pSysmanDeviceImp->pFirmwareHandleContext ->handleList .size ());
218+ ze_result_t result = zesDeviceEnumFirmwares (device->toHandle (), &count, nullptr );
219+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
220+ EXPECT_EQ (true , (count > 0 ));
221+ }
197222
198223TEST_F (ZesFirmwareFixture, GivenValidFirmwareHandleFirmwareLibraryCallFailureWhenGettingFirmwarePropertiesThenUnknownIsReturned) {
199224 for (const auto &handle : pSysmanDeviceImp->pFirmwareHandleContext ->handleList ) {
0 commit comments