https://github.com/DrSergei updated 
https://github.com/llvm/llvm-project/pull/145010

>From b0263ab7f9d630d8751587c5365bb84d4fe140f4 Mon Sep 17 00:00:00 2001
From: Druzhkov Sergei <serzhdruz...@gmail.com>
Date: Thu, 19 Jun 2025 15:50:27 +0300
Subject: [PATCH] [lldb-dap] Fix DAPError

---
 lldb/tools/lldb-dap/DAPError.cpp    |  8 +++---
 lldb/tools/lldb-dap/DAPError.h      |  2 +-
 lldb/unittests/DAP/CMakeLists.txt   |  1 +
 lldb/unittests/DAP/DAPErrorTest.cpp | 38 +++++++++++++++++++++++++++++
 4 files changed, 43 insertions(+), 6 deletions(-)
 create mode 100644 lldb/unittests/DAP/DAPErrorTest.cpp

diff --git a/lldb/tools/lldb-dap/DAPError.cpp b/lldb/tools/lldb-dap/DAPError.cpp
index 60347d577f821..5c5bae37cc600 100644
--- a/lldb/tools/lldb-dap/DAPError.cpp
+++ b/lldb/tools/lldb-dap/DAPError.cpp
@@ -18,14 +18,12 @@ char DAPError::ID;
 DAPError::DAPError(std::string message, std::error_code EC, bool show_user,
                    std::optional<std::string> url,
                    std::optional<std::string> url_label)
-    : m_message(message), m_ec(EC), m_show_user(show_user), m_url(url),
-      m_url_label(url_label) {}
+    : m_message(std::move(message)), m_ec(EC), m_show_user(show_user),
+      m_url(std::move(url)), m_url_label(std::move(url_label)) {}
 
 void DAPError::log(llvm::raw_ostream &OS) const { OS << m_message; }
 
-std::error_code DAPError::convertToErrorCode() const {
-  return llvm::inconvertibleErrorCode();
-}
+std::error_code DAPError::convertToErrorCode() const { return m_ec; }
 
 char NotStoppedError::ID;
 
diff --git a/lldb/tools/lldb-dap/DAPError.h b/lldb/tools/lldb-dap/DAPError.h
index 4c94bdd6ac3d6..e18614fe71935 100644
--- a/lldb/tools/lldb-dap/DAPError.h
+++ b/lldb/tools/lldb-dap/DAPError.h
@@ -30,7 +30,7 @@ class DAPError : public llvm::ErrorInfo<DAPError> {
   const std::string &getMessage() const { return m_message; }
   bool getShowUser() const { return m_show_user; }
   const std::optional<std::string> &getURL() const { return m_url; }
-  const std::optional<std::string> &getURLLabel() const { return m_url; }
+  const std::optional<std::string> &getURLLabel() const { return m_url_label; }
 
 private:
   std::string m_message;
diff --git a/lldb/unittests/DAP/CMakeLists.txt 
b/lldb/unittests/DAP/CMakeLists.txt
index ee623d341ec69..d5824f4b38a5e 100644
--- a/lldb/unittests/DAP/CMakeLists.txt
+++ b/lldb/unittests/DAP/CMakeLists.txt
@@ -1,4 +1,5 @@
 add_lldb_unittest(DAPTests
+  DAPErrorTest.cpp
   DAPTest.cpp
   FifoFilesTest.cpp
   Handler/DisconnectTest.cpp
diff --git a/lldb/unittests/DAP/DAPErrorTest.cpp 
b/lldb/unittests/DAP/DAPErrorTest.cpp
new file mode 100644
index 0000000000000..4591145fb2e21
--- /dev/null
+++ b/lldb/unittests/DAP/DAPErrorTest.cpp
@@ -0,0 +1,38 @@
+//===-- DAPErrorTest.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 "DAPError.h"
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+#include <string>
+#include <system_error>
+
+using namespace lldb_dap;
+using namespace llvm;
+
+TEST(DAPErrorTest, DefaultConstructor) {
+  DAPError error("Invalid thread");
+
+  EXPECT_EQ(error.getMessage(), "Invalid thread");
+  EXPECT_EQ(error.convertToErrorCode(), llvm::inconvertibleErrorCode());
+  EXPECT_TRUE(error.getShowUser());
+  EXPECT_EQ(error.getURL(), std::nullopt);
+  EXPECT_EQ(error.getURLLabel(), std::nullopt);
+}
+
+TEST(DAPErrorTest, FullConstructor) {
+  auto timed_out = std::make_error_code(std::errc::timed_out);
+  DAPError error("Timed out", timed_out, false, "URL", "URLLabel");
+
+  EXPECT_EQ(error.getMessage(), "Timed out");
+  EXPECT_EQ(error.convertToErrorCode(), timed_out);
+  EXPECT_FALSE(error.getShowUser());
+  EXPECT_THAT(error.getURL(), testing::Optional<std::string>("URL"));
+  EXPECT_THAT(error.getURLLabel(), testing::Optional<std::string>("URLLabel"));
+}

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to