releasetools: Move verity related functions into verity_utils.py.
This prepares for upcoming changes that refactor verity-related
functions into classes.
This CL makes minimal changes to the moved functions, by creating a new
BuildVerityImageError class in verity_utils.py replacing the former
BuildImageError that's specific to build_image.py. As part of the
change, it also moves the tests for AVBCalcMinPartitionSize into
test_verity_utils.py.
Test: python -m unittest test_verity_utils
Test: `m dist` with aosp_marlin-userdebug (Verified Boot 1.0)
Test: `m dist` with aosp_taimen-userdebug (Verified Boot 2.0)
Change-Id: I19b52714d8980705ea1f9484ac03eb0af9483240
diff --git a/tools/releasetools/test_build_image.py b/tools/releasetools/test_build_image.py
index 6f853e8..634c6b1 100644
--- a/tools/releasetools/test_build_image.py
+++ b/tools/releasetools/test_build_image.py
@@ -15,14 +15,11 @@
#
import filecmp
-import math
import os.path
-import random
import common
from build_image import (
- AVBCalcMinPartitionSize, BLOCK_SIZE, BuildImageError, CheckHeadroom,
- SetUpInDirAndFsConfig)
+ BuildImageError, CheckHeadroom, SetUpInDirAndFsConfig)
from test_utils import ReleaseToolsTestCase
@@ -32,13 +29,6 @@
EXT4FS_OUTPUT = (
"Created filesystem with 2777/129024 inodes and 515099/516099 blocks")
- def setUp(self):
- # To test AVBCalcMinPartitionSize(), by using 200MB to 2GB image size.
- # - 51200 = 200MB * 1024 * 1024 / 4096
- # - 524288 = 2GB * 1024 * 1024 * 1024 / 4096
- self._image_sizes = [BLOCK_SIZE * random.randint(51200, 524288) + offset
- for offset in range(BLOCK_SIZE)]
-
def test_CheckHeadroom_SizeUnderLimit(self):
# Required headroom: 1000 blocks.
prop_dict = {
@@ -186,51 +176,3 @@
self.assertIn('fs-config-system\n', fs_config_data)
self.assertIn('fs-config-root\n', fs_config_data)
self.assertEqual('/', prop_dict['mount_point'])
-
- def test_AVBCalcMinPartitionSize_LinearFooterSize(self):
- """Tests with footer size which is linear to partition size."""
- for image_size in self._image_sizes:
- for ratio in 0.95, 0.56, 0.22:
- expected_size = common.RoundUpTo4K(int(math.ceil(image_size / ratio)))
- self.assertEqual(
- expected_size,
- AVBCalcMinPartitionSize(image_size, lambda x: int(x * ratio)))
-
- def test_AVBCalcMinPartitionSize_SlowerGrowthFooterSize(self):
- """Tests with footer size which grows slower than partition size."""
-
- def _SizeCalculator(partition_size):
- """Footer size is the power of 0.95 of partition size."""
- # Minus footer size to return max image size.
- return partition_size - int(math.pow(partition_size, 0.95))
-
- for image_size in self._image_sizes:
- min_partition_size = AVBCalcMinPartitionSize(image_size, _SizeCalculator)
- # Checks min_partition_size can accommodate image_size.
- self.assertGreaterEqual(
- _SizeCalculator(min_partition_size),
- image_size)
- # Checks min_partition_size (round to BLOCK_SIZE) is the minimum.
- self.assertLess(
- _SizeCalculator(min_partition_size - BLOCK_SIZE),
- image_size)
-
- def test_AVBCalcMinPartitionSize_FasterGrowthFooterSize(self):
- """Tests with footer size which grows faster than partition size."""
-
- def _SizeCalculator(partition_size):
- """Max image size is the power of 0.95 of partition size."""
- # Max image size grows less than partition size, which means
- # footer size grows faster than partition size.
- return int(math.pow(partition_size, 0.95))
-
- for image_size in self._image_sizes:
- min_partition_size = AVBCalcMinPartitionSize(image_size, _SizeCalculator)
- # Checks min_partition_size can accommodate image_size.
- self.assertGreaterEqual(
- _SizeCalculator(min_partition_size),
- image_size)
- # Checks min_partition_size (round to BLOCK_SIZE) is the minimum.
- self.assertLess(
- _SizeCalculator(min_partition_size - BLOCK_SIZE),
- image_size)