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