test: add tests for dir_entry_view::parent()

This commit is contained in:
Marcus Holland-Moritz 2024-08-24 00:05:16 +02:00
parent 25ef134463
commit 9e201cfe65
2 changed files with 46 additions and 0 deletions

View File

@ -1120,6 +1120,33 @@ void check_compat(logger& lgr, reader::filesystem_v2 const& fs,
}
EXPECT_EQ(expected, paths) << td;
}
{
auto dev = fs.find("foo/1/2/3/4/5/6/7/8/9/j");
ASSERT_TRUE(dev);
EXPECT_EQ("j", dev->name());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_regular_file());
dev = dev->parent();
EXPECT_EQ("9", dev->name());
EXPECT_EQ("foo/1/2/3/4/5/6/7/8/9", dev->unix_path());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
dev = dev->parent()->parent()->parent();
EXPECT_EQ("6", dev->name());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
dev = dev->parent()->parent()->parent()->parent()->parent()->parent();
EXPECT_EQ("foo", dev->name());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
dev = dev->parent();
ASSERT_TRUE(dev);
EXPECT_EQ("", dev->name());
EXPECT_TRUE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
EXPECT_FALSE(dev->parent());
}
}
} // namespace

View File

@ -563,6 +563,25 @@ void basic_end_to_end_test(
ASSERT_TRUE(info.count("root"));
}
}
{
auto dev = fs.find("somedir/ipsum.py");
ASSERT_TRUE(dev);
EXPECT_EQ("ipsum.py", dev->name());
EXPECT_EQ("somedir/ipsum.py", dev->unix_path());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_regular_file());
dev = dev->parent();
EXPECT_EQ("somedir", dev->name());
EXPECT_FALSE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
dev = dev->parent();
ASSERT_TRUE(dev);
EXPECT_EQ("", dev->name());
EXPECT_TRUE(dev->is_root());
EXPECT_TRUE(dev->inode().is_directory());
EXPECT_FALSE(dev->parent());
}
}
std::vector<std::string> const compressions{