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

Commit 4cda9ec9 authored by Daniel Zheng's avatar Daniel Zheng Committed by Automerger Merge Worker
Browse files

Merge "Adding test for reader compatibility" into main am: 4b3b6e2f

parents 5cc87512 4b3b6e2f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -415,6 +415,9 @@ cc_test {
    test_options: {
        min_shipping_api_level: 30,
    },
    data: [
        "tools/testdata/cow_v2",
    ],
    auto_gen_config: true,
    require_root: false,
    host_supported: true,
+31 −0
Original line number Diff line number Diff line
@@ -1504,6 +1504,37 @@ TEST_F(CowTest, InvalidMergeOrderTest) {
    ASSERT_FALSE(reader.VerifyMergeOps());
}

unique_fd OpenTestFile(const std::string& file, int flags) {
    std::string path = "tools/testdata/" + file;

    unique_fd fd(open(path.c_str(), flags));
    if (fd >= 0) {
        return fd;
    }

    path = android::base::GetExecutableDirectory() + "/" + path;
    return unique_fd{open(path.c_str(), flags)};
}

TEST_F(CowTest, CompatibilityTest) {
    std::string filename = "cow_v2";
    auto fd = OpenTestFile(filename, O_RDONLY);
    if (fd.get() == -1) {
        LOG(ERROR) << filename << " not found";
        GTEST_SKIP();
    }
    CowReader reader;
    reader.Parse(fd);

    const auto& header = reader.GetHeader();
    ASSERT_EQ(header.prefix.magic, kCowMagicNumber);
    ASSERT_EQ(header.prefix.major_version, kCowVersionMajor);
    ASSERT_EQ(header.prefix.minor_version, kCowVersionMinor);

    CowFooter footer;
    ASSERT_TRUE(reader.GetFooter(&footer));
}

}  // namespace snapshot
}  // namespace android