summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp')
-rw-r--r--clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp b/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
index d7c6d4d502a..a5c793251a4 100644
--- a/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
+++ b/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
@@ -8,6 +8,7 @@
#include "Annotations.h"
#include "ClangdServer.h"
+#include "Protocol.h"
#include "SemanticHighlighting.h"
#include "TestFS.h"
#include "TestTU.h"
@@ -66,7 +67,7 @@ TEST(SemanticHighlighting, GetsCorrectTokens) {
}
}
-TEST(ClangdSemanticHighlightingTest, GeneratesHighlightsWhenFileChange) {
+TEST(SemanticHighlighting, GeneratesHighlightsWhenFileChange) {
class HighlightingsCounterDiagConsumer : public DiagnosticsConsumer {
public:
std::atomic<int> Count = {0};
@@ -90,6 +91,29 @@ TEST(ClangdSemanticHighlightingTest, GeneratesHighlightsWhenFileChange) {
ASSERT_EQ(DiagConsumer.Count, 1);
}
+TEST(SemanticHighlighting, toSemanticHighlightingInformation) {
+ auto CreatePosition = [](int Line, int Character) -> Position {
+ Position Pos;
+ Pos.line = Line;
+ Pos.character = Character;
+ return Pos;
+ };
+
+ std::vector<HighlightingToken> Tokens{
+ {HighlightingKind::Variable,
+ Range{CreatePosition(3, 8), CreatePosition(3, 12)}},
+ {HighlightingKind::Function,
+ Range{CreatePosition(3, 4), CreatePosition(3, 7)}},
+ {HighlightingKind::Variable,
+ Range{CreatePosition(1, 1), CreatePosition(1, 5)}}};
+ std::vector<SemanticHighlightingInformation> ActualResults =
+ toSemanticHighlightingInformation(Tokens);
+ std::vector<SemanticHighlightingInformation> ExpectedResults = {
+ {1, "AAAAAQAEAAA="},
+ {3, "AAAACAAEAAAAAAAEAAMAAQ=="}};
+ EXPECT_EQ(ActualResults, ExpectedResults);
+}
+
} // namespace
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud