tools: implement firmware verification polling
The verification process is asynchronous, therefore poll the BMC
firmware state.
Tested: Verified it behaves as intended, before moving it into a
sub-routine:
Opening the verification file
Committing to verification file to trigger verification service
Calling stat on verification session to check status
stat received:
blob_state: 0x206
size: 0x0
metadata(1): 0x3
other
stat received:
blob_state: 0x206
size: 0x0
metadata(1): 0x0
running
stat received:
blob_state: 0x206
size: 0x0
metadata(1): 0x0
running
stat received:
blob_state: 0x206
size: 0x0
metadata(1): 0x1
success
stat received:
blob_state: 0x206
size: 0x0
metadata(1): 0x1
success
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I3cb13d1a966c2c833fd4fee5654332f34e80355a
diff --git a/test/tools_updater_unittest.cpp b/test/tools_updater_unittest.cpp
index 04720e0..805ce20 100644
--- a/test/tools_updater_unittest.cpp
+++ b/test/tools_updater_unittest.cpp
@@ -66,6 +66,15 @@
EXPECT_CALL(blobMock, commit(Eq(session), _)).WillOnce(Return());
+ ipmiblob::StatResponse verificationResponse;
+ verificationResponse.blob_state = supported | blobs::StateFlags::committing;
+ verificationResponse.size = 0;
+ verificationResponse.metadata.push_back(static_cast<std::uint8_t>(
+ blobs::FirmwareBlobHandler::VerifyCheckResponses::success));
+
+ EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
+ .WillOnce(Return(verificationResponse));
+
updaterMain(&blobMock, &handlerMock, firmwareImage, signatureFile);
}