|
@@ -883,87 +883,62 @@ TEST_F(FileSystemTest, BrokenSymlinkDirectoryIteration) {
|
|
v_t VisitedNonBrokenSymlinks;
|
|
v_t VisitedNonBrokenSymlinks;
|
|
v_t VisitedBrokenSymlinks;
|
|
v_t VisitedBrokenSymlinks;
|
|
std::error_code ec;
|
|
std::error_code ec;
|
|
|
|
+ using testing::UnorderedElementsAre;
|
|
|
|
+ using testing::UnorderedElementsAreArray;
|
|
|
|
|
|
// Broken symbol links are expected to throw an error.
|
|
// Broken symbol links are expected to throw an error.
|
|
for (fs::directory_iterator i(Twine(TestDirectory) + "/symlink", ec), e;
|
|
for (fs::directory_iterator i(Twine(TestDirectory) + "/symlink", ec), e;
|
|
i != e; i.increment(ec)) {
|
|
i != e; i.increment(ec)) {
|
|
- if (ec == std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
|
|
|
|
+ ASSERT_NO_ERROR(ec);
|
|
|
|
+ if (i->status().getError() ==
|
|
|
|
+ std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
-
|
|
|
|
- ASSERT_NO_ERROR(ec);
|
|
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
}
|
|
}
|
|
- llvm::sort(VisitedNonBrokenSymlinks);
|
|
|
|
- llvm::sort(VisitedBrokenSymlinks);
|
|
|
|
- v_t ExpectedNonBrokenSymlinks = {"b", "d"};
|
|
|
|
- ASSERT_EQ(ExpectedNonBrokenSymlinks.size(), VisitedNonBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedNonBrokenSymlinks.begin(),
|
|
|
|
- VisitedNonBrokenSymlinks.end(),
|
|
|
|
- ExpectedNonBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedNonBrokenSymlinks, UnorderedElementsAre("b", "d"));
|
|
VisitedNonBrokenSymlinks.clear();
|
|
VisitedNonBrokenSymlinks.clear();
|
|
|
|
|
|
- v_t ExpectedBrokenSymlinks = {"a", "c", "e"};
|
|
|
|
- ASSERT_EQ(ExpectedBrokenSymlinks.size(), VisitedBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedBrokenSymlinks.begin(),
|
|
|
|
- VisitedBrokenSymlinks.end(),
|
|
|
|
- ExpectedBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedBrokenSymlinks, UnorderedElementsAre("a", "c", "e"));
|
|
VisitedBrokenSymlinks.clear();
|
|
VisitedBrokenSymlinks.clear();
|
|
|
|
|
|
// Broken symbol links are expected to throw an error.
|
|
// Broken symbol links are expected to throw an error.
|
|
for (fs::recursive_directory_iterator i(
|
|
for (fs::recursive_directory_iterator i(
|
|
Twine(TestDirectory) + "/symlink", ec), e; i != e; i.increment(ec)) {
|
|
Twine(TestDirectory) + "/symlink", ec), e; i != e; i.increment(ec)) {
|
|
- if (ec == std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
|
|
|
|
+ ASSERT_NO_ERROR(ec);
|
|
|
|
+ if (i->status().getError() ==
|
|
|
|
+ std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
-
|
|
|
|
- ASSERT_NO_ERROR(ec);
|
|
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
}
|
|
}
|
|
- llvm::sort(VisitedNonBrokenSymlinks);
|
|
|
|
- llvm::sort(VisitedBrokenSymlinks);
|
|
|
|
- ExpectedNonBrokenSymlinks = {"b", "bb", "d", "da", "dd", "ddd", "ddd"};
|
|
|
|
- ASSERT_EQ(ExpectedNonBrokenSymlinks.size(), VisitedNonBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedNonBrokenSymlinks.begin(),
|
|
|
|
- VisitedNonBrokenSymlinks.end(),
|
|
|
|
- ExpectedNonBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedNonBrokenSymlinks,
|
|
|
|
+ UnorderedElementsAre("b", "bb", "d", "da", "dd", "ddd", "ddd"));
|
|
VisitedNonBrokenSymlinks.clear();
|
|
VisitedNonBrokenSymlinks.clear();
|
|
|
|
|
|
- ExpectedBrokenSymlinks = {"a", "ba", "bc", "c", "e"};
|
|
|
|
- ASSERT_EQ(ExpectedBrokenSymlinks.size(), VisitedBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedBrokenSymlinks.begin(),
|
|
|
|
- VisitedBrokenSymlinks.end(),
|
|
|
|
- ExpectedBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedBrokenSymlinks,
|
|
|
|
+ UnorderedElementsAre("a", "ba", "bc", "c", "e"));
|
|
VisitedBrokenSymlinks.clear();
|
|
VisitedBrokenSymlinks.clear();
|
|
|
|
|
|
for (fs::recursive_directory_iterator i(
|
|
for (fs::recursive_directory_iterator i(
|
|
Twine(TestDirectory) + "/symlink", ec, /*follow_symlinks=*/false), e;
|
|
Twine(TestDirectory) + "/symlink", ec, /*follow_symlinks=*/false), e;
|
|
i != e; i.increment(ec)) {
|
|
i != e; i.increment(ec)) {
|
|
- if (ec == std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
|
|
|
|
+ ASSERT_NO_ERROR(ec);
|
|
|
|
+ if (i->status().getError() ==
|
|
|
|
+ std::make_error_code(std::errc::no_such_file_or_directory)) {
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedBrokenSymlinks.push_back(path::filename(i->path()));
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
-
|
|
|
|
- ASSERT_NO_ERROR(ec);
|
|
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
VisitedNonBrokenSymlinks.push_back(path::filename(i->path()));
|
|
}
|
|
}
|
|
- llvm::sort(VisitedNonBrokenSymlinks);
|
|
|
|
- llvm::sort(VisitedBrokenSymlinks);
|
|
|
|
- ExpectedNonBrokenSymlinks = {"a", "b", "ba", "bb", "bc", "c", "d", "da", "dd",
|
|
|
|
- "ddd", "e"};
|
|
|
|
- ASSERT_EQ(ExpectedNonBrokenSymlinks.size(), VisitedNonBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedNonBrokenSymlinks.begin(),
|
|
|
|
- VisitedNonBrokenSymlinks.end(),
|
|
|
|
- ExpectedNonBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedNonBrokenSymlinks,
|
|
|
|
+ UnorderedElementsAreArray({"a", "b", "ba", "bb", "bc", "c", "d",
|
|
|
|
+ "da", "dd", "ddd", "e"}));
|
|
VisitedNonBrokenSymlinks.clear();
|
|
VisitedNonBrokenSymlinks.clear();
|
|
|
|
|
|
- ExpectedBrokenSymlinks = {};
|
|
|
|
- ASSERT_EQ(ExpectedBrokenSymlinks.size(), VisitedBrokenSymlinks.size());
|
|
|
|
- ASSERT_TRUE(std::equal(VisitedBrokenSymlinks.begin(),
|
|
|
|
- VisitedBrokenSymlinks.end(),
|
|
|
|
- ExpectedBrokenSymlinks.begin()));
|
|
|
|
|
|
+ EXPECT_THAT(VisitedBrokenSymlinks, UnorderedElementsAre());
|
|
VisitedBrokenSymlinks.clear();
|
|
VisitedBrokenSymlinks.clear();
|
|
|
|
|
|
ASSERT_NO_ERROR(fs::remove_directories(Twine(TestDirectory) + "/symlink"));
|
|
ASSERT_NO_ERROR(fs::remove_directories(Twine(TestDirectory) + "/symlink"));
|