From b065e13f600d0efc7f089a382611ffd93a8afce9 Mon Sep 17 00:00:00 2001 From: Allie Wood Date: Fri, 24 Apr 2015 10:20:27 -0700 Subject: 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 Reviewed-by: Alex Deymo Commit-Queue: Allie Wood Trybot-Ready: Allie Wood Tested-by: Allie Wood --- scripts/update_payload/checker_unittest.py | 42 +++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'scripts/update_payload/checker_unittest.py') 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( @@ -728,6 +728,21 @@ class PayloadCheckerTest(mox.MoxTestBase): op = update_metadata_pb2.DeltaArchiveManifest.InstallOperation() 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, @@ -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): -- cgit v1.2.3