Make sure ExtentRanges don't merge extents
When querying for XOR merge ops, we want the unmerged extents. E.g.
[5-9] and [10-14] should not be merged into 1 extent, because they could
correspond to different merge ops.
Test: th
Change-Id: I14c4c9fd6bf6361af6cd1e31264bdf860127a75b
diff --git a/payload_consumer/extent_map_unittest.cc b/payload_consumer/extent_map_unittest.cc
index 867038b..88a587b 100644
--- a/payload_consumer/extent_map_unittest.cc
+++ b/payload_consumer/extent_map_unittest.cc
@@ -132,4 +132,19 @@
}
}
+TEST_F(ExtentMapTest, GetTouchingExtents) {
+ ASSERT_TRUE(map_.AddExtent(ExtentForRange(5, 5), 7));
+ ASSERT_TRUE(map_.AddExtent(ExtentForRange(10, 5), 12));
+ const auto ret = map_.Get(ExtentForRange(5, 10));
+ if (ret.has_value()) {
+ ASSERT_FALSE(ret.has_value()) << ret.value();
+ }
+ const auto extents = map_.GetIntersectingExtents(ExtentForRange(0, 20));
+ ASSERT_GT(extents.size(), 0UL);
+ ASSERT_EQ(extents.size(), 2UL)
+ << "Expecting unmerged extents [5-9] and [10-14], actual: " << extents;
+ ASSERT_EQ(extents[0], ExtentForRange(5, 5));
+ ASSERT_EQ(extents[1], ExtentForRange(10, 5));
+}
+
} // namespace chromeos_update_engine