diff options
author | Allie Wood <alliewood@chromium.org> | 2015-04-24 10:20:27 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-04-27 23:29:30 +0000 |
commit | b065e13f600d0efc7f089a382611ffd93a8afce9 (patch) | |
tree | 07f1240c5c2fd9d08b430114a8d41de37d5d70f7 /scripts/update_payload/checker_unittest.py | |
parent | 12f59aa1cffec0ee531daccc6de7469870f86302 (diff) |
paycheck: Check MOVE operations for start block 0.
paycheck now blocks payloads that read or write to block 0 in a MOVE
operation. It must do this because old versions of PReadAll and
PWriteAll could not seek to 0.
BUG=chromium:480751
TEST=unit tests, test_paycheck.sh
Change-Id: I042de444c92896496795af235e9386dca6c77be2
Reviewed-on: https://chromium-review.googlesource.com/267088
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Allie Wood <alliewood@chromium.org>
Trybot-Ready: Allie Wood <alliewood@chromium.org>
Tested-by: Allie Wood <alliewood@chromium.org>
Diffstat (limited to 'scripts/update_payload/checker_unittest.py')
-rwxr-xr-x | scripts/update_payload/checker_unittest.py | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/scripts/update_payload/checker_unittest.py b/scripts/update_payload/checker_unittest.py index eb8b5644..b57c2fcf 100755 --- a/scripts/update_payload/checker_unittest.py +++ b/scripts/update_payload/checker_unittest.py @@ -633,7 +633,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 128))) + self.NewExtentList((1, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 6))) self.assertIsNone( @@ -646,7 +646,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 128))) + self.NewExtentList((1, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 6))) self.assertRaises( @@ -661,7 +661,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 127))) + self.NewExtentList((1, 4), (12, 2), (1024, 127))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 6))) self.assertRaises( @@ -676,7 +676,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 128))) + self.NewExtentList((1, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 5))) self.assertRaises( @@ -691,7 +691,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 128))) + self.NewExtentList((1, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 5))) self.assertRaises( @@ -699,7 +699,7 @@ class PayloadCheckerTest(mox.MoxTestBase): payload_checker._CheckMoveOperation, op, None, 134, 134, 'foo') self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 129))) + self.NewExtentList((1, 4), (12, 2), (1024, 129))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 6))) self.assertRaises( @@ -714,7 +714,7 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, - self.NewExtentList((0, 4), (12, 2), (1024, 128))) + self.NewExtentList((1, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((16, 128), (512, 7))) self.assertRaises( @@ -729,6 +729,21 @@ class PayloadCheckerTest(mox.MoxTestBase): op.type = common.OpType.MOVE self.AddToMessage(op.src_extents, + self.NewExtentList((1, 4), (12, 2), (1024, 128))) + self.AddToMessage(op.dst_extents, + self.NewExtentList((8, 128), (512, 6))) + self.assertRaises( + update_payload.PayloadError, + payload_checker._CheckMoveOperation, + op, None, 134, 134, 'foo') + + def testCheckMoveOperation_FailZeroStartBlock(self): + """Tests _CheckMoveOperation(); fails, has extent with start block 0.""" + payload_checker = checker.PayloadChecker(self.MockPayload()) + op = update_metadata_pb2.DeltaArchiveManifest.InstallOperation() + op.type = common.OpType.MOVE + + self.AddToMessage(op.src_extents, self.NewExtentList((0, 4), (12, 2), (1024, 128))) self.AddToMessage(op.dst_extents, self.NewExtentList((8, 128), (512, 6))) @@ -737,6 +752,15 @@ class PayloadCheckerTest(mox.MoxTestBase): payload_checker._CheckMoveOperation, op, None, 134, 134, 'foo') + self.AddToMessage(op.src_extents, + self.NewExtentList((1, 4), (12, 2), (1024, 128))) + self.AddToMessage(op.dst_extents, + self.NewExtentList((0, 128), (512, 6))) + self.assertRaises( + update_payload.PayloadError, + payload_checker._CheckMoveOperation, + op, None, 134, 134, 'foo') + def testCheckBsdiff(self): """Tests _CheckMoveOperation().""" payload_checker = checker.PayloadChecker(self.MockPayload()) @@ -829,10 +853,10 @@ class PayloadCheckerTest(mox.MoxTestBase): common.OpType.SOURCE_COPY, common.OpType.SOURCE_BSDIFF): if fail_src_extents: self.AddToMessage(op.src_extents, - self.NewExtentList((0, 0))) + self.NewExtentList((1, 0))) else: self.AddToMessage(op.src_extents, - self.NewExtentList((0, 16))) + self.NewExtentList((1, 16))) total_src_blocks = 16 if op_type in (common.OpType.REPLACE, common.OpType.REPLACE_BZ): |