[Lldb-commits] [lldb] [lldb-dap] Improving logging support and formatting. (PR #170731)
Sergei Druzhkov via lldb-commits
lldb-commits at lists.llvm.org
Thu Dec 4 13:34:13 PST 2025
================
@@ -0,0 +1,46 @@
+//===----------------------------------------------------------------------===//
+//
+// 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 "DAPLog.h"
+#include "llvm/Support/raw_ostream.h"
+#include "gtest/gtest.h"
+
+using namespace lldb_dap;
+using namespace llvm;
+
+static llvm::StringRef last_line(llvm::StringRef str) {
+ size_t index = str.find_last_of('\n', str.size() - 1);
+ if (index == llvm::StringRef::npos)
+ return str;
+ return str.substr(index + 1);
+}
+
+TEST(DAPLog, Emit) {
+ Log::Mutex mux;
+ std::string outs;
+ raw_string_ostream os(outs);
+ Log log(os, mux);
+ Log inner_log = log.WithPrefix("my_prefix:");
+
+ // Line includes a timestamp, only check the suffix.
+ log.Emit("Hi");
+ EXPECT_TRUE(last_line(outs).ends_with(" Hi\n")) << outs;
+
+ inner_log.Emit("foobar");
+ EXPECT_TRUE(last_line(outs).ends_with(" my_prefix: foobar\n")) << outs;
+
+ log.Emit("file.cpp", 42, "Hello from a file/line.");
+ EXPECT_TRUE(
+ last_line(outs).ends_with(" file.cpp:42 Hello from a file/line.\n"))
+ << outs;
+
+ inner_log.Emit("file.cpp", 42, "Hello from a file/line.");
+ EXPECT_TRUE(last_line(outs).ends_with(
+ " file.cpp:42 my_prefix: Hello from a file/line.\n"))
+ << outs;
+}
----------------
DrSergei wrote:
nit: add empty line at the end of file
https://github.com/llvm/llvm-project/pull/170731
More information about the lldb-commits
mailing list