aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Basic/VirtualFileSystemTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/unittests/Basic/VirtualFileSystemTest.cpp')
-rw-r--r--clang/unittests/Basic/VirtualFileSystemTest.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/clang/unittests/Basic/VirtualFileSystemTest.cpp b/clang/unittests/Basic/VirtualFileSystemTest.cpp
index d2f4a7d..e56ec0a 100644
--- a/clang/unittests/Basic/VirtualFileSystemTest.cpp
+++ b/clang/unittests/Basic/VirtualFileSystemTest.cpp
@@ -1022,9 +1022,14 @@ TEST_F(VFSFromYAMLTest, DirectoryIteration) {
Lower->addDirectory("//root/");
Lower->addDirectory("//root/foo");
Lower->addDirectory("//root/foo/bar");
+ Lower->addDirectory("//root/zab");
+ Lower->addDirectory("//root/baz");
Lower->addRegularFile("//root/foo/bar/a");
Lower->addRegularFile("//root/foo/bar/b");
Lower->addRegularFile("//root/file3");
+ Lower->addRegularFile("//root/zab/a");
+ Lower->addRegularFile("//root/zab/b");
+ Lower->addRegularFile("//root/baz/c");
IntrusiveRefCntPtr<vfs::FileSystem> FS =
getFromYAMLString("{ 'use-external-names': false,\n"
" 'roots': [\n"
@@ -1042,6 +1047,26 @@ TEST_F(VFSFromYAMLTest, DirectoryIteration) {
" 'external-contents': '//root/foo/bar/b'\n"
" }\n"
" ]\n"
+ "},\n"
+ "{\n"
+ " 'type': 'directory',\n"
+ " 'name': '//root/baz',\n"
+ " 'contents': [ {\n"
+ " 'type': 'file',\n"
+ " 'name': 'x',\n"
+ " 'external-contents': '//root/zab/a'\n"
+ " }\n"
+ " ]\n"
+ "},\n"
+ "{\n"
+ " 'type': 'directory',\n"
+ " 'name': '//root/baz',\n"
+ " 'contents': [ {\n"
+ " 'type': 'file',\n"
+ " 'name': 'y',\n"
+ " 'external-contents': '//root/zab/b'\n"
+ " }\n"
+ " ]\n"
"}\n"
"]\n"
"}",
@@ -1054,8 +1079,12 @@ TEST_F(VFSFromYAMLTest, DirectoryIteration) {
std::error_code EC;
checkContents(O->dir_begin("//root/", EC),
- {"//root/file1", "//root/file2", "//root/file3", "//root/foo"});
+ {"//root/file1", "//root/file2", "//root/baz", "//root/file3",
+ "//root/foo", "//root/zab"});
checkContents(O->dir_begin("//root/foo/bar", EC),
{"//root/foo/bar/a", "//root/foo/bar/b"});
+
+ checkContents(O->dir_begin("//root/baz", EC),
+ {"//root/baz/x", "//root/baz/y", "//root/baz/c"});
}