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.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/clang/unittests/Basic/VirtualFileSystemTest.cpp b/clang/unittests/Basic/VirtualFileSystemTest.cpp
index a9b39b5..22fbeac 100644
--- a/clang/unittests/Basic/VirtualFileSystemTest.cpp
+++ b/clang/unittests/Basic/VirtualFileSystemTest.cpp
@@ -1468,3 +1468,35 @@ TEST_F(VFSFromYAMLTest, RecursiveDirectoryIterationLevel) {
}
EXPECT_EQ(I, E);
}
+
+TEST_F(VFSFromYAMLTest, RelativePaths) {
+ IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem());
+ // Filename at root level without a parent directory.
+ IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLString(
+ "{ 'roots': [\n"
+ " { 'type': 'file', 'name': 'file-not-in-directory.h',\n"
+ " 'external-contents': '//root/external/file'\n"
+ " }\n"
+ "] }", Lower);
+ EXPECT_EQ(nullptr, FS.get());
+
+ // Relative file path.
+ FS = getFromYAMLString(
+ "{ 'roots': [\n"
+ " { 'type': 'file', 'name': 'relative/file/path.h',\n"
+ " 'external-contents': '//root/external/file'\n"
+ " }\n"
+ "] }", Lower);
+ EXPECT_EQ(nullptr, FS.get());
+
+ // Relative directory path.
+ FS = getFromYAMLString(
+ "{ 'roots': [\n"
+ " { 'type': 'directory', 'name': 'relative/directory/path.h',\n"
+ " 'contents': []\n"
+ " }\n"
+ "] }", Lower);
+ EXPECT_EQ(nullptr, FS.get());
+
+ EXPECT_EQ(3, NumDiagnostics);
+}