|
@@ -370,16 +370,23 @@ TEST(VirtualFileSystemTest, BasicRealFSRecursiveIteration) {
|
|
|
}
|
|
|
|
|
|
template <typename DirIter>
|
|
|
-static void checkContents(DirIter I, ArrayRef<StringRef> Expected) {
|
|
|
+static void checkContents(DirIter I, ArrayRef<StringRef> ExpectedOut) {
|
|
|
std::error_code EC;
|
|
|
- auto ExpectedIter = Expected.begin(), ExpectedEnd = Expected.end();
|
|
|
- for (DirIter E;
|
|
|
- !EC && I != E && ExpectedIter != ExpectedEnd;
|
|
|
- I.increment(EC), ++ExpectedIter)
|
|
|
- EXPECT_EQ(*ExpectedIter, I->getName());
|
|
|
-
|
|
|
- EXPECT_EQ(ExpectedEnd, ExpectedIter);
|
|
|
- EXPECT_EQ(DirIter(), I);
|
|
|
+ SmallVector<StringRef, 4> Expected(ExpectedOut.begin(), ExpectedOut.end());
|
|
|
+ SmallVector<std::string, 4> InputToCheck;
|
|
|
+
|
|
|
+ // Do not rely on iteration order to check for contents, sort both
|
|
|
+ // content vectors before comparison.
|
|
|
+ for (DirIter E; !EC && I != E; I.increment(EC))
|
|
|
+ InputToCheck.push_back(I->getName());
|
|
|
+
|
|
|
+ std::sort(InputToCheck.begin(), InputToCheck.end());
|
|
|
+ std::sort(Expected.begin(), Expected.end());
|
|
|
+ EXPECT_EQ(InputToCheck.size(), Expected.size());
|
|
|
+
|
|
|
+ unsigned LastElt = std::min(InputToCheck.size(), Expected.size());
|
|
|
+ for (unsigned Idx = 0; Idx != LastElt; ++Idx)
|
|
|
+ EXPECT_EQ(Expected[Idx], StringRef(InputToCheck[Idx]));
|
|
|
}
|
|
|
|
|
|
TEST(VirtualFileSystemTest, OverlayIteration) {
|