update_engine: Remove unused IsIdempotentOperation().
All the minor-version=2 are idempotent, so since we switched to minor
version 2, this function becomes trivial now. This patch removes this
function from the code and moves the ExtentRanges class to the
payload_generator/ directory since now it is only used there.
BUG=None
TEST=Unittest still pass.
Change-Id: Ib9dbbdded0ca2ef2128bb6c470de7a00720c4038
Reviewed-on: https://chromium-review.googlesource.com/275806
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/delta_performer.cc b/delta_performer.cc
index 87241c0..1006f17 100644
--- a/delta_performer.cc
+++ b/delta_performer.cc
@@ -22,7 +22,6 @@
#include "update_engine/bzip_extent_writer.h"
#include "update_engine/constants.h"
-#include "update_engine/extent_ranges.h"
#include "update_engine/extent_writer.h"
#include "update_engine/hardware_interface.h"
#if USE_MTD
@@ -241,25 +240,6 @@
return false;
}
-
-// Returns true if |op| is idempotent -- i.e., if we can interrupt it and repeat
-// it safely. Returns false otherwise.
-bool DeltaPerformer::IsIdempotentOperation(
- const DeltaArchiveManifest_InstallOperation& op) {
- if (op.src_extents_size() == 0) {
- return true;
- }
- // When in doubt, it's safe to declare an op non-idempotent. Note that we
- // could detect other types of idempotent operations here such as a MOVE that
- // moves blocks onto themselves. However, we rely on the server to not send
- // such operations at all.
- ExtentRanges src_ranges;
- src_ranges.AddRepeatedExtents(op.src_extents());
- const uint64_t block_count = src_ranges.blocks();
- src_ranges.SubtractRepeatedExtents(op.dst_extents());
- return block_count == src_ranges.blocks();
-}
-
int DeltaPerformer::Open(const char* path, int flags, mode_t mode) {
int err;
fd_ = OpenFile(path, &err);
@@ -276,13 +256,13 @@
return static_cast<bool>(kernel_fd_);
}
-bool DeltaPerformer::OpenSourceRootfs(const std::string& source_path) {
+bool DeltaPerformer::OpenSourceRootfs(const string& source_path) {
int err;
source_fd_ = OpenFile(source_path.c_str(), &err);
return static_cast<bool>(source_fd_);
}
-bool DeltaPerformer::OpenSourceKernel(const std::string& source_kernel_path) {
+bool DeltaPerformer::OpenSourceKernel(const string& source_kernel_path) {
int err;
source_kernel_fd_ = OpenFile(source_kernel_path.c_str(), &err);
return static_cast<bool>(source_kernel_fd_);
@@ -757,14 +737,6 @@
bytes_read += bytes_read_this_iteration;
}
- // If this is a non-idempotent operation, request a delayed exit and clear the
- // update state in case the operation gets interrupted. Do this as late as
- // possible.
- if (!IsIdempotentOperation(operation)) {
- Terminator::set_exit_blocked(true);
- ResetUpdateProgress(prefs_, true);
- }
-
// Write bytes out.
ssize_t bytes_written = 0;
for (int i = 0; i < operation.dst_extents_size(); i++) {
@@ -917,14 +889,6 @@
// file is written out.
DiscardBuffer(true);
- // If this is a non-idempotent operation, request a delayed exit and clear the
- // update state in case the operation gets interrupted. Do this as late as
- // possible.
- if (!IsIdempotentOperation(operation)) {
- Terminator::set_exit_blocked(true);
- ResetUpdateProgress(prefs_, true);
- }
-
const string& path = is_kernel_partition ? kernel_path_ : path_;
vector<string> cmd{kBspatchPath, path, path, temp_filename,
input_positions, output_positions};
diff --git a/delta_performer.h b/delta_performer.h
index b36c6ec..ba479af 100644
--- a/delta_performer.h
+++ b/delta_performer.h
@@ -230,9 +230,6 @@
// Update overall progress metrics, log as necessary.
void UpdateOverallProgress(bool force_log, const char* message_prefix);
- static bool IsIdempotentOperation(
- const DeltaArchiveManifest_InstallOperation& op);
-
// Verifies that the expected source partition hashes (if present) match the
// hashes for the current partitions. Returns true if there are no expected
// hashes in the payload (e.g., if it's a new-style full update) or if the
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 3a175c4..bc47b0b 100644
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -19,7 +19,6 @@
#include <gtest/gtest.h>
#include "update_engine/constants.h"
-#include "update_engine/extent_ranges.h"
#include "update_engine/fake_hardware.h"
#include "update_engine/fake_system_state.h"
#include "update_engine/mock_prefs.h"
@@ -1250,22 +1249,6 @@
EXPECT_LT(performer.Close(), 0);
}
-TEST(DeltaPerformerTest, IsIdempotentOperationTest) {
- DeltaArchiveManifest_InstallOperation op;
- EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
- *(op.add_dst_extents()) = ExtentForRange(0, 5);
- EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
- *(op.add_src_extents()) = ExtentForRange(4, 1);
- EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op));
- op.clear_src_extents();
- *(op.add_src_extents()) = ExtentForRange(5, 3);
- EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
- *(op.add_dst_extents()) = ExtentForRange(20, 6);
- EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
- *(op.add_src_extents()) = ExtentForRange(19, 2);
- EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op));
-}
-
TEST(DeltaPerformerTest, WriteUpdatesPayloadState) {
MockPrefs prefs;
InstallPlan install_plan;
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index 34b9737..8676086 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -27,11 +27,11 @@
#include "update_engine/bzip.h"
#include "update_engine/delta_performer.h"
-#include "update_engine/extent_ranges.h"
#include "update_engine/file_writer.h"
#include "update_engine/omaha_hash_calculator.h"
#include "update_engine/payload_constants.h"
#include "update_engine/payload_generator/ext2_filesystem.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/full_update_generator.h"
#include "update_engine/payload_generator/inplace_generator.h"
#include "update_engine/payload_generator/payload_signer.h"
@@ -161,7 +161,7 @@
manifest_metadata_size));
total_size += manifest_metadata_size;
- std::sort(objects.begin(), objects.end());
+ sort(objects.begin(), objects.end());
static const char kFormatString[] = "%6.2f%% %10jd %-10s %s\n";
for (const DeltaObject& object : objects) {
diff --git a/payload_generator/delta_diff_generator_unittest.cc b/payload_generator/delta_diff_generator_unittest.cc
index c198916..baf308f 100644
--- a/payload_generator/delta_diff_generator_unittest.cc
+++ b/payload_generator/delta_diff_generator_unittest.cc
@@ -27,8 +27,8 @@
#include "update_engine/bzip.h"
#include "update_engine/delta_performer.h"
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/extent_utils.h"
#include "update_engine/payload_generator/fake_filesystem.h"
#include "update_engine/payload_generator/graph_types.h"
@@ -36,7 +36,6 @@
#include "update_engine/test_utils.h"
#include "update_engine/utils.h"
-using chromeos_update_engine::test_utils::kRandomString;
using std::set;
using std::string;
using std::unique_ptr;
diff --git a/payload_generator/ext2_filesystem.cc b/payload_generator/ext2_filesystem.cc
index d3e0930..0467b80 100644
--- a/payload_generator/ext2_filesystem.cc
+++ b/payload_generator/ext2_filesystem.cc
@@ -14,7 +14,7 @@
#include <base/logging.h>
#include <base/strings/stringprintf.h>
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/extent_utils.h"
#include "update_engine/update_metadata.pb.h"
#include "update_engine/utils.h"
diff --git a/extent_ranges.cc b/payload_generator/extent_ranges.cc
similarity index 98%
rename from extent_ranges.cc
rename to payload_generator/extent_ranges.cc
index b425a86..d86bcfc 100644
--- a/extent_ranges.cc
+++ b/payload_generator/extent_ranges.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include <algorithm>
#include <set>
diff --git a/extent_ranges.h b/payload_generator/extent_ranges.h
similarity index 93%
rename from extent_ranges.h
rename to payload_generator/extent_ranges.h
index ec3547c..fc15149 100644
--- a/extent_ranges.h
+++ b/payload_generator/extent_ranges.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef UPDATE_ENGINE_EXTENT_RANGES_H_
-#define UPDATE_ENGINE_EXTENT_RANGES_H_
+#ifndef UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
+#define UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
#include <map>
#include <set>
@@ -76,4 +76,4 @@
} // namespace chromeos_update_engine
-#endif // UPDATE_ENGINE_EXTENT_RANGES_H_
+#endif // UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
diff --git a/extent_ranges_unittest.cc b/payload_generator/extent_ranges_unittest.cc
similarity index 98%
rename from extent_ranges_unittest.cc
rename to payload_generator/extent_ranges_unittest.cc
index 7624f3d..b7036a5 100644
--- a/extent_ranges_unittest.cc
+++ b/payload_generator/extent_ranges_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include <vector>
diff --git a/payload_generator/extent_utils.cc b/payload_generator/extent_utils.cc
index 6896678..71aae1d 100644
--- a/payload_generator/extent_utils.cc
+++ b/payload_generator/extent_utils.cc
@@ -11,9 +11,9 @@
#include <base/logging.h>
#include <base/macros.h>
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_constants.h"
#include "update_engine/payload_generator/annotated_operation.h"
+#include "update_engine/payload_generator/extent_ranges.h"
using std::string;
using std::vector;
diff --git a/payload_generator/extent_utils_unittest.cc b/payload_generator/extent_utils_unittest.cc
index 6e685e0..b9f9ef2 100644
--- a/payload_generator/extent_utils_unittest.cc
+++ b/payload_generator/extent_utils_unittest.cc
@@ -9,8 +9,8 @@
#include <gtest/gtest.h>
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/test_utils.h"
using std::vector;
diff --git a/payload_generator/graph_utils_unittest.cc b/payload_generator/graph_utils_unittest.cc
index 3253f71..bd6c979 100644
--- a/payload_generator/graph_utils_unittest.cc
+++ b/payload_generator/graph_utils_unittest.cc
@@ -9,8 +9,8 @@
#include <gtest/gtest.h>
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/extent_utils.h"
using std::make_pair;
diff --git a/payload_generator/inplace_generator.cc b/payload_generator/inplace_generator.cc
index fd19d14..64c8226 100644
--- a/payload_generator/inplace_generator.cc
+++ b/payload_generator/inplace_generator.cc
@@ -11,11 +11,11 @@
#include <utility>
#include <vector>
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_constants.h"
#include "update_engine/payload_generator/cycle_breaker.h"
#include "update_engine/payload_generator/delta_diff_generator.h"
#include "update_engine/payload_generator/ext2_filesystem.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/graph_types.h"
#include "update_engine/payload_generator/graph_utils.h"
#include "update_engine/payload_generator/topological_sort.h"
diff --git a/payload_generator/inplace_generator_unittest.cc b/payload_generator/inplace_generator_unittest.cc
index 5c563c5..b988787 100644
--- a/payload_generator/inplace_generator_unittest.cc
+++ b/payload_generator/inplace_generator_unittest.cc
@@ -14,9 +14,9 @@
#include <base/strings/string_util.h>
#include <gtest/gtest.h>
-#include "update_engine/extent_ranges.h"
#include "update_engine/payload_generator/cycle_breaker.h"
#include "update_engine/payload_generator/delta_diff_generator.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/payload_generator/graph_types.h"
#include "update_engine/payload_generator/graph_utils.h"
#include "update_engine/test_utils.h"
diff --git a/payload_generator/raw_filesystem.cc b/payload_generator/raw_filesystem.cc
index ee4423e..f24096e 100644
--- a/payload_generator/raw_filesystem.cc
+++ b/payload_generator/raw_filesystem.cc
@@ -4,7 +4,7 @@
#include "update_engine/payload_generator/raw_filesystem.h"
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
#include "update_engine/update_metadata.pb.h"
#include "update_engine/utils.h"
diff --git a/update_engine.gyp b/update_engine.gyp
index 3ab459c..cfea326 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -143,7 +143,6 @@
'dbus_service.cc',
'delta_performer.cc',
'download_action.cc',
- 'extent_ranges.cc',
'extent_writer.cc',
'file_descriptor.cc',
'file_writer.cc',
@@ -280,6 +279,7 @@
'payload_generator/cycle_breaker.cc',
'payload_generator/delta_diff_generator.cc',
'payload_generator/ext2_filesystem.cc',
+ 'payload_generator/extent_ranges.cc',
'payload_generator/extent_utils.cc',
'payload_generator/full_update_generator.cc',
'payload_generator/graph_types.cc',
@@ -369,7 +369,6 @@
'connection_manager_unittest.cc',
'delta_performer_unittest.cc',
'download_action_unittest.cc',
- 'extent_ranges_unittest.cc',
'extent_writer_unittest.cc',
'fake_prefs.cc',
'fake_system_state.cc',
@@ -386,6 +385,7 @@
'payload_generator/cycle_breaker_unittest.cc',
'payload_generator/delta_diff_generator_unittest.cc',
'payload_generator/ext2_filesystem_unittest.cc',
+ 'payload_generator/extent_ranges_unittest.cc',
'payload_generator/extent_utils_unittest.cc',
'payload_generator/fake_filesystem.cc',
'payload_generator/full_update_generator_unittest.cc',