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

Commit 755eb6b6 authored by Yifan Hong's avatar Yifan Hong
Browse files

libsnapshot_test: hardcode alignment.

SnapshotUpdateTest uses a relatively small super partition, which
requires a small alignment and 0 alignment offset to work. For the
purpose of this test, hardcode the alignment and offset.
This test isn't about testing liblp or libdm.

Fixes: 154355449
Fixes: 157437632
Bug: 158718136
Bug: 157633441
Bug: 154646936

Test: atest on devices with alignment of data partition >= 512KiB

Change-Id: I1d0474f028cc824bd4197d0228350395239b3b81
(cherry picked from commit 31739669e91c7a3afc5bee23e43bc45fb4154667)
Merged-In: I1d0474f028cc824bd4197d0228350395239b3b81
parent 4e864e12
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -52,12 +52,21 @@ android::base::unique_fd TestPartitionOpener::Open(const std::string& partition_

bool TestPartitionOpener::GetInfo(const std::string& partition_name,
                                  android::fs_mgr::BlockDeviceInfo* info) const {
    if (partition_name == "super") {
        return PartitionOpener::GetInfo(fake_super_path_, info);
    }
    if (partition_name != "super") {
        return PartitionOpener::GetInfo(partition_name, info);
    }

    if (PartitionOpener::GetInfo(fake_super_path_, info)) {
        // SnapshotUpdateTest uses a relatively small super partition, which requires a small
        // alignment and 0 offset to work. For the purpose of this test, hardcode the alignment
        // and offset. This test isn't about testing liblp or libdm.
        info->alignment_offset = 0;
        info->alignment = std::min<uint32_t>(info->alignment, static_cast<uint32_t>(128_KiB));
        return true;
    }
    return false;
}

std::string TestPartitionOpener::GetDeviceString(const std::string& partition_name) const {
    if (partition_name == "super") {
        return fake_super_path_;