Only write merge sequence if XOR is enabled am: 5d74b7297a am: 7379e1efb3
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1840773
Change-Id: Ia9c91f2c19db2fc94c2b57b07ad650e80e345362
diff --git a/payload_consumer/vabc_partition_writer.cc b/payload_consumer/vabc_partition_writer.cc
index 1ae82b5..d827fad 100644
--- a/payload_consumer/vabc_partition_writer.cc
+++ b/payload_consumer/vabc_partition_writer.cc
@@ -126,15 +126,19 @@
// ==============================================
if (!partition_update_.merge_operations().empty()) {
- TEST_AND_RETURN_FALSE(WriteMergeSequence(
- partition_update_.merge_operations(), cow_writer_.get()));
+ if (IsXorEnabled()) {
+ LOG(INFO) << "VABC XOR enabled for partition "
+ << partition_update_.partition_name();
+ TEST_AND_RETURN_FALSE(WriteMergeSequence(
+ partition_update_.merge_operations(), cow_writer_.get()));
+ }
}
// TODO(zhangkelvin) Rewrite this in C++20 coroutine once that's available.
// TODO(177104308) Don't write all COPY ops up-front if merge sequence is
// written
- auto converted = ConvertToCowOperations(partition_update_.operations(),
- partition_update_.merge_operations());
+ const auto converted = ConvertToCowOperations(
+ partition_update_.operations(), partition_update_.merge_operations());
if (!converted.empty()) {
// Use source fd directly. Ideally we want to verify all extents used in
diff --git a/payload_consumer/vabc_partition_writer_unittest.cc b/payload_consumer/vabc_partition_writer_unittest.cc
index 7a3fc9b..fdfa0a6 100644
--- a/payload_consumer/vabc_partition_writer_unittest.cc
+++ b/payload_consumer/vabc_partition_writer_unittest.cc
@@ -144,9 +144,6 @@
ON_CALL(*cow_writer, EmitCopy(_, _)).WillByDefault(Return(true));
ON_CALL(*cow_writer, EmitLabel(_)).WillByDefault(Return(true));
ON_CALL(*cow_writer, Initialize()).WillByDefault(Return(true));
- EXPECT_CALL(*cow_writer, EmitSequenceData(_, _))
- .Times(1)
- .WillOnce(Return(true));
EXPECT_CALL(*cow_writer, Initialize()).InSequence(s);
EXPECT_CALL(*cow_writer, EmitCopy(10, 5)).InSequence(s);
EXPECT_CALL(*cow_writer, EmitCopy(15, 10)).InSequence(s);