diff --git a/unittests/Support/VirtualFileSystemTest.cpp b/unittests/Support/VirtualFileSystemTest.cpp index 69e9ce80f79..87547b29c67 100644 --- a/unittests/Support/VirtualFileSystemTest.cpp +++ b/unittests/Support/VirtualFileSystemTest.cpp @@ -2089,6 +2089,16 @@ TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthrough) { " 'external-contents': '//root/foo/a'\n" " }\n" " ]\n" + "},\n" + "{\n" + " 'type': 'directory',\n" + " 'name': '//root/bar/baz',\n" + " 'contents': [ {\n" + " 'type': 'file',\n" + " 'name': 'a',\n" + " 'external-contents': '//root/foo/a'\n" + " }\n" + " ]\n" "}\n" "]\n" "}", @@ -2125,6 +2135,21 @@ TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthrough) { Status = FS->status("c"); ASSERT_FALSE(Status.getError()); EXPECT_TRUE(Status->exists()); + + Status = FS->status("./bar/baz/a"); + ASSERT_FALSE(Status.getError()); + EXPECT_TRUE(Status->exists()); + + EC = FS->setCurrentWorkingDirectory("//root/bar"); + ASSERT_FALSE(EC); + + Status = FS->status("./baz/a"); + ASSERT_FALSE(Status.getError()); + EXPECT_TRUE(Status->exists()); + + Status = FS->status("../bar/baz/a"); + ASSERT_FALSE(Status.getError()); + EXPECT_TRUE(Status->exists()); } TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthroughInvalid) {