[llvm] 49b32d8 - Relands "[YAMLVFSWriter][Test][NFC] Add couple tests"
Jan Korous via llvm-commits
llvm-commits at lists.llvm.org
Fri May 8 18:09:05 PDT 2020
Author: Jan Korous
Date: 2020-05-08T18:08:50-07:00
New Revision: 49b32d80416288b6eb8e26f76c40a8e32c20a361
URL: https://github.com/llvm/llvm-project/commit/49b32d80416288b6eb8e26f76c40a8e32c20a361
DIFF: https://github.com/llvm/llvm-project/commit/49b32d80416288b6eb8e26f76c40a8e32c20a361.diff
LOG: Relands "[YAMLVFSWriter][Test][NFC] Add couple tests"
Fixed test for Windows.
Differential Revision: https://reviews.llvm.org/D79552
Added:
Modified:
llvm/unittests/Support/VirtualFileSystemTest.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/Support/VirtualFileSystemTest.cpp b/llvm/unittests/Support/VirtualFileSystemTest.cpp
index 8c08cb159304..768409118836 100644
--- a/llvm/unittests/Support/VirtualFileSystemTest.cpp
+++ b/llvm/unittests/Support/VirtualFileSystemTest.cpp
@@ -2274,3 +2274,60 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTestHandleDirs) {
EXPECT_FALSE(FS->exists(_b.Path + "/b"));
EXPECT_FALSE(FS->exists(_c.Path + "/c"));
}
+
+TEST_F(VFSFromYAMLTest, YAMLVFSWriterTestNestedDirs) {
+ ScopedDir TestDirectory("virtual-file-system-test", /*Unique*/ true);
+ ScopedDir a(TestDirectory + "/a");
+ ScopedDir _a_aa(TestDirectory + "/a/aa");
+ ScopedDir b(TestDirectory + "/b");
+ ScopedDir _b_bb(TestDirectory + "/b/bb");
+ ScopedDir c(TestDirectory + "/c");
+ ScopedDir _c_cc(TestDirectory + "/c/cc");
+
+ vfs::YAMLVFSWriter VFSWriter;
+ VFSWriter.addDirectoryMapping(a.Path, "//root/a");
+ VFSWriter.addDirectoryMapping(_a_aa.Path, "//root/a/aa");
+ VFSWriter.addDirectoryMapping(b.Path, "//root/b");
+ VFSWriter.addDirectoryMapping(_b_bb.Path, "//root/b/bb");
+ VFSWriter.addDirectoryMapping(c.Path, "//root/c");
+ VFSWriter.addDirectoryMapping(_c_cc.Path, "//root/c/cc");
+
+ std::string Buffer;
+ raw_string_ostream OS(Buffer);
+ VFSWriter.write(OS);
+ OS.flush();
+
+ IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem());
+ Lower->addDirectory("//root/a");
+ Lower->addDirectory("//root/a/aa");
+ Lower->addDirectory("//root/b");
+ Lower->addDirectory("//root/b/bb");
+ Lower->addDirectory("//root/c");
+ Lower->addDirectory("//root/c/cc");
+
+ IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLRawString(Buffer, Lower);
+ ASSERT_TRUE(FS.get() != nullptr);
+
+ EXPECT_TRUE(FS->exists(a.Path));
+ EXPECT_TRUE(FS->exists(_a_aa.Path));
+ EXPECT_TRUE(FS->exists(b.Path));
+ EXPECT_TRUE(FS->exists(_b_bb.Path));
+ EXPECT_TRUE(FS->exists(c.Path));
+ EXPECT_TRUE(FS->exists(_c_cc.Path));
+}
+
+TEST(YAMLVFSWriterTest, HandleRootAsVPath) {
+ llvm::SmallVector<char, 32> Tmp;
+ llvm::sys::path::system_temp_directory(false, Tmp);
+ llvm::StringRef Root = llvm::sys::path::root_path(StringRef(Tmp.data(), Tmp.size())).str();
+ llvm::SmallVector<char, 32> Subdir(Root.begin(), Root.end());
+ llvm::sys::path::append(Subdir, "foo");
+
+ llvm::vfs::YAMLVFSWriter W;
+ W.addDirectoryMapping(Root, "/tmp");
+ W.addDirectoryMapping(std::string{Subdir.begin(), Subdir.end()} + "/foo", "/tmp/bar");
+ std::string Dump;
+ llvm::raw_string_ostream ToBeIgnored(Dump);
+
+ EXPECT_NO_FATAL_FAILURE(W.write(ToBeIgnored));
+}
More information about the llvm-commits
mailing list