summaryrefslogtreecommitdiff
path: root/lldb/unittests
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-11-09 00:50:50 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-11-09 00:50:50 +0000
commitb1ee7857983ea79ed21a59cf9ff99b3882296863 (patch)
treea05af38326bbebf77486445447585c6161f47ba0 /lldb/unittests
parentfa768a3e55524f5b117f57c5ba4ce44846976179 (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')
-rw-r--r--lldb/unittests/Host/FileSystemTest.cpp4
-rw-r--r--lldb/unittests/Interpreter/TestCompletion.cpp16
-rw-r--r--lldb/unittests/TestingSupport/MockTildeExpressionResolver.cpp5
-rw-r--r--lldb/unittests/TestingSupport/MockTildeExpressionResolver.h3
-rw-r--r--lldb/unittests/Utility/TildeExpressionResolverTest.cpp4
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");