[Lldb-commits] [lldb] Define Telemetry plugin for LLDB. (PR #126588)
Vy Nguyen via lldb-commits
lldb-commits at lists.llvm.org
Thu Feb 13 11:24:33 PST 2025
================
@@ -0,0 +1,34 @@
+//===-- TestFakePlugin.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 "lldb/Core/PluginInterface.h"
+#include "lldb/Core/PluginManager.h"
+#include "lldb/Core/Telemetry.h"
+#include "plugin/FakePlugin.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Telemetry/Telemetry.h"
+#include "gtest/gtest.h"
+
+#include <memory>
+
+TEST(TelemetryTest, PluginTest) {
+ // This would have been called by the plugin reg in a "real" plugin
+ // For tests, we just call it directly.
+ lldb_private::FakePlugin::Initialize();
+
+ auto ins = lldb_private::telemetry::TelemetryManager::getInstance();
+
+ ASSERT_NE(ins, nullptr);
+ lldb_private::FakeTelemetryInfo entry;
+ entry.msg = "";
+
+ auto stat = ins->preDispatch(&entry);
----------------
oontvoo wrote:
> So you don't need to make it public if all you want is overridability (customizability of behavior).
Ok, i'll send a separate PR to move preDispatch to protected.
> That makes sense, but then I also wonder why is `dispatch` virtual, because `preDispatch` is basically equivalent to overriding `dispatch` to do the custom thing and then delegate to base class.
The reason we have `dispatch` do most of the work was to avoid having subclasses repeating pretty much the same code (ie., iterating over the list of Destinations ... ). But we made it virtual because it's possible downstream implementation want to do the dispatch in some different way (i., parallel ? whatnot)
https://github.com/llvm/llvm-project/pull/126588
More information about the lldb-commits
mailing list