Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Adding test for reader compatibility
Browse files Browse the repository at this point in the history
Reader + Parser v3 should be able to read V2 cow format written to disk.
This test reads in a small cow file written by basic_v2_cow_writer and
parses it to ensure this compatibility checks out.

Test: cow_api_test
Change-Id: I46ebf4e3f12cdb3e4716ca5b624aab5836086733
  • Loading branch information
zbw182 committed Oct 5, 2023
1 parent 310e7ae commit a16436d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
3 changes: 3 additions & 0 deletions fs_mgr/libsnapshot/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
31 changes: 31 additions & 0 deletions fs_mgr/libsnapshot/libsnapshot_cow/test_v2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit a16436d

Please sign in to comment.