blob: 4f619af2b136e5cc55d151c24ad0a08fc19d7381 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
//===-- 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");
}
|