Merge "Adding test for reader compatibility" into main

This commit is contained in:
Daniel Zheng 2023-10-05 17:04:17 +00:00 committed by Gerrit Code Review
commit 4b3b6e2ff5
2 changed files with 34 additions and 0 deletions

View file

@ -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,

View file

@ -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