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

Commit 55fb297a authored by Yifan Hong's avatar Yifan Hong
Browse files

libdm: Fix DmTable::num_sectors

Test: libdm_test
Change-Id: If147df2d5c4f3b3df7ca57200f16a9ad59ae8327
parent 9c790312
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ bool DmTable::AddTarget(std::unique_ptr<DmTarget>&& target) {
    if (!target->Valid()) {
    if (!target->Valid()) {
        return false;
        return false;
    }
    }
    num_sectors_ += target->size();
    targets_.push_back(std::move(target));
    targets_.push_back(std::move(target));
    return true;
    return true;
}
}
+5 −0
Original line number Original line Diff line number Diff line
@@ -114,6 +114,7 @@ TEST(libdm, DmLinear) {
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(0, 1, loop_a.device(), 0));
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(0, 1, loop_a.device(), 0));
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(1, 1, loop_b.device(), 0));
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(1, 1, loop_b.device(), 0));
    ASSERT_TRUE(table.valid());
    ASSERT_TRUE(table.valid());
    ASSERT_EQ(2u, table.num_sectors());


    TempDevice dev("libdm-test-dm-linear", table);
    TempDevice dev("libdm-test-dm-linear", table);
    ASSERT_TRUE(dev.valid());
    ASSERT_TRUE(dev.valid());
@@ -176,6 +177,7 @@ TEST(libdm, DmSuspendResume) {
    DmTable table;
    DmTable table;
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(0, 1, loop_a.device(), 0));
    ASSERT_TRUE(table.Emplace<DmTargetLinear>(0, 1, loop_a.device(), 0));
    ASSERT_TRUE(table.valid());
    ASSERT_TRUE(table.valid());
    ASSERT_EQ(1u, table.num_sectors());


    TempDevice dev("libdm-test-dm-suspend-resume", table);
    TempDevice dev("libdm-test-dm-suspend-resume", table);
    ASSERT_TRUE(dev.valid());
    ASSERT_TRUE(dev.valid());
@@ -292,6 +294,7 @@ void SnapshotTestHarness::SetupImpl() {
    ASSERT_TRUE(origin_table.AddTarget(make_unique<DmTargetSnapshotOrigin>(
    ASSERT_TRUE(origin_table.AddTarget(make_unique<DmTargetSnapshotOrigin>(
            0, kBaseDeviceSize / kSectorSize, base_loop_->device())));
            0, kBaseDeviceSize / kSectorSize, base_loop_->device())));
    ASSERT_TRUE(origin_table.valid());
    ASSERT_TRUE(origin_table.valid());
    ASSERT_EQ(kBaseDeviceSize / kSectorSize, origin_table.num_sectors());


    origin_dev_ = std::make_unique<TempDevice>("libdm-test-dm-snapshot-origin", origin_table);
    origin_dev_ = std::make_unique<TempDevice>("libdm-test-dm-snapshot-origin", origin_table);
    ASSERT_TRUE(origin_dev_->valid());
    ASSERT_TRUE(origin_dev_->valid());
@@ -303,6 +306,7 @@ void SnapshotTestHarness::SetupImpl() {
            0, kBaseDeviceSize / kSectorSize, base_loop_->device(), cow_loop_->device(),
            0, kBaseDeviceSize / kSectorSize, base_loop_->device(), cow_loop_->device(),
            SnapshotStorageMode::Persistent, 8)));
            SnapshotStorageMode::Persistent, 8)));
    ASSERT_TRUE(snap_table.valid());
    ASSERT_TRUE(snap_table.valid());
    ASSERT_EQ(kBaseDeviceSize / kSectorSize, snap_table.num_sectors());


    snapshot_dev_ = std::make_unique<TempDevice>("libdm-test-dm-snapshot", snap_table);
    snapshot_dev_ = std::make_unique<TempDevice>("libdm-test-dm-snapshot", snap_table);
    ASSERT_TRUE(snapshot_dev_->valid());
    ASSERT_TRUE(snapshot_dev_->valid());
@@ -322,6 +326,7 @@ void SnapshotTestHarness::MergeImpl() {
            make_unique<DmTargetSnapshot>(0, kBaseDeviceSize / kSectorSize, base_loop_->device(),
            make_unique<DmTargetSnapshot>(0, kBaseDeviceSize / kSectorSize, base_loop_->device(),
                                          cow_loop_->device(), SnapshotStorageMode::Merge, 8)));
                                          cow_loop_->device(), SnapshotStorageMode::Merge, 8)));
    ASSERT_TRUE(merge_table.valid());
    ASSERT_TRUE(merge_table.valid());
    ASSERT_EQ(kBaseDeviceSize / kSectorSize, merge_table.num_sectors());


    DeviceMapper& dm = DeviceMapper::Instance();
    DeviceMapper& dm = DeviceMapper::Instance();
    ASSERT_TRUE(dm.LoadTableAndActivate("libdm-test-dm-snapshot", merge_table));
    ASSERT_TRUE(dm.LoadTableAndActivate("libdm-test-dm-snapshot", merge_table));