summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-06-05 12:22:43 +0000
committerSam McCall <sam.mccall@gmail.com>2018-06-05 12:22:43 +0000
commitdb41e1c6dad0ff04d62ac1cc7c4171321a84c518 (patch)
tree0fb0b197c7b9f703ea75066ae4aae42575e96188
parentb1403fa0fb7436c03d6ff4ad2b53d1d065f1dec4 (diff)
downloadbcm5719-llvm-db41e1c6dad0ff04d62ac1cc7c4171321a84c518.tar.gz
bcm5719-llvm-db41e1c6dad0ff04d62ac1cc7c4171321a84c518.zip
[clangd] Test tweaks (consistency, shorter, doc). NFC
llvm-svn: 334014
-rw-r--r--clang-tools-extra/clangd/Quality.h5
-rw-r--r--clang-tools-extra/unittests/clangd/QualityTests.cpp54
-rw-r--r--clang-tools-extra/unittests/clangd/TestTU.h2
3 files changed, 25 insertions, 36 deletions
diff --git a/clang-tools-extra/clangd/Quality.h b/clang-tools-extra/clangd/Quality.h
index a6b2ff65939..b83a7eb3826 100644
--- a/clang-tools-extra/clangd/Quality.h
+++ b/clang-tools-extra/clangd/Quality.h
@@ -61,11 +61,10 @@ llvm::raw_ostream &operator<<(llvm::raw_ostream &,
/// Attributes of a symbol-query pair that affect how much we like it.
struct SymbolRelevanceSignals {
- // 0-1 fuzzy-match score for unqualified name. Must be explicitly assigned.
+ /// 0-1 fuzzy-match score for unqualified name. Must be explicitly assigned.
float NameMatch = 1;
bool Forbidden = false; // Unavailable (e.g const) or inaccessible (private).
- /// Proximity between the best declaration and the query location. [0-1] score
- /// where 1 is closest
+ /// Proximity between best declaration and the query. [0-1], 1 is closest.
float ProximityScore = 0;
void merge(const CodeCompletionResult &SemaResult);
diff --git a/clang-tools-extra/unittests/clangd/QualityTests.cpp b/clang-tools-extra/unittests/clangd/QualityTests.cpp
index 9261d156d38..b8684d2db8e 100644
--- a/clang-tools-extra/unittests/clangd/QualityTests.cpp
+++ b/clang-tools-extra/unittests/clangd/QualityTests.cpp
@@ -60,44 +60,34 @@ TEST(QualityTests, SymbolQualitySignalExtraction) {
TEST(QualityTests, SymbolRelevanceSignalExtraction) {
TestTU Test;
Test.HeaderCode = R"cpp(
- int test_func_in_header();
- int test_func_in_header_and_cpp();
+ int header();
+ int header_main();
)cpp";
Test.Code = R"cpp(
- int ::test_func_in_header_and_cpp() {
- }
- int test_func_in_cpp();
+ int ::header_main() {}
+ int main();
[[deprecated]]
- int test_deprecated() { return 0; }
+ int deprecated() { return 0; }
)cpp";
auto AST = Test.build();
- SymbolRelevanceSignals Deprecated;
- Deprecated.merge(CodeCompletionResult(&findDecl(AST, "test_deprecated"),
- /*Priority=*/42, nullptr, false,
- /*Accessible=*/false));
- EXPECT_EQ(Deprecated.NameMatch, SymbolRelevanceSignals().NameMatch);
- EXPECT_TRUE(Deprecated.Forbidden);
-
- // Test proximity scores.
- SymbolRelevanceSignals FuncInCpp;
- FuncInCpp.merge(CodeCompletionResult(&findDecl(AST, "test_func_in_cpp"),
- CCP_Declaration));
- /// Decls in the current file should get a proximity score of 1.0.
- EXPECT_FLOAT_EQ(FuncInCpp.ProximityScore, 1.0);
-
- SymbolRelevanceSignals FuncInHeader;
- FuncInHeader.merge(CodeCompletionResult(&findDecl(AST, "test_func_in_header"),
- CCP_Declaration));
- /// Decls outside current file currently don't get a proximity score boost.
- EXPECT_FLOAT_EQ(FuncInHeader.ProximityScore, 0.0);
-
- SymbolRelevanceSignals FuncInHeaderAndCpp;
- FuncInHeaderAndCpp.merge(CodeCompletionResult(
- &findDecl(AST, "test_func_in_header_and_cpp"), CCP_Declaration));
- /// Decls in both header **and** the main file get the same boost.
- EXPECT_FLOAT_EQ(FuncInHeaderAndCpp.ProximityScore, 1.0);
+ SymbolRelevanceSignals Relevance;
+ Relevance.merge(CodeCompletionResult(&findDecl(AST, "deprecated"),
+ /*Priority=*/42, nullptr, false,
+ /*Accessible=*/false));
+ EXPECT_EQ(Relevance.NameMatch, SymbolRelevanceSignals().NameMatch);
+ EXPECT_TRUE(Relevance.Forbidden);
+
+ Relevance = {};
+ Relevance.merge(CodeCompletionResult(&findDecl(AST, "main"), 42));
+ EXPECT_FLOAT_EQ(Relevance.ProximityScore, 1.0) << "Decl in current file";
+ Relevance = {};
+ Relevance.merge(CodeCompletionResult(&findDecl(AST, "header"), 42));
+ EXPECT_FLOAT_EQ(Relevance.ProximityScore, 0.0) << "Decl from header";
+ Relevance = {};
+ Relevance.merge(CodeCompletionResult(&findDecl(AST, "header_main"), 42));
+ EXPECT_FLOAT_EQ(Relevance.ProximityScore, 1.0) << "Current file and header";
}
// Do the signals move the scores in the direction we expect?
@@ -136,7 +126,7 @@ TEST(QualityTests, SymbolRelevanceSignalsSanity) {
SymbolRelevanceSignals WithProximity;
WithProximity.ProximityScore = 0.2f;
- EXPECT_LT(Default.evaluate(), WithProximity.evaluate());
+ EXPECT_GT(WithProximity.evaluate(), Default.evaluate());
}
TEST(QualityTests, SortText) {
diff --git a/clang-tools-extra/unittests/clangd/TestTU.h b/clang-tools-extra/unittests/clangd/TestTU.h
index f89a7f307ac..5181d409780 100644
--- a/clang-tools-extra/unittests/clangd/TestTU.h
+++ b/clang-tools-extra/unittests/clangd/TestTU.h
@@ -40,7 +40,7 @@ struct TestTU {
std::string Code;
std::string Filename = "TestTU.cpp";
- // Define contents of a header to be included by TestTU.cpp.
+ // Define contents of a header which will be implicitly included by Code.
std::string HeaderCode;
std::string HeaderFilename = "TestTU.h";
OpenPOWER on IntegriCloud