[Lldb-commits] [lldb] 8757aa0 - [lldb-dap] Add unit tests for GetInteger
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Sun May 11 16:26:37 PDT 2025
Author: Jonas Devlieghere
Date: 2025-05-11T16:22:21-07:00
New Revision: 8757aa0a7ec1ef1ca79e1ff2ff63d246e6215ba4
URL: https://github.com/llvm/llvm-project/commit/8757aa0a7ec1ef1ca79e1ff2ff63d246e6215ba4
DIFF: https://github.com/llvm/llvm-project/commit/8757aa0a7ec1ef1ca79e1ff2ff63d246e6215ba4.diff
LOG: [lldb-dap] Add unit tests for GetInteger
Added:
Modified:
lldb/unittests/DAP/JSONUtilsTest.cpp
Removed:
################################################################################
diff --git a/lldb/unittests/DAP/JSONUtilsTest.cpp b/lldb/unittests/DAP/JSONUtilsTest.cpp
index 2dbd1de899ece..648aef106caa6 100644
--- a/lldb/unittests/DAP/JSONUtilsTest.cpp
+++ b/lldb/unittests/DAP/JSONUtilsTest.cpp
@@ -9,7 +9,9 @@
#include "JSONUtils.h"
#include "lldb/API/SBModule.h"
#include "lldb/API/SBTarget.h"
+#include "llvm/Support/JSON.h"
#include "gtest/gtest.h"
+#include <optional>
using namespace llvm;
using namespace lldb;
@@ -84,6 +86,59 @@ TEST(JSONUtilsTest, GetBoolean_Pointer) {
EXPECT_FALSE(result.has_value());
}
+TEST(JSONUtilsTest, GetInteger_Ref) {
+ json::Object obj;
+ obj.try_emplace("key", 123);
+
+ auto result = GetInteger<int>(obj, "key");
+ ASSERT_TRUE(result.has_value());
+ EXPECT_EQ(result.value(), 123);
+
+ result = GetInteger<int>(obj, "nonexistent_key");
+ EXPECT_FALSE(result.has_value());
+
+ obj.try_emplace("key_float", 123.45);
+ result = GetInteger<int>(obj, "key_float");
+ EXPECT_FALSE(result.has_value());
+
+ obj.try_emplace("key_string", "123");
+ result = GetInteger<int>(obj, "key_string");
+ EXPECT_FALSE(result.has_value());
+}
+
+TEST(JSONUtilsTest, GetInteger_Pointer) {
+ json::Object obj;
+ obj.try_emplace("key", 456);
+
+ auto result = GetInteger<int>(&obj, "key");
+ ASSERT_TRUE(result.has_value());
+ EXPECT_EQ(result.value(), 456);
+
+ result = GetInteger<int>(nullptr, "key");
+ EXPECT_FALSE(result.has_value());
+
+ obj.try_emplace("key_invalid", "not_an_integer");
+ result = GetInteger<int>(&obj, "key_invalid");
+ EXPECT_FALSE(result.has_value());
+}
+
+TEST(JSONUtilsTest, GetInteger_DifferentTypes) {
+ json::Object obj;
+ obj.try_emplace("key", 789);
+
+ auto result = GetInteger<int64_t>(obj, "key");
+ ASSERT_TRUE(result.has_value());
+ EXPECT_EQ(result.value(), 789);
+
+ result = GetInteger<uint32_t>(obj, "key");
+ ASSERT_TRUE(result.has_value());
+ EXPECT_EQ(result.value(), 789U);
+
+ result = GetInteger<int16_t>(obj, "key");
+ ASSERT_TRUE(result.has_value());
+ EXPECT_EQ(result.value(), static_cast<int16_t>(789));
+}
+
TEST(JSONUtilsTest, CreateModule) {
SBTarget target;
SBModule module;
More information about the lldb-commits
mailing list