//===-- LLDBUtilsTest.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 "LLDBUtils.h" #include "lldb/API/SBError.h" #include "lldb/API/SBStructuredData.h" #include "llvm/Support/Error.h" #include "gtest/gtest.h" using namespace llvm; using namespace lldb; using namespace lldb_dap; TEST(LLDBUtilsTest, GetStringValue) { // Create an SBStructuredData object from JSON. const char *json_data = R"("test_string")"; SBStructuredData data; SBError error = data.SetFromJSON(json_data); // Ensure the JSON was parsed successfully. ASSERT_TRUE(error.Success()); ASSERT_TRUE(data.IsValid()); // Call GetStringValue and verify the result. std::string result = GetStringValue(data); EXPECT_EQ(result, "test_string"); // Test with invalid SBStructuredData. SBStructuredData invalid_data; result = GetStringValue(invalid_data); EXPECT_EQ(result, ""); // Test with empty JSON. const char *empty_json = R"("")"; SBStructuredData empty_data; error = empty_data.SetFromJSON(empty_json); ASSERT_TRUE(error.Success()); ASSERT_TRUE(empty_data.IsValid()); result = GetStringValue(empty_data); EXPECT_EQ(result, ""); } TEST(LLDBUtilsTest, ToError) { // Test with a successful SBError. SBError success_error; ASSERT_TRUE(success_error.Success()); llvm::Error llvm_error = ToError(success_error); EXPECT_FALSE(llvm_error); // Test with a failing SBError. SBError fail_error; fail_error.SetErrorString("Test error message"); ASSERT_TRUE(fail_error.Fail()); llvm_error = ToError(fail_error); std::string error_message = toString(std::move(llvm_error)); EXPECT_EQ(error_message, "Test error message"); }