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

Commit 16d35611 authored by Daniel Zheng's avatar Daniel Zheng
Browse files

test_v3: Add max op test case

Add test case to ensure that add blocks will fail when we try to add
more blocks that options.op_count_max specifies. Expected behavior is
that we will write until that count and then fail

Test: cow_api_test
Change-Id: Icb44508c1bacbbe676347df9a58c0526068eebe0
parent 770bb3ec
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -94,6 +94,24 @@ TEST_F(CowTestV3, Header) {
    ASSERT_EQ(header.cluster_ops, 0);
}

TEST_F(CowTestV3, MaxOp) {
    CowOptions options;
    options.op_count_max = 20;
    auto writer = CreateCowWriter(3, options, GetCowFd());
    ASSERT_FALSE(writer->AddZeroBlocks(1, 21));
    ASSERT_FALSE(writer->AddZeroBlocks(1, 1));
    std::string data = "This is some data, believe it";
    data.resize(options.block_size, '\0');

    ASSERT_FALSE(writer->AddRawBlocks(5, data.data(), data.size()));

    ASSERT_TRUE(writer->Finalize());

    CowReader reader;
    ASSERT_TRUE(reader.Parse(cow_->fd));
    ASSERT_EQ(reader.header_v3().op_count, 20);
}

TEST_F(CowTestV3, ZeroOp) {
    CowOptions options;
    options.op_count_max = 20;