Replace LoadPayloadMetadata() with PayloadMetadata class.
Removed duplicated payload header parsing logic.
Test: update_engine_unittests
Change-Id: I457c5cb86fa16e97b7a0c34d4039c46b86cd2957
diff --git a/payload_consumer/delta_performer_integration_test.cc b/payload_consumer/delta_performer_integration_test.cc
index b2fda15..ba5fa18 100644
--- a/payload_consumer/delta_performer_integration_test.cc
+++ b/payload_consumer/delta_performer_integration_test.cc
@@ -39,6 +39,7 @@
#include "update_engine/common/utils.h"
#include "update_engine/payload_consumer/mock_download_action.h"
#include "update_engine/payload_consumer/payload_constants.h"
+#include "update_engine/payload_consumer/payload_metadata.h"
#include "update_engine/payload_consumer/payload_verifier.h"
#include "update_engine/payload_generator/delta_diff_generator.h"
#include "update_engine/payload_generator/payload_signer.h"
@@ -581,16 +582,14 @@
uint32_t minor_version) {
// Check the metadata.
{
- DeltaArchiveManifest manifest;
- EXPECT_TRUE(PayloadSigner::LoadPayloadMetadata(state->delta_path,
- nullptr,
- &manifest,
- nullptr,
- &state->metadata_size,
- nullptr));
- LOG(INFO) << "Metadata size: " << state->metadata_size;
EXPECT_TRUE(utils::ReadFile(state->delta_path, &state->delta));
+ PayloadMetadata payload_metadata;
+ EXPECT_TRUE(payload_metadata.ParsePayloadHeader(state->delta));
+ state->metadata_size = payload_metadata.GetMetadataSize();
+ LOG(INFO) << "Metadata size: " << state->metadata_size;
+ DeltaArchiveManifest manifest;
+ EXPECT_TRUE(payload_metadata.GetManifest(state->delta, &manifest));
if (signature_test == kSignatureNone) {
EXPECT_FALSE(manifest.has_signatures_offset());
EXPECT_FALSE(manifest.has_signatures_size());
diff --git a/payload_consumer/payload_metadata.cc b/payload_consumer/payload_metadata.cc
index f700228..02ec8b1 100644
--- a/payload_consumer/payload_metadata.cc
+++ b/payload_consumer/payload_metadata.cc
@@ -126,6 +126,11 @@
return MetadataParseResult::kSuccess;
}
+bool PayloadMetadata::ParsePayloadHeader(const brillo::Blob& payload) {
+ ErrorCode error;
+ return ParsePayloadHeader(payload, &error) == MetadataParseResult::kSuccess;
+}
+
bool PayloadMetadata::GetManifest(const brillo::Blob& payload,
DeltaArchiveManifest* out_manifest) const {
uint64_t manifest_offset;
diff --git a/payload_consumer/payload_metadata.h b/payload_consumer/payload_metadata.h
index fc1d128..8748f6f 100644
--- a/payload_consumer/payload_metadata.h
+++ b/payload_consumer/payload_metadata.h
@@ -55,6 +55,8 @@
// the payload.
MetadataParseResult ParsePayloadHeader(const brillo::Blob& payload,
ErrorCode* error);
+ // Simpler version of the above, returns true on success.
+ bool ParsePayloadHeader(const brillo::Blob& payload);
// Given the |payload|, verifies that the signed hash of its metadata matches
// |metadata_signature| (if present) or the metadata signature in payload