================
@@ -436,4 +442,124 @@ TEST_F(HighlighterTest, SwiftClosures) {
   EXPECT_EQ(" <k>let</k> closure = { (x: <k>Int</k>) in return x * 2 }",
             highlightSwift(" let closure = { (x: Int) in return x * 2 }", s));
 }
+
+static std::string
+highlightRust(llvm::StringRef code, HighlightStyle style,
+              std::optional<size_t> cursor = std::optional<size_t>()) {
+  HighlighterManager mgr;
+  const Highlighter &h =
+      mgr.getHighlighterFor(lldb::eLanguageTypeRust, "main.rs");
+  return h.Highlight(style, code, cursor);
+}
+
+TEST_F(HighlighterTest, RustComments) {
+  HighlightStyle s;
+  s.comment.Set("<cc>", "</cc>");
+
+  EXPECT_EQ(" <cc>// I'm feeling lucky today</cc>",
+            highlightRust(" // I'm feeling lucky today", s));
+  EXPECT_EQ(" <cc>/* This is a\nmultiline comment */</cc>",
+            highlightRust(" /* This is a\nmultiline comment */", s));
+  EXPECT_EQ(" <cc>/* nested /* comment */ works */</cc>",
+            highlightRust(" /* nested /* comment */ works */", s));
+  EXPECT_EQ(" <cc>/// Documentation comment</cc>",
+            highlightRust(" /// Documentation comment", s));
+  EXPECT_EQ(" <cc>//! Inner doc comment</cc>",
+            highlightRust(" //! Inner doc comment", s));
+}
----------------
DavidSpickett wrote:

I'm not very familiar with these plugins. What is the goal of these tests 
exactly?

I can't tell if they're on the scale of smoke tests or trying to cover a 
majority of things we'd expect it to do. If it's the latter, what's the 
coverage in the original project and can we either trust that or import the 
tests here too?

https://github.com/llvm/llvm-project/pull/181282
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to