@@ -168,52 +168,6 @@ LZT_TEST_F(
168168 }
169169}
170170
171- LZT_TEST_F (
172- FIRMWARE_TEST,
173- GivenValidFirmwareHandleWhenFlashingFirmwareThenExpectFirmwareFlashingSuccess) {
174- auto fwDirEnv = getenv (" ZE_LZT_FIRMWARE_DIRECTORY" );
175- if (nullptr == fwDirEnv) {
176- LOG_INFO << " Skipping test as ZE_LZT_FIRMWARE_DIRECTORY not set" ;
177- GTEST_SKIP ();
178- }
179- std::vector<char > testFwImage;
180- std::string fwDir (fwDirEnv);
181- for (auto device : devices) {
182- uint32_t count = 0 ;
183- count = lzt::get_firmware_handle_count (device);
184- if (count > 0 ) {
185- is_firmware_supported = true ;
186- LOG_INFO << " Firmware handles are available on this device! " ;
187- auto firmware_handles = lzt::get_firmware_handles (device, count);
188- for (auto firmware_handle : firmware_handles) {
189- ASSERT_NE (nullptr , firmware_handle);
190- auto propFw = lzt::get_firmware_properties (firmware_handle);
191- if (propFw.canControl == true ) {
192- std::string fwName (reinterpret_cast <char *>(propFw.name ));
193- std::string fwToLoad = fwDir + " /" + fwName + " .bin" ;
194- std::ifstream inFileStream (fwToLoad,
195- std::ios::binary | std::ios::ate);
196- if (!inFileStream.is_open ()) {
197- LOG_INFO << " Skipping test as firmware image not found" ;
198- GTEST_SKIP ();
199- }
200- testFwImage.resize (inFileStream.tellg ());
201- inFileStream.seekg (0 , inFileStream.beg );
202- inFileStream.read (testFwImage.data (), testFwImage.size ());
203- lzt::flash_firmware (firmware_handle,
204- static_cast <void *>(testFwImage.data ()),
205- testFwImage.size ());
206- }
207- }
208- } else {
209- LOG_INFO << " No firmware handles found for this device! " ;
210- }
211- }
212- if (!is_firmware_supported) {
213- FAIL () << " No firmware handles found on any of the devices! " ;
214- }
215- }
216-
217171void flash_firmware (zes_firmware_handle_t firmware_handle, std::string fw_dir) {
218172 std::vector<char > test_fw_image;
219173 ASSERT_NE (nullptr , firmware_handle);
@@ -303,4 +257,66 @@ LZT_TEST_F(
303257 }
304258}
305259
260+ class FirmwareFlashParamTest
261+ : public FIRMWARE_TEST,
262+ public ::testing::WithParamInterface<std::string> {
263+ public:
264+ bool is_firmware_supported = false ;
265+ };
266+
267+ INSTANTIATE_TEST_SUITE_P (FirmwareTypes, FirmwareFlashParamTest,
268+ ::testing::Values (" GFX" , " OptionROM" ));
269+
270+ LZT_TEST_P (
271+ FirmwareFlashParamTest,
272+ GivenValidFirmwareHandleWhenFlashingFirmwareTypeThenExpectFirmwareFlashingSuccess) {
273+ auto fwDirEnv = getenv (" ZE_LZT_FIRMWARE_DIRECTORY" );
274+ if (nullptr == fwDirEnv) {
275+ LOG_INFO << " Skipping test as ZE_LZT_FIRMWARE_DIRECTORY not set" ;
276+ GTEST_SKIP ();
277+ }
278+ std::string fwDir (fwDirEnv);
279+ std::string fwType = GetParam ();
280+
281+ for (auto device : devices) {
282+ uint32_t count = 0 ;
283+ count = lzt::get_firmware_handle_count (device);
284+ if (count > 0 ) {
285+ is_firmware_supported = true ;
286+ LOG_INFO << " Firmware handles are available on this device! " ;
287+ auto firmware_handles = lzt::get_firmware_handles (device, count);
288+ for (auto firmware_handle : firmware_handles) {
289+ ASSERT_NE (nullptr , firmware_handle);
290+ auto propFw = lzt::get_firmware_properties (firmware_handle);
291+
292+ if (propFw.canControl == true &&
293+ std::string (reinterpret_cast <char *>(propFw.name )) == fwType) {
294+ std::string fwName (reinterpret_cast <char *>(propFw.name ));
295+ std::string fwToLoad = fwDir + " /" + fwName + " .bin" ;
296+ LOG_INFO << " Firmware Name: " << fwName;
297+ LOG_INFO << " Firmware Path: " << fwToLoad;
298+ std::ifstream inFileStream (fwToLoad,
299+ std::ios::binary | std::ios::ate);
300+ if (!inFileStream.is_open ()) {
301+ LOG_INFO << " Skipping test as firmware image not found" ;
302+ GTEST_SKIP ();
303+ }
304+ std::vector<char > testFwImage (
305+ static_cast <size_t >(inFileStream.tellg ()));
306+ inFileStream.seekg (0 , inFileStream.beg );
307+ inFileStream.read (testFwImage.data (), testFwImage.size ());
308+ lzt::flash_firmware (firmware_handle,
309+ static_cast <void *>(testFwImage.data ()),
310+ testFwImage.size ());
311+ }
312+ }
313+ } else {
314+ LOG_INFO << " No firmware handles found for this device!" ;
315+ }
316+ }
317+ if (!is_firmware_supported) {
318+ FAIL () << " No firmware handles found on any of the devices!" ;
319+ }
320+ }
321+
306322} // namespace
0 commit comments