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

Commit 5d2c849c authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "libsnapshot: Fix vts_libsnapshot_test"

parents 4a40c57e 44343d44
Loading
Loading
Loading
Loading
+26 −2
Original line number Original line Diff line number Diff line
@@ -2411,8 +2411,15 @@ TEST_F(SnapshotUpdateTest, QueryStatusError) {
    // fit in super, but not |prd|.
    // fit in super, but not |prd|.
    constexpr uint64_t partition_size = 3788_KiB;
    constexpr uint64_t partition_size = 3788_KiB;
    SetSize(sys_, partition_size);
    SetSize(sys_, partition_size);
    SetSize(vnd_, partition_size);
    SetSize(prd_, 18_MiB);

    // Make sure |prd| does not fit in super at all. On VABC, this means we
    // fake an extra large COW for |vnd| to fill up super.
    vnd_->set_estimate_cow_size(30_MiB);
    prd_->set_estimate_cow_size(30_MiB);


    AddOperationForPartitions({sys_});
    AddOperationForPartitions();


    // Execute the update.
    // Execute the update.
    ASSERT_TRUE(sm->BeginUpdate());
    ASSERT_TRUE(sm->BeginUpdate());
@@ -2422,8 +2429,25 @@ TEST_F(SnapshotUpdateTest, QueryStatusError) {
        GTEST_SKIP() << "Test does not apply to userspace snapshots";
        GTEST_SKIP() << "Test does not apply to userspace snapshots";
    }
    }


    ASSERT_TRUE(WriteSnapshotAndHash("sys_b"));
    // Test that partitions prioritize using space in super.
    auto tgt = MetadataBuilder::New(*opener_, "super", 1);
    ASSERT_NE(tgt, nullptr);
    ASSERT_NE(nullptr, tgt->FindPartition("sys_b-cow"));
    ASSERT_NE(nullptr, tgt->FindPartition("vnd_b-cow"));
    ASSERT_EQ(nullptr, tgt->FindPartition("prd_b-cow"));

    // Write some data to target partitions.
    for (const auto& name : {"sys_b", "vnd_b", "prd_b"}) {
        ASSERT_TRUE(WriteSnapshotAndHash(name));
    }

    // Assert that source partitions aren't affected.
    for (const auto& name : {"sys_a", "vnd_a", "prd_a"}) {
        ASSERT_TRUE(IsPartitionUnchanged(name));
    }

    ASSERT_TRUE(sm->FinishedSnapshotWrites(false));
    ASSERT_TRUE(sm->FinishedSnapshotWrites(false));

    ASSERT_TRUE(UnmapAll());
    ASSERT_TRUE(UnmapAll());


    class DmStatusFailure final : public DeviceMapperWrapper {
    class DmStatusFailure final : public DeviceMapperWrapper {