diff options
Diffstat (limited to 'llvm/unittests/Support')
-rw-r--r-- | llvm/unittests/Support/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/unittests/Support/DebugLogTest.cpp | 139 | ||||
-rw-r--r-- | llvm/unittests/Support/VirtualFileSystemTest.cpp | 220 |
3 files changed, 237 insertions, 123 deletions
diff --git a/llvm/unittests/Support/CMakeLists.txt b/llvm/unittests/Support/CMakeLists.txt index d048e87..868c40b 100644 --- a/llvm/unittests/Support/CMakeLists.txt +++ b/llvm/unittests/Support/CMakeLists.txt @@ -31,6 +31,7 @@ add_llvm_unittest(SupportTests DataExtractorTest.cpp DebugCounterTest.cpp DebugTest.cpp + DebugLogTest.cpp DivisionByConstantTest.cpp DJBTest.cpp EndianStreamTest.cpp diff --git a/llvm/unittests/Support/DebugLogTest.cpp b/llvm/unittests/Support/DebugLogTest.cpp new file mode 100644 index 0000000..0c464c1 --- /dev/null +++ b/llvm/unittests/Support/DebugLogTest.cpp @@ -0,0 +1,139 @@ +//===- llvm/unittest/Support/DebugLogTest.cpp -----------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// This macro is defined in the LLVM build system, but we undefine it here +// so that we test at least once in-tree the case where __SHORT_FILE__ is not +// defined. +#undef __SHORT_FILE__ + +#include "llvm/Support/DebugLog.h" +#include "llvm/ADT/Sequence.h" +#include "llvm/Support/raw_ostream.h" +#include "gmock/gmock.h" +#include "gtest/gtest.h" + +#include <string> +using namespace llvm; +using testing::Eq; +using testing::HasSubstr; + +#ifndef NDEBUG +TEST(DebugLogTest, Basic) { + llvm::DebugFlag = true; + static const char *DT[] = {"A", "B"}; + + // Clear debug types. + setCurrentDebugTypes(DT, 0); + { + std::string str; + raw_string_ostream os(str); + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, nullptr) << "NoType"; + EXPECT_FALSE(StringRef(os.str()).starts_with('[')); + EXPECT_TRUE(StringRef(os.str()).ends_with("NoType\n")); + } + + setCurrentDebugTypes(DT, 2); + { + std::string str; + raw_string_ostream os(str); + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "A") << "A"; + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "B") << "B"; + EXPECT_TRUE(StringRef(os.str()).starts_with('[')); + EXPECT_THAT(os.str(), AllOf(HasSubstr("A\n"), HasSubstr("B\n"))); + } + + setCurrentDebugType("A"); + { + std::string str; + raw_string_ostream os(str); + // Just check that the macro doesn't result in dangling else. + if (true) + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "A") << "A"; + else + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "A") << "B"; + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "B") << "B"; + EXPECT_THAT(os.str(), AllOf(HasSubstr("A\n"), Not(HasSubstr("B\n")))); + + int count = 0; + auto inc = [&]() { return ++count; }; + EXPECT_THAT(count, Eq(0)); + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "A") << inc(); + EXPECT_THAT(count, Eq(1)); + DEBUGLOG_WITH_STREAM_AND_TYPE(os, 0, "B") << inc(); + EXPECT_THAT(count, Eq(1)); + } +} + +TEST(DebugLogTest, BasicWithLevel) { + llvm::DebugFlag = true; + // We expect A to be always printed, B to be printed only when level is 1 or + // below, and C to be printed only when level is 0 or below. + static const char *DT[] = {"A", "B:1", "C:"}; + + setCurrentDebugTypes(DT, sizeof(DT) / sizeof(DT[0])); + std::string str; + raw_string_ostream os(str); + for (auto type : {"A", "B", "C", "D"}) + for (int level : llvm::seq<int>(0, 4)) + DEBUGLOG_WITH_STREAM_TYPE_FILE_AND_LINE(os, level, type, type, level) + << level; + EXPECT_EQ(os.str(), "[A:0] A:0 0\n[A:1] A:1 1\n[A:2] A:2 2\n[A:3] A:3 " + "3\n[B:0] B:0 0\n[B:1] B:1 1\n[C:0] C:0 0\n"); +} + +TEST(DebugLogTest, NegativeLevel) { + llvm::DebugFlag = true; + // Test the special behavior when all the levels are 0. + // In this case we expect all the debug types to be printed. + static const char *DT[] = {"A:"}; + + setCurrentDebugTypes(DT, sizeof(DT) / sizeof(DT[0])); + std::string str; + raw_string_ostream os(str); + for (auto type : {"A", "B"}) + for (int level : llvm::seq<int>(0, 2)) + DEBUGLOG_WITH_STREAM_TYPE_FILE_AND_LINE(os, level, type, type, level) + << level; + EXPECT_EQ(os.str(), "[A:0] A:0 0\n[B:0] B:0 0\n[B:1] B:1 1\n"); +} + +TEST(DebugLogTest, StreamPrefix) { + llvm::DebugFlag = true; + static const char *DT[] = {"A", "B"}; + setCurrentDebugTypes(DT, 2); + + std::string str; + raw_string_ostream os(str); + std::string expected = "PrefixA 1\nPrefixA 2\nPrefixA \nPrefixB " + "3\nPrefixB 4\nPrefixA 5"; + { + llvm::impl::raw_ldbg_ostream ldbg_osB("PrefixB ", os); + llvm::impl::raw_ldbg_ostream ldbg_osA("PrefixA ", os); + ldbg_osA << "1\n2"; + ldbg_osA << "\n\n"; + ldbg_osB << "3\n4\n"; + ldbg_osA << "5"; + EXPECT_EQ(os.str(), expected); + } + // After destructors, there was a pending newline for stream B. + EXPECT_EQ(os.str(), expected + "\nPrefixB \n"); +} +#else +TEST(DebugLogTest, Basic) { + // LDBG should be compiled out in NDEBUG, so just check it compiles and has + // no effect. + llvm::DebugFlag = true; + static const char *DT[] = {"A"}; + setCurrentDebugTypes(DT, 0); + int count = 0; + auto inc = [&]() { return ++count; }; + EXPECT_THAT(count, Eq(0)); + LDBG() << inc(); + EXPECT_THAT(count, Eq(0)); +} +#endif diff --git a/llvm/unittests/Support/VirtualFileSystemTest.cpp b/llvm/unittests/Support/VirtualFileSystemTest.cpp index eb590e4..fc3ccea 100644 --- a/llvm/unittests/Support/VirtualFileSystemTest.cpp +++ b/llvm/unittests/Support/VirtualFileSystemTest.cpp @@ -225,7 +225,7 @@ std::string getPosixPath(const Twine &S) { } // end anonymous namespace TEST(VirtualFileSystemTest, StatusQueries) { - IntrusiveRefCntPtr<DummyFileSystem> D(new DummyFileSystem()); + auto D = makeIntrusiveRefCnt<DummyFileSystem>(); ErrorOr<vfs::Status> Status((std::error_code())); D->addRegularFile("/foo"); @@ -265,11 +265,11 @@ TEST(VirtualFileSystemTest, StatusQueries) { } TEST(VirtualFileSystemTest, BaseOnlyOverlay) { - IntrusiveRefCntPtr<DummyFileSystem> D(new DummyFileSystem()); + auto D = makeIntrusiveRefCnt<DummyFileSystem>(); ErrorOr<vfs::Status> Status((std::error_code())); EXPECT_FALSE(Status = D->status("/foo")); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O(new vfs::OverlayFileSystem(D)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(D); EXPECT_FALSE(Status = O->status("/foo")); D->addRegularFile("/foo"); @@ -283,13 +283,12 @@ TEST(VirtualFileSystemTest, BaseOnlyOverlay) { } TEST(VirtualFileSystemTest, GetRealPathInOverlay) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("/foo"); Lower->addSymlink("/lower_link"); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); // Regular file. @@ -312,11 +311,10 @@ TEST(VirtualFileSystemTest, GetRealPathInOverlay) { } TEST(VirtualFileSystemTest, OverlayFiles) { - IntrusiveRefCntPtr<DummyFileSystem> Base(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Middle(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Top(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Base)); + auto Base = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Middle = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Top = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Base); O->pushOverlay(Middle); O->pushOverlay(Top); @@ -351,10 +349,9 @@ TEST(VirtualFileSystemTest, OverlayFiles) { } TEST(VirtualFileSystemTest, OverlayDirsNonMerged) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); Lower->addDirectory("/lower-only"); @@ -376,10 +373,9 @@ TEST(VirtualFileSystemTest, OverlayDirsNonMerged) { TEST(VirtualFileSystemTest, MergedDirPermissions) { // merged directories get the permissions of the upper dir - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); ErrorOr<vfs::Status> Status((std::error_code())); @@ -401,12 +397,11 @@ TEST(VirtualFileSystemTest, MergedDirPermissions) { } TEST(VirtualFileSystemTest, OverlayIterator) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("/foo"); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); ErrorOr<vfs::Status> Status((std::error_code())); @@ -784,10 +779,9 @@ static void checkContents(DirIter I, ArrayRef<StringRef> ExpectedOut) { } TEST(VirtualFileSystemTest, OverlayIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); std::error_code EC; @@ -808,11 +802,10 @@ TEST(VirtualFileSystemTest, OverlayIteration) { } TEST(VirtualFileSystemTest, OverlayRecursiveIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Middle(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Middle = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Middle); O->pushOverlay(Upper); @@ -850,11 +843,10 @@ TEST(VirtualFileSystemTest, OverlayRecursiveIteration) { } TEST(VirtualFileSystemTest, ThreeLevelIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Middle(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Middle = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Middle); O->pushOverlay(Upper); @@ -870,11 +862,10 @@ TEST(VirtualFileSystemTest, ThreeLevelIteration) { } TEST(VirtualFileSystemTest, HiddenInIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Middle(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Middle = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Middle); O->pushOverlay(Upper); @@ -913,11 +904,10 @@ TEST(VirtualFileSystemTest, HiddenInIteration) { } TEST(VirtualFileSystemTest, Visit) { - IntrusiveRefCntPtr<DummyFileSystem> Base(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Middle(new DummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Top(new DummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Base)); + auto Base = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Middle = makeIntrusiveRefCnt<DummyFileSystem>(); + auto Top = makeIntrusiveRefCnt<DummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Base); O->pushOverlay(Middle); O->pushOverlay(Top); @@ -984,10 +974,9 @@ TEST(OverlayFileSystemTest, PrintOutput) { } TEST(OverlayFileSystemTest, Exists) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new NoStatusDummyFileSystem()); - IntrusiveRefCntPtr<DummyFileSystem> Upper(new NoStatusDummyFileSystem()); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto Lower = makeIntrusiveRefCnt<NoStatusDummyFileSystem>(); + auto Upper = makeIntrusiveRefCnt<NoStatusDummyFileSystem>(); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(Upper); Lower->addDirectory("/both"); @@ -1008,8 +997,7 @@ TEST(OverlayFileSystemTest, Exists) { } TEST(ProxyFileSystemTest, Basic) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> Base( - new vfs::InMemoryFileSystem()); + auto Base = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); vfs::ProxyFileSystem PFS(Base); Base->addFile("/a", 0, MemoryBuffer::getMemBuffer("test")); @@ -1606,7 +1594,7 @@ TEST_F(VFSFromYAMLTest, BasicVFSFromYAML) { } TEST_F(VFSFromYAMLTest, MappedFiles) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo/bar"); Lower->addRegularFile("//root/foo/bar/a"); IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLString( @@ -1642,8 +1630,7 @@ TEST_F(VFSFromYAMLTest, MappedFiles) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); // file @@ -1720,7 +1707,7 @@ TEST_F(VFSFromYAMLTest, MappedFiles) { } TEST_F(VFSFromYAMLTest, MappedRoot) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo/bar"); Lower->addRegularFile("//root/foo/bar/a"); IntrusiveRefCntPtr<vfs::FileSystem> FS = @@ -1735,8 +1722,7 @@ TEST_F(VFSFromYAMLTest, MappedRoot) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); // file @@ -1762,7 +1748,7 @@ TEST_F(VFSFromYAMLTest, MappedRoot) { } TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlay) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); Lower->addDirectory("//root/bar"); @@ -1783,8 +1769,7 @@ TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlay) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); ErrorOr<vfs::Status> S = O->status("//root/foo"); @@ -1806,7 +1791,7 @@ TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlay) { } TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlayNoExternalNames) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); Lower->addDirectory("//root/bar"); @@ -1847,7 +1832,7 @@ TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlayNoExternalNames) { } TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlayNoFallthrough) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); Lower->addDirectory("//root/bar"); @@ -1887,13 +1872,12 @@ TEST_F(VFSFromYAMLTest, RemappedDirectoryOverlayNoFallthrough) { } TEST_F(VFSFromYAMLTest, ReturnsRequestedPathVFSMiss) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS( - new vfs::InMemoryFileSystem); + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/foo/a", 0, MemoryBuffer::getMemBuffer("contents of a")); ASSERT_FALSE(BaseFS->setCurrentWorkingDirectory("//root/foo")); auto RemappedFS = vfs::RedirectingFileSystem::create( - {}, /*UseExternalNames=*/false, *BaseFS); + {}, /*UseExternalNames=*/false, BaseFS); auto OpenedF = RemappedFS->openFileForRead("a"); ASSERT_FALSE(OpenedF.getError()); @@ -1915,8 +1899,7 @@ TEST_F(VFSFromYAMLTest, ReturnsRequestedPathVFSMiss) { } TEST_F(VFSFromYAMLTest, ReturnsExternalPathVFSHit) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS( - new vfs::InMemoryFileSystem); + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/foo/realname", 0, MemoryBuffer::getMemBuffer("contents of a")); auto FS = @@ -1955,7 +1938,7 @@ TEST_F(VFSFromYAMLTest, ReturnsExternalPathVFSHit) { } TEST_F(VFSFromYAMLTest, RootRelativeTest) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/foo/bar"); Lower->addRegularFile("//root/foo/bar/a"); IntrusiveRefCntPtr<vfs::FileSystem> FS = @@ -1996,7 +1979,7 @@ TEST_F(VFSFromYAMLTest, RootRelativeTest) { ASSERT_FALSE(S.getError()); EXPECT_EQ("//root/foo/bar/a", S->getName()); #else - IntrusiveRefCntPtr<DummyFileSystem> LowerWindows(new DummyFileSystem()); + auto LowerWindows = makeIntrusiveRefCnt<DummyFileSystem>(); LowerWindows->addDirectory("\\\\root\\foo\\bar"); LowerWindows->addRegularFile("\\\\root\\foo\\bar\\a"); FS = getFromYAMLString("{\n" @@ -2018,8 +2001,7 @@ TEST_F(VFSFromYAMLTest, RootRelativeTest) { } TEST_F(VFSFromYAMLTest, ReturnsInternalPathVFSHit) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS( - new vfs::InMemoryFileSystem); + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/foo/realname", 0, MemoryBuffer::getMemBuffer("contents of a")); auto FS = @@ -2058,7 +2040,7 @@ TEST_F(VFSFromYAMLTest, ReturnsInternalPathVFSHit) { } TEST_F(VFSFromYAMLTest, CaseInsensitive) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("//root/foo/bar/a"); IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLString( "{ 'case-sensitive': 'false',\n" @@ -2076,8 +2058,7 @@ TEST_F(VFSFromYAMLTest, CaseInsensitive) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); ErrorOr<vfs::Status> S = O->status("//root/XX"); @@ -2094,7 +2075,7 @@ TEST_F(VFSFromYAMLTest, CaseInsensitive) { } TEST_F(VFSFromYAMLTest, CaseSensitive) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("//root/foo/bar/a"); IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLString( "{ 'case-sensitive': 'true',\n" @@ -2112,8 +2093,7 @@ TEST_F(VFSFromYAMLTest, CaseSensitive) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); ErrorOr<vfs::Status> SS = O->status("//root/xx"); @@ -2126,7 +2106,7 @@ TEST_F(VFSFromYAMLTest, CaseSensitive) { } TEST_F(VFSFromYAMLTest, IllegalVFSFile) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); // invalid YAML at top-level IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLString("{]", Lower); @@ -2252,7 +2232,7 @@ TEST_F(VFSFromYAMLTest, IllegalVFSFile) { } TEST_F(VFSFromYAMLTest, UseExternalName) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("//root/external/file"); IntrusiveRefCntPtr<vfs::FileSystem> FS = @@ -2304,7 +2284,7 @@ TEST_F(VFSFromYAMLTest, UseExternalName) { } TEST_F(VFSFromYAMLTest, MultiComponentPath) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("//root/other"); // file in roots @@ -2350,7 +2330,7 @@ TEST_F(VFSFromYAMLTest, MultiComponentPath) { } TEST_F(VFSFromYAMLTest, TrailingSlashes) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addRegularFile("//root/other"); // file in roots @@ -2369,7 +2349,7 @@ TEST_F(VFSFromYAMLTest, TrailingSlashes) { } TEST_F(VFSFromYAMLTest, DirectoryIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addDirectory("//root/foo/bar"); @@ -2399,8 +2379,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIteration) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); std::error_code EC; @@ -2416,7 +2395,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIterationSameDirMultipleEntries) { if (!supportsSameDirMultipleYAMLEntries()) GTEST_SKIP(); - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/zab"); Lower->addDirectory("//root/baz"); Lower->addRegularFile("//root/zab/a"); @@ -2449,8 +2428,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIterationSameDirMultipleEntries) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); std::error_code EC; @@ -2461,7 +2439,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIterationSameDirMultipleEntries) { TEST_F(VFSFromYAMLTest, RecursiveDirectoryIterationLevel) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/a"); Lower->addDirectory("//root/a/b"); Lower->addDirectory("//root/a/b/c"); @@ -2484,8 +2462,7 @@ TEST_F(VFSFromYAMLTest, RecursiveDirectoryIterationLevel) { Lower); ASSERT_NE(FS.get(), nullptr); - IntrusiveRefCntPtr<vfs::OverlayFileSystem> O( - new vfs::OverlayFileSystem(Lower)); + auto O = makeIntrusiveRefCnt<vfs::OverlayFileSystem>(Lower); O->pushOverlay(FS); std::error_code EC; @@ -2503,7 +2480,7 @@ TEST_F(VFSFromYAMLTest, RecursiveDirectoryIterationLevel) { } TEST_F(VFSFromYAMLTest, RelativePaths) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); std::error_code EC; SmallString<128> CWD; EC = llvm::sys::fs::current_path(CWD); @@ -2557,7 +2534,7 @@ TEST_F(VFSFromYAMLTest, RelativePaths) { } TEST_F(VFSFromYAMLTest, NonFallthroughDirectoryIteration) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addRegularFile("//root/a"); Lower->addRegularFile("//root/b"); @@ -2586,7 +2563,7 @@ TEST_F(VFSFromYAMLTest, NonFallthroughDirectoryIteration) { } TEST_F(VFSFromYAMLTest, DirectoryIterationWithDuplicates) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addRegularFile("//root/a"); Lower->addRegularFile("//root/b"); @@ -2614,7 +2591,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIterationWithDuplicates) { } TEST_F(VFSFromYAMLTest, DirectoryIterationErrorInVFSLayer) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); @@ -2643,7 +2620,7 @@ TEST_F(VFSFromYAMLTest, DirectoryIterationErrorInVFSLayer) { } TEST_F(VFSFromYAMLTest, GetRealPath) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//dir/"); Lower->addRegularFile("/foo"); Lower->addSymlink("/link"); @@ -2695,7 +2672,7 @@ TEST_F(VFSFromYAMLTest, GetRealPath) { } TEST_F(VFSFromYAMLTest, WorkingDirectory) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); @@ -2753,7 +2730,7 @@ TEST_F(VFSFromYAMLTest, WorkingDirectory) { } TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthrough) { - IntrusiveRefCntPtr<DummyFileSystem> Lower(new DummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<DummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); @@ -2835,7 +2812,7 @@ TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthrough) { } TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthroughInvalid) { - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); @@ -2872,7 +2849,7 @@ TEST_F(VFSFromYAMLTest, WorkingDirectoryFallthroughInvalid) { } TEST_F(VFSFromYAMLTest, VirtualWorkingDirectory) { - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/foo"); Lower->addRegularFile("//root/foo/a"); @@ -2928,7 +2905,7 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTest) { raw_string_ostream OS(Buffer); VFSWriter.write(OS); - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); Lower->addDirectory("//root/"); Lower->addDirectory("//root/a"); Lower->addRegularFile("//root/a/b"); @@ -2978,7 +2955,7 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTest2) { raw_string_ostream OS(Buffer); VFSWriter.write(OS); - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLRawString(Buffer, Lower); EXPECT_NE(FS.get(), nullptr); } @@ -3010,7 +2987,7 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTest3) { raw_string_ostream OS(Buffer); VFSWriter.write(OS); - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); IntrusiveRefCntPtr<vfs::FileSystem> FS = getFromYAMLRawString(Buffer, Lower); EXPECT_NE(FS.get(), nullptr); } @@ -3033,7 +3010,7 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTestHandleDirs) { // We didn't add a single file - only directories. EXPECT_EQ(Buffer.find("'type': 'file'"), std::string::npos); - IntrusiveRefCntPtr<ErrorDummyFileSystem> Lower(new ErrorDummyFileSystem()); + auto Lower = makeIntrusiveRefCnt<ErrorDummyFileSystem>(); Lower->addDirectory("//root/a"); Lower->addDirectory("//root/b"); Lower->addDirectory("//root/c"); @@ -3051,17 +3028,17 @@ TEST_F(VFSFromYAMLTest, YAMLVFSWriterTestHandleDirs) { } TEST_F(VFSFromYAMLTest, RedirectingWith) { - IntrusiveRefCntPtr<DummyFileSystem> Both(new DummyFileSystem()); + auto Both = makeIntrusiveRefCnt<DummyFileSystem>(); Both->addDirectory("//root/a"); Both->addRegularFile("//root/a/f"); Both->addDirectory("//root/b"); Both->addRegularFile("//root/b/f"); - IntrusiveRefCntPtr<DummyFileSystem> AOnly(new DummyFileSystem()); + auto AOnly = makeIntrusiveRefCnt<DummyFileSystem>(); AOnly->addDirectory("//root/a"); AOnly->addRegularFile("//root/a/f"); - IntrusiveRefCntPtr<DummyFileSystem> BOnly(new DummyFileSystem()); + auto BOnly = makeIntrusiveRefCnt<DummyFileSystem>(); BOnly->addDirectory("//root/b"); BOnly->addRegularFile("//root/b/f"); @@ -3166,8 +3143,7 @@ TEST_F(VFSFromYAMLTest, RedirectingWith) { } TEST(VFSFromRemappedFilesTest, Basic) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS = - new vfs::InMemoryFileSystem; + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/b", 0, MemoryBuffer::getMemBuffer("contents of b")); BaseFS->addFile("//root/c", 0, MemoryBuffer::getMemBuffer("contents of c")); @@ -3176,7 +3152,7 @@ TEST(VFSFromRemappedFilesTest, Basic) { {"//root/a/b/c", "//root/c"}, }; auto RemappedFS = vfs::RedirectingFileSystem::create( - RemappedFiles, /*UseExternalNames=*/false, *BaseFS); + RemappedFiles, /*UseExternalNames=*/false, BaseFS); auto StatA = RemappedFS->status("//root/a/a"); auto StatB = RemappedFS->status("//root/a/b/c"); @@ -3194,8 +3170,7 @@ TEST(VFSFromRemappedFilesTest, Basic) { } TEST(VFSFromRemappedFilesTest, UseExternalNames) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS = - new vfs::InMemoryFileSystem; + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/b", 0, MemoryBuffer::getMemBuffer("contents of b")); BaseFS->addFile("//root/c", 0, MemoryBuffer::getMemBuffer("contents of c")); @@ -3204,7 +3179,7 @@ TEST(VFSFromRemappedFilesTest, UseExternalNames) { {"//root/a/b/c", "//root/c"}, }; auto RemappedFS = vfs::RedirectingFileSystem::create( - RemappedFiles, /*UseExternalNames=*/true, *BaseFS); + RemappedFiles, /*UseExternalNames=*/true, BaseFS); auto StatA = RemappedFS->status("//root/a/a"); auto StatB = RemappedFS->status("//root/a/b/c"); @@ -3222,8 +3197,7 @@ TEST(VFSFromRemappedFilesTest, UseExternalNames) { } TEST(VFSFromRemappedFilesTest, LastMappingWins) { - IntrusiveRefCntPtr<vfs::InMemoryFileSystem> BaseFS = - new vfs::InMemoryFileSystem; + auto BaseFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>(); BaseFS->addFile("//root/b", 0, MemoryBuffer::getMemBuffer("contents of b")); BaseFS->addFile("//root/c", 0, MemoryBuffer::getMemBuffer("contents of c")); @@ -3232,9 +3206,9 @@ TEST(VFSFromRemappedFilesTest, LastMappingWins) { {"//root/a", "//root/c"}, }; auto RemappedFSKeepName = vfs::RedirectingFileSystem::create( - RemappedFiles, /*UseExternalNames=*/false, *BaseFS); + RemappedFiles, /*UseExternalNames=*/false, BaseFS); auto RemappedFSExternalName = vfs::RedirectingFileSystem::create( - RemappedFiles, /*UseExternalNames=*/true, *BaseFS); + RemappedFiles, /*UseExternalNames=*/true, BaseFS); auto StatKeepA = RemappedFSKeepName->status("//root/a"); auto StatExternalA = RemappedFSExternalName->status("//root/a"); @@ -3416,7 +3390,7 @@ TEST(RedirectingFileSystemTest, ExternalPaths) { BaseFS->setCurrentWorkingDirectory("/cwd"); auto CheckFS = makeIntrusiveRefCnt<InterceptorFS>(BaseFS); auto FS = vfs::RedirectingFileSystem::create({}, /*UseExternalNames=*/false, - *CheckFS); + CheckFS); FS->status("/a/../b"); FS->openFileForRead("c"); @@ -3442,7 +3416,7 @@ TEST(RedirectingFileSystemTest, ExternalPaths) { } TEST(RedirectingFileSystemTest, Exists) { - IntrusiveRefCntPtr<DummyFileSystem> Dummy(new NoStatusDummyFileSystem()); + auto Dummy = makeIntrusiveRefCnt<NoStatusDummyFileSystem>(); auto YAML = MemoryBuffer::getMemBuffer("{\n" " 'version': 0,\n" @@ -3513,7 +3487,7 @@ TEST(RedirectingFileSystemTest, Exists) { } TEST(RedirectingFileSystemTest, ExistsFallback) { - IntrusiveRefCntPtr<DummyFileSystem> Dummy(new NoStatusDummyFileSystem()); + auto Dummy = makeIntrusiveRefCnt<NoStatusDummyFileSystem>(); auto YAML = MemoryBuffer::getMemBuffer("{\n" " 'version': 0,\n" @@ -3537,7 +3511,7 @@ TEST(RedirectingFileSystemTest, ExistsFallback) { } TEST(RedirectingFileSystemTest, ExistsRedirectOnly) { - IntrusiveRefCntPtr<DummyFileSystem> Dummy(new NoStatusDummyFileSystem()); + auto Dummy = makeIntrusiveRefCnt<NoStatusDummyFileSystem>(); auto YAML = MemoryBuffer::getMemBuffer("{\n" " 'version': 0,\n" |