summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
diff options
context:
space:
mode:
authorIlya Biryukov <ibiryukov@google.com>2017-12-05 10:42:57 +0000
committerIlya Biryukov <ibiryukov@google.com>2017-12-05 10:42:57 +0000
commitd3b04e35171dae4c9a9bcbe233ce6e1cabb66863 (patch)
tree1fb8a4d8fb2c8f3de1357043ac4bb1da2ab87006 /clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
parent08f5986e4d0878b69f2b4449a570877431f6d462 (diff)
downloadbcm5719-llvm-d3b04e35171dae4c9a9bcbe233ce6e1cabb66863.tar.gz
bcm5719-llvm-d3b04e35171dae4c9a9bcbe233ce6e1cabb66863.zip
[clangd] Set completion options per-request.
Summary: Previously, completion options were set per ClangdServer instance. It will allow to change completion preferences during the lifetime of a single ClangdServer instance. Also rewrote ClangdCompletionTest.CompletionOptions to reuse single ClangdServer instance, the test now runs 2x faster on my machine. Reviewers: sammccall, ioeric, hokein Reviewed By: sammccall, ioeric Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D40654 llvm-svn: 319753
Diffstat (limited to 'clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp')
-rw-r--r--clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
index d1fc159debc..fa67415a71d 100644
--- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
+++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
@@ -75,7 +75,6 @@ TEST_F(ClangdCompletionTest, CheckContentsOverride) {
ClangdServer Server(CDB, DiagConsumer, FS, getDefaultAsyncThreadsCount(),
/*StorePreamblesInMemory=*/true,
- clangd::CodeCompleteOptions(),
EmptyLogger::getInstance());
auto FooCpp = getVirtualTestFilePath("foo.cpp");
@@ -88,6 +87,9 @@ int b = ;
int cbc;
int b = ;
)cpp";
+
+ // Use default options.
+ CodeCompleteOptions CCOpts;
// Complete after '=' sign. We need to be careful to keep the SourceContents'
// size the same.
// We complete on the 3rd line (2nd in zero-based numbering), because raw
@@ -103,7 +105,7 @@ int b = ;
{
auto CodeCompletionResults1 =
- Server.codeComplete(FooCpp, CompletePos, None).get().Value;
+ Server.codeComplete(FooCpp, CompletePos, CCOpts, None).get().Value;
EXPECT_TRUE(ContainsItem(CodeCompletionResults1, "aba"));
EXPECT_FALSE(ContainsItem(CodeCompletionResults1, "cbc"));
}
@@ -111,7 +113,7 @@ int b = ;
{
auto CodeCompletionResultsOverriden =
Server
- .codeComplete(FooCpp, CompletePos,
+ .codeComplete(FooCpp, CompletePos, CCOpts,
StringRef(OverridenSourceContents))
.get()
.Value;
@@ -121,7 +123,7 @@ int b = ;
{
auto CodeCompletionResults2 =
- Server.codeComplete(FooCpp, CompletePos, None).get().Value;
+ Server.codeComplete(FooCpp, CompletePos, CCOpts, None).get().Value;
EXPECT_TRUE(ContainsItem(CodeCompletionResults2, "aba"));
EXPECT_FALSE(ContainsItem(CodeCompletionResults2, "cbc"));
}
@@ -132,10 +134,8 @@ TEST_F(ClangdCompletionTest, Limit) {
MockCompilationDatabase CDB;
CDB.ExtraClangFlags.push_back("-xc++");
IgnoreDiagnostics DiagConsumer;
- clangd::CodeCompleteOptions Opts;
- Opts.Limit = 2;
ClangdServer Server(CDB, DiagConsumer, FS, getDefaultAsyncThreadsCount(),
- /*StorePreamblesInMemory=*/true, Opts,
+ /*StorePreamblesInMemory=*/true,
EmptyLogger::getInstance());
auto FooCpp = getVirtualTestFilePath("foo.cpp");
@@ -152,9 +152,12 @@ int main() { ClassWithMembers().{complete} }
"complete");
Server.addDocument(FooCpp, Completion.Text);
+ clangd::CodeCompleteOptions Opts;
+ Opts.Limit = 2;
+
/// For after-dot completion we must always get consistent results.
auto Results = Server
- .codeComplete(FooCpp, Completion.MarkerPos,
+ .codeComplete(FooCpp, Completion.MarkerPos, Opts,
StringRef(Completion.Text))
.get()
.Value;
@@ -171,9 +174,8 @@ TEST_F(ClangdCompletionTest, Filter) {
MockCompilationDatabase CDB;
CDB.ExtraClangFlags.push_back("-xc++");
IgnoreDiagnostics DiagConsumer;
- clangd::CodeCompleteOptions Opts;
ClangdServer Server(CDB, DiagConsumer, FS, getDefaultAsyncThreadsCount(),
- /*StorePreamblesInMemory=*/true, Opts,
+ /*StorePreamblesInMemory=*/true,
EmptyLogger::getInstance());
auto FooCpp = getVirtualTestFilePath("foo.cpp");
@@ -194,7 +196,8 @@ TEST_F(ClangdCompletionTest, Filter) {
"complete");
Server.addDocument(FooCpp, Completion.Text);
return Server
- .codeComplete(FooCpp, Completion.MarkerPos, StringRef(Completion.Text))
+ .codeComplete(FooCpp, Completion.MarkerPos,
+ clangd::CodeCompleteOptions(), StringRef(Completion.Text))
.get()
.Value;
};
@@ -288,7 +291,7 @@ int test() {
auto TestWithOpts = [&](clangd::CodeCompleteOptions Opts) {
ClangdServer Server(CDB, DiagConsumer, FS, getDefaultAsyncThreadsCount(),
- /*StorePreamblesInMemory=*/true, Opts,
+ /*StorePreamblesInMemory=*/true,
EmptyLogger::getInstance());
// No need to sync reparses here as there are no asserts on diagnostics (or
// other async operations).
@@ -301,7 +304,7 @@ int test() {
/// For after-dot completion we must always get consistent results.
{
auto Results = Server
- .codeComplete(FooCpp, MemberCompletion.MarkerPos,
+ .codeComplete(FooCpp, MemberCompletion.MarkerPos, Opts,
StringRef(MemberCompletion.Text))
.get()
.Value;
@@ -337,7 +340,7 @@ int test() {
// Global completion differs based on the Opts that were passed.
{
auto Results = Server
- .codeComplete(FooCpp, GlobalCompletion.MarkerPos,
+ .codeComplete(FooCpp, GlobalCompletion.MarkerPos, Opts,
StringRef(GlobalCompletion.Text))
.get()
.Value;
OpenPOWER on IntegriCloud