Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 383d4682 authored by Yifan Hong's avatar Yifan Hong Committed by android-build-merger
Browse files

Merge "Fix Virtual A/B size checks" am: 654fdb5e am: b3a4b3a2

am: e64874fe

Change-Id: I5aad18f19da8c2594edba614853e0c42b9e7f447
parents 6909cc9f e64874fe
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -76,11 +76,17 @@ class Expression(object):
class DeviceType(object):
class DeviceType(object):
  NONE = 0
  NONE = 0
  AB = 1
  AB = 1
  RVAB = 2 # retrofit Virtual-A/B
  VAB = 3


  @staticmethod
  @staticmethod
  def Get(info_dict):
  def Get(info_dict):
    if info_dict.get("ab_update") != "true":
    if info_dict.get("ab_update") != "true":
      return DeviceType.NONE
      return DeviceType.NONE
    if info_dict.get("virtual_ab_retrofit") == "true":
      return DeviceType.RVAB
    if info_dict.get("virtual_ab") == "true":
      return DeviceType.VAB
    return DeviceType.AB
    return DeviceType.AB




@@ -175,6 +181,14 @@ class DynamicPartitionSizeChecker(object):
    if slot == DeviceType.AB:
    if slot == DeviceType.AB:
      return 2
      return 2


    # DAP + retrofit Virtual A/B: same as A/B
    if slot == DeviceType.RVAB:
      return 2

    # DAP + Launch Virtual A/B: 1 *real* slot in super (2 virtual slots)
    if slot == DeviceType.VAB:
      return 1

    # DAP + non-A/B: 1 slot in super
    # DAP + non-A/B: 1 slot in super
    assert slot == DeviceType.NONE
    assert slot == DeviceType.NONE
    return 1
    return 1
+34 −0
Original line number Original line Diff line number Diff line
@@ -92,3 +92,37 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase):
        """.split("\n")))
        """.split("\n")))
    with self.assertRaises(RuntimeError):
    with self.assertRaises(RuntimeError):
      CheckPartitionSizes(self.info_dict)
      CheckPartitionSizes(self.info_dict)

  def test_retrofit_vab(self):
    self.info_dict.update(common.LoadDictionaryFromLines("""
        virtual_ab=true
        virtual_ab_retrofit=true
        """.split("\n")))
    CheckPartitionSizes(self.info_dict)

  def test_retrofit_vab_too_big(self):
    self.info_dict.update(common.LoadDictionaryFromLines("""
        virtual_ab=true
        virtual_ab_retrofit=true
        system_image_size=100
        """.split("\n")))
    with self.assertRaises(RuntimeError):
      CheckPartitionSizes(self.info_dict)

  def test_vab(self):
    self.info_dict.update(common.LoadDictionaryFromLines("""
        virtual_ab=true
        super_partition_size=100
        super_super_device_size=100
        """.split("\n")))
    CheckPartitionSizes(self.info_dict)

  def test_vab_too_big(self):
    self.info_dict.update(common.LoadDictionaryFromLines("""
        virtual_ab=true
        super_partition_size=100
        super_super_device_size=100
        system_image_size=100
        """.split("\n")))
    with self.assertRaises(RuntimeError):
      CheckPartitionSizes(self.info_dict)