diff options
author | Amin Hassani <ahassani@google.com> | 2017-12-07 12:13:03 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-01-23 01:48:49 -0800 |
commit | 0de7f7847ff2a101a905b75d2ed0867d5ac8fba7 (patch) | |
tree | 3cd366603d173fa7ed9cb0d3ef1b7a71ce1407a0 /scripts/update_payload/checker.py | |
parent | 840703a4cc77228e2606f45665ae3a4bd75ff7dd (diff) |
Relanding 'update_payload: Add XZ compression support'
This patch adds support for checking a payload that has REPLACE_XZ
operations. REPLACE_XZ was added in minor version 3.
BUG=chromium:758792
TEST=unittests pass; paycheck.py with a xz generated payload pass;
CQ-DEPEND=CL:823234
Change-Id: I6ec8068e233f2d595fda93a985923d85c59f150e
Reviewed-on: https://chromium-review.googlesource.com/872124
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
Diffstat (limited to 'scripts/update_payload/checker.py')
-rw-r--r-- | scripts/update_payload/checker.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/update_payload/checker.py b/scripts/update_payload/checker.py index e4cb845f..8e04f1e0 100644 --- a/scripts/update_payload/checker.py +++ b/scripts/update_payload/checker.py @@ -322,6 +322,10 @@ class PayloadChecker(object): self.new_rootfs_fs_size = 0 self.new_kernel_fs_size = 0 self.minor_version = None + # TODO(*): When fixing crbug.com/794404, the major version should be + # correclty handled in update_payload scripts. So stop forcing + # major_verions=1 here and set it to the correct value. + self.major_version = 1 @staticmethod def _CheckElem(msg, name, report, is_mandatory, is_submsg, convert=str, @@ -701,7 +705,7 @@ class PayloadChecker(object): return total_num_blocks def _CheckReplaceOperation(self, op, data_length, total_dst_blocks, op_name): - """Specific checks for REPLACE/REPLACE_BZ operations. + """Specific checks for REPLACE/REPLACE_BZ/REPLACE_XZ operations. Args: op: The operation object from the manifest. @@ -996,6 +1000,9 @@ class PayloadChecker(object): # Type-specific checks. if op.type in (common.OpType.REPLACE, common.OpType.REPLACE_BZ): self._CheckReplaceOperation(op, data_length, total_dst_blocks, op_name) + elif op.type == common.OpType.REPLACE_XZ and (self.minor_version >= 3 or + self.major_version >= 2): + self._CheckReplaceOperation(op, data_length, total_dst_blocks, op_name) elif op.type == common.OpType.MOVE and self.minor_version == 1: self._CheckMoveOperation(op, data_offset, total_src_blocks, total_dst_blocks, op_name) @@ -1068,6 +1075,7 @@ class PayloadChecker(object): op_counts = { common.OpType.REPLACE: 0, common.OpType.REPLACE_BZ: 0, + common.OpType.REPLACE_XZ: 0, common.OpType.MOVE: 0, common.OpType.ZERO: 0, common.OpType.BSDIFF: 0, @@ -1080,6 +1088,7 @@ class PayloadChecker(object): op_blob_totals = { common.OpType.REPLACE: 0, common.OpType.REPLACE_BZ: 0, + common.OpType.REPLACE_XZ: 0, # MOVE operations don't have blobs. common.OpType.BSDIFF: 0, # SOURCE_COPY operations don't have blobs. |