Always write SOURCE_COPY blocks in reverse order
Test: treehugger
Bug: 174112589
Change-Id: If95893569ab41d1806f266aa269722b403a50fa4
diff --git a/payload_generator/extent_utils.cc b/payload_generator/extent_utils.cc
index c0c7643..2efef12 100644
--- a/payload_generator/extent_utils.cc
+++ b/payload_generator/extent_utils.cc
@@ -155,4 +155,10 @@
return a.start_block() == b.start_block() && a.num_blocks() == b.num_blocks();
}
+std::ostream& operator<<(std::ostream& out, const Extent& extent) {
+ out << "[" << extent.start_block() << " - "
+ << extent.start_block() + extent.num_blocks() - 1 << "]";
+ return out;
+}
+
} // namespace chromeos_update_engine
diff --git a/payload_generator/extent_utils.h b/payload_generator/extent_utils.h
index f870b29..7aa614a 100644
--- a/payload_generator/extent_utils.h
+++ b/payload_generator/extent_utils.h
@@ -122,6 +122,8 @@
size_t block_offset_ = 0;
};
+std::ostream& operator<<(std::ostream& out, const Extent& extent);
+
} // namespace chromeos_update_engine
#endif // UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_UTILS_H_
diff --git a/payload_generator/merge_sequence_generator_unittest.cc b/payload_generator/merge_sequence_generator_unittest.cc
index 666adbe..b8507ed 100644
--- a/payload_generator/merge_sequence_generator_unittest.cc
+++ b/payload_generator/merge_sequence_generator_unittest.cc
@@ -208,12 +208,6 @@
GenerateSequence(transfers, expected);
}
-std::ostream& operator<<(std::ostream& out, const Extent& extent) {
- out << "[" << extent.start_block() << " - "
- << extent.start_block() + extent.num_blocks() - 1 << "]";
- return out;
-}
-
void ValidateSplitSequence(const Extent& src_extent, const Extent& dst_extent) {
std::vector<CowMergeOperation> sequence;
SplitSelfOverlapping(src_extent, dst_extent, &sequence);