diff options
Diffstat (limited to 'clang/unittests/Basic/VirtualFileSystemTest.cpp')
-rw-r--r-- | clang/unittests/Basic/VirtualFileSystemTest.cpp | 31 |
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"}); } |