[Lldb-commits] [lldb] [lldb-dap] Fix DAPError (PR #145010)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Jun 23 08:57:08 PDT 2025
https://github.com/DrSergei updated https://github.com/llvm/llvm-project/pull/145010
>From 83fefeedb9f758c2e765925a4fbd2a7af375876a Mon Sep 17 00:00:00 2001
From: Druzhkov Sergei <serzhdruzhok at gmail.com>
Date: Thu, 19 Jun 2025 15:50:27 +0300
Subject: [PATCH] [lldb-dap] Fix URL label and error code in 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 | 37 +++++++++++++++++++++++++++++
4 files changed, 42 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..51138576458d4
--- /dev/null
+++ b/lldb/unittests/DAP/DAPErrorTest.cpp
@@ -0,0 +1,37 @@
+//===-- 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"));
+}
More information about the lldb-commits
mailing list