================
@@ -0,0 +1,66 @@
+//===--- FeatureModulesRegistryTests.cpp  
---------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "FeatureModule.h"
+#include "feature-modules/ForceLinker.h" // IWYU pragma: keep
+#include "refactor/Tweak.h"
+
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+
+using testing::ElementsAre;
+
+namespace llvm {
+raw_ostream &operator<<(raw_ostream &OS,
+                        const clang::clangd::FeatureModuleRegistry::entry &E) {
+  OS << "(name = " << E.getName() << ", description = '" << E.getDesc() << 
"')";
+  return OS;
+}
+
+raw_ostream &operator<<(
+    raw_ostream &OS,
+    const iterator_range<Registry<clang::clangd::FeatureModule>::iterator>
+        &Rng) {
+  OS << "{ ";
+  bool First = true;
+  for (clang::clangd::FeatureModuleRegistry::entry E : Rng) {
+    if (First)
+      First = false;
+    else
+      OS << ", ";
+    OS << E;
+  }
+  OS << " }";
+  return OS;
+}
+
+raw_ostream &operator<<(raw_ostream &OS, const clang::clangd::Tweak &T) {
+  OS << "(id = " << T.id() << ", "
+     << "title = " << T.title() << ")";
+  return OS;
+}
+} // namespace llvm
+
+namespace clang::clangd {
+namespace {
+
+MATCHER_P(moduleName, Name, "") { return arg.getName() == Name; }
+MATCHER_P(tweakID, ID, "") { return arg->id() == ID; }
+
+TEST(FeatureModulesRegistryTest, DummyModule) {
----------------
kadircet wrote:

so this test will break if someone links in feature modules to `clangDemon` 
instead of `clangd/tool`. I think that's a good thing, but we should mention 
that this is a deliberate call. can you add a comment saying we shouldn't have 
any featremodules linked to the unittests or clangd-as-a-library, and people 
should link their feature-modules through clangd/tool/CMakeLists.txt instead?

this test is very `strict` and I think that's a good thing, but we should be 
explicit about it.

https://github.com/llvm/llvm-project/pull/154836
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to