paycheck: Allow minor version 3 in applier.
Also fixed nits in checker.
BUG=chromium:568473
TEST=./checker_unittest.py
Change-Id: Ia791f4dc636e9c3a2921aeaa5f9dd01c247bf5bb
Reviewed-on: https://chromium-review.googlesource.com/317780
Trybot-Ready: Sen Jiang <senj@chromium.org>
Tested-by: Sen Jiang <senj@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Sen Jiang <senj@chromium.org>
diff --git a/scripts/update_payload/applier.py b/scripts/update_payload/applier.py
index 5e95156..04791c1 100644
--- a/scripts/update_payload/applier.py
+++ b/scripts/update_payload/applier.py
@@ -497,9 +497,10 @@
if self.minor_version == common.INPLACE_MINOR_PAYLOAD_VERSION:
# Copy the src partition to the dst one; make sure we don't truncate it.
shutil.copyfile(old_part_file_name, new_part_file_name)
- elif self.minor_version == common.SOURCE_MINOR_PAYLOAD_VERSION:
- # In minor version 2, we don't want to copy the partitions, so instead
- # just make the new partition file.
+ elif (self.minor_version == common.SOURCE_MINOR_PAYLOAD_VERSION or
+ self.minor_version == common.OPSRCHASH_MINOR_PAYLOAD_VERSION):
+ # In minor version >= 2, we don't want to copy the partitions, so
+ # instead just make the new partition file.
open(new_part_file_name, 'w').close()
else:
raise PayloadError("Unknown minor version: %d" % self.minor_version)
diff --git a/scripts/update_payload/checker.py b/scripts/update_payload/checker.py
index c10ecce..7abf178 100644
--- a/scripts/update_payload/checker.py
+++ b/scripts/update_payload/checker.py
@@ -860,7 +860,7 @@
'%s: total src blocks (%d) != total dst blocks (%d).' %
(op_name, total_src_blocks, total_dst_blocks))
- def _CheckSourceOperation(self, op, total_src_blocks, op_name):
+ def _CheckAnySourceOperation(self, op, total_src_blocks, op_name):
"""Specific checks for SOURCE_* operations.
Args:
@@ -976,11 +976,11 @@
elif op.type == common.OpType.SOURCE_COPY and self.minor_version in (2, 3):
self._CheckSourceCopyOperation(data_offset, total_src_blocks,
total_dst_blocks, op_name)
- self._CheckSourceOperation(op, total_src_blocks, op_name)
+ self._CheckAnySourceOperation(op, total_src_blocks, op_name)
elif (op.type == common.OpType.SOURCE_BSDIFF and
self.minor_version in (2, 3)):
self._CheckBsdiffOperation(data_length, total_dst_blocks, op_name)
- self._CheckSourceOperation(op, total_src_blocks, op_name)
+ self._CheckAnySourceOperation(op, total_src_blocks, op_name)
else:
raise error.PayloadError(
'Operation %s (type %d) not allowed in minor version %d' %
diff --git a/scripts/update_payload/common.py b/scripts/update_payload/common.py
index 38d949b..80e2501 100644
--- a/scripts/update_payload/common.py
+++ b/scripts/update_payload/common.py
@@ -26,6 +26,7 @@
INPLACE_MINOR_PAYLOAD_VERSION = 1
SOURCE_MINOR_PAYLOAD_VERSION = 2
+OPSRCHASH_MINOR_PAYLOAD_VERSION = 3
#
# Payload operation types.