diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2018-11-09 00:50:50 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2018-11-09 00:50:50 +0000 |
commit | b1ee7857983ea79ed21a59cf9ff99b3882296863 (patch) | |
tree | a05af38326bbebf77486445447585c6161f47ba0 /lldb/unittests | |
parent | fa768a3e55524f5b117f57c5ba4ce44846976179 (diff) |
[FileSystem] Make use of FS in TildeExpressionResolver
In order to call real_path from the TildeExpressionResolver we need
access to the FileSystem. Since the resolver lives under utility we have
to pass in the FS.
Diffstat (limited to 'lldb/unittests')
5 files changed, 22 insertions, 10 deletions
diff --git a/lldb/unittests/Host/FileSystemTest.cpp b/lldb/unittests/Host/FileSystemTest.cpp index 76ac83fe18b..c8972786ad4 100644 --- a/lldb/unittests/Host/FileSystemTest.cpp +++ b/lldb/unittests/Host/FileSystemTest.cpp @@ -69,8 +69,8 @@ public: return std::error_code(); } // Map any symlink to "/symlink". - std::error_code getRealPath(const Twine &Path, - SmallVectorImpl<char> &Output) const override { + std::error_code getRealPath(const Twine &Path, SmallVectorImpl<char> &Output, + bool ExpandTilde) const override { auto I = FilesAndDirs.find(Path.str()); if (I == FilesAndDirs.end()) return make_error_code(llvm::errc::no_such_file_or_directory); diff --git a/lldb/unittests/Interpreter/TestCompletion.cpp b/lldb/unittests/Interpreter/TestCompletion.cpp index e781de04e02..b170179287a 100644 --- a/lldb/unittests/Interpreter/TestCompletion.cpp +++ b/lldb/unittests/Interpreter/TestCompletion.cpp @@ -7,9 +7,11 @@ // //===----------------------------------------------------------------------===// +#include "lldb/Host/FileSystem.h" #include "lldb/Interpreter/CommandCompletions.h" #include "lldb/Utility/StringList.h" #include "lldb/Utility/TildeExpressionResolver.h" + #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -65,6 +67,8 @@ protected: SmallString<128> FileBaz; void SetUp() override { + FileSystem::Initialize(); + // chdir back into the original working dir this test binary started with. // A previous test may have have changed the working dir. ASSERT_NO_ERROR(fs::set_current_path(OriginalWorkingDir)); @@ -105,7 +109,10 @@ protected: ASSERT_NO_ERROR(fs::current_path(OriginalWorkingDir)); } - void TearDown() override { ASSERT_NO_ERROR(fs::remove_directories(BaseDir)); } + void TearDown() override { + ASSERT_NO_ERROR(fs::remove_directories(BaseDir)); + FileSystem::Terminate(); + } static bool HasEquivalentFile(const Twine &Path, const StringList &Paths) { for (size_t I = 0; I < Paths.GetSize(); ++I) { @@ -158,7 +165,7 @@ TEST_F(CompletionTest, DirCompletionAbsolute) { std::string Prefixes[] = {(Twine(BaseDir) + "/").str(), ""}; - StandardTildeExpressionResolver Resolver; + StandardTildeExpressionResolver Resolver(FileSystem::Instance()); StringList Results; // When a directory is specified that doesn't end in a slash, it searches @@ -197,7 +204,7 @@ TEST_F(CompletionTest, FileCompletionAbsolute) { // all check this by asserting an exact result count, and verifying against // known folders. - StandardTildeExpressionResolver Resolver; + StandardTildeExpressionResolver Resolver(FileSystem::Instance()); StringList Results; // When an item is specified that doesn't end in a slash but exactly matches // one item, it returns that item. @@ -248,7 +255,8 @@ TEST_F(CompletionTest, FileCompletionAbsolute) { } TEST_F(CompletionTest, DirCompletionUsername) { - MockTildeExpressionResolver Resolver("James", BaseDir); + MockTildeExpressionResolver Resolver(FileSystem::Instance(), "James", + BaseDir); Resolver.AddKnownUser("Kirk", DirFooB); Resolver.AddKnownUser("Lars", DirFooC); Resolver.AddKnownUser("Jason", DirFoo); diff --git a/lldb/unittests/TestingSupport/MockTildeExpressionResolver.cpp b/lldb/unittests/TestingSupport/MockTildeExpressionResolver.cpp index 832836682b5..20790180624 100644 --- a/lldb/unittests/TestingSupport/MockTildeExpressionResolver.cpp +++ b/lldb/unittests/TestingSupport/MockTildeExpressionResolver.cpp @@ -13,9 +13,10 @@ using namespace lldb_private; using namespace llvm; -MockTildeExpressionResolver::MockTildeExpressionResolver(StringRef CurrentUser, +MockTildeExpressionResolver::MockTildeExpressionResolver(FileSystem &fs, + StringRef CurrentUser, StringRef HomeDir) - : CurrentUser(CurrentUser) { + : TildeExpressionResolver(fs), CurrentUser(CurrentUser) { UserDirectories.insert(std::make_pair(CurrentUser, HomeDir)); } diff --git a/lldb/unittests/TestingSupport/MockTildeExpressionResolver.h b/lldb/unittests/TestingSupport/MockTildeExpressionResolver.h index 18be1102e1f..45a3796fdb8 100644 --- a/lldb/unittests/TestingSupport/MockTildeExpressionResolver.h +++ b/lldb/unittests/TestingSupport/MockTildeExpressionResolver.h @@ -16,12 +16,13 @@ #include "llvm/ADT/StringMap.h" namespace lldb_private { +class FileSystem; class MockTildeExpressionResolver : public TildeExpressionResolver { llvm::StringRef CurrentUser; llvm::StringMap<llvm::StringRef> UserDirectories; public: - MockTildeExpressionResolver(llvm::StringRef CurrentUser, + MockTildeExpressionResolver(FileSystem &fs, llvm::StringRef CurrentUser, llvm::StringRef HomeDir); void AddKnownUser(llvm::StringRef User, llvm::StringRef HomeDir); diff --git a/lldb/unittests/Utility/TildeExpressionResolverTest.cpp b/lldb/unittests/Utility/TildeExpressionResolverTest.cpp index bc1ca7a4481..eb4812619c3 100644 --- a/lldb/unittests/Utility/TildeExpressionResolverTest.cpp +++ b/lldb/unittests/Utility/TildeExpressionResolverTest.cpp @@ -1,6 +1,7 @@ #include "gtest/gtest.h" #include "TestingSupport/MockTildeExpressionResolver.h" +#include "lldb/Host/FileSystem.h" #include "lldb/Utility/TildeExpressionResolver.h" #include "llvm/ADT/SmallString.h" @@ -9,7 +10,8 @@ using namespace llvm; using namespace lldb_private; TEST(TildeExpressionResolver, ResolveFullPath) { - MockTildeExpressionResolver Resolver("James", "/james"); + FileSystem fs; + MockTildeExpressionResolver Resolver(fs, "James", "/james"); Resolver.AddKnownUser("Kirk", "/kirk"); Resolver.AddKnownUser("Lars", "/lars"); Resolver.AddKnownUser("Jason", "/jason"); |