Hi Mattijs,

On Thu, Oct 15, 2026 at 3:55 PM Mattijs Korpershoek
<[email protected]> wrote:
>
> setup_android_image() creates 2 mmcX.img files:
>
> * mmc7.img: For boot image v4 support
> * mmc8.img: For boot image v2 support
>
> There is quite some code that's common for both images. Currently,
> most code is duplicated.
>
> To prepare a cleaner refactoring, move the image descriptions into an
> array and create each partition using a loop.
>
> Signed-off-by: Mattijs Korpershoek <[email protected]>
> ---
>  test/py/tests/test_android/android_image.py | 48 
> +++++++++++++----------------
>  1 file changed, 21 insertions(+), 27 deletions(-)
>
> diff --git a/test/py/tests/test_android/android_image.py 
> b/test/py/tests/test_android/android_image.py
> index 8b536754656e..14dfd26fffd8 100644
> --- a/test/py/tests/test_android/android_image.py
> +++ b/test/py/tests/test_android/android_image.py
> @@ -13,20 +13,6 @@ def setup_android_image(ubman):
>      parts = {}
>      disk_data = None
>
> -    def set_part_data(partnum, data):
> -        """Set the contents of a disk partition
> -
> -        This updates disk_data by putting data in the right place
> -
> -        Args:
> -            partnum (int): Partition number to set
> -            data (bytes): Data for that partition
> -        """
> -        nonlocal disk_data
> -
> -        start = parts[partnum].start * sect_size
> -        disk_data = disk_data[:start] + data + disk_data[start + len(data):]
> -
>      mmc_dev = 7
>      fname = os.path.join(ubman.config.source_dir, f'mmc{mmc_dev}.img')
>      utils.run_and_log(ubman, f'qemu-img create {fname} 20M')
> @@ -68,15 +54,17 @@ def setup_android_image(ubman):
>      with open(fname, 'rb') as inf:
>          disk_data = inf.read()
>
> -    test_abootimg.AbootimgTestDiskImage(ubman, 'bootv4.img', 
> test_abootimg.boot_img_hex)
> -    boot_img = os.path.join(ubman.config.result_dir, 'bootv4.img')
> -    with open(boot_img, 'rb') as inf:
> -        set_part_data(2, inf.read())
> -
> -    test_abootimg.AbootimgTestDiskImage(ubman, 'vendor_boot.img', 
> test_abootimg.vboot_img_hex)
> -    vendor_boot_img = os.path.join(ubman.config.result_dir, 
> 'vendor_boot.img')
> -    with open(vendor_boot_img, 'rb') as inf:
> -        set_part_data(4, inf.read())
> +    images = [
> +        (2, 'bootv4.img', test_abootimg.boot_img_hex),
> +        (4, 'vendor_boot.img', test_abootimg.vboot_img_hex),
> +    ]
> +    for partnum, img_name, hex_data in images:
> +        test_abootimg.AbootimgTestDiskImage(ubman, img_name, hex_data)
> +        img_path = os.path.join(ubman.config.result_dir, img_name)
> +        with open(img_path, 'rb') as inf:
> +            data = inf.read()
> +        start = parts[partnum].start * sect_size
> +        disk_data = disk_data[:start] + data + disk_data[start + len(data):]
>
>      with open(fname, 'wb') as outf:
>          outf.write(disk_data)
> @@ -120,10 +108,16 @@ def setup_android_image(ubman):
>      with open(fname, 'rb') as inf:
>          disk_data = inf.read()
>
> -    test_abootimg.AbootimgTestDiskImage(ubman, 'boot.img', 
> test_abootimg.img_hex)
> -    boot_img = os.path.join(ubman.config.result_dir, 'boot.img')
> -    with open(boot_img, 'rb') as inf:
> -        set_part_data(2, inf.read())
> +    images = [
> +        (2, 'boot.img', test_abootimg.img_hex),
> +    ]
> +    for partnum, img_name, hex_data in images:
> +        test_abootimg.AbootimgTestDiskImage(ubman, img_name, hex_data)
> +        img_path = os.path.join(ubman.config.result_dir, img_name)
> +        with open(img_path, 'rb') as inf:
> +            data = inf.read()
> +        start = parts[partnum].start * sect_size
> +        disk_data = disk_data[:start] + data + disk_data[start + len(data):]
>
>      with open(fname, 'wb') as outf:
>          outf.write(disk_data)
>
> --
> 2.56.0
>

Reviewed-by: Igor Opaniuk <[email protected]>

Reply via email to