https://github.com/labath updated 
https://github.com/llvm/llvm-project/pull/75908

>From b8dbd31b95058f8098f9ef57c540a1635a9a1fde Mon Sep 17 00:00:00 2001
From: Pavel Labath <pa...@labath.sk>
Date: Tue, 19 Dec 2023 09:37:20 +0100
Subject: [PATCH 1/2] [lldb] Fix TestSBValueSynthetic on windows

We don't have a std::vector formatter on windows, so use a custom
formatter in this test to avoid relying on std::vector.
---
 .../sbvalue_synthetic/TestSBValueSynthetic.py | 10 ++++----
 .../python_api/sbvalue_synthetic/formatter.py | 23 +++++++++++++++++++
 .../API/python_api/sbvalue_synthetic/main.cpp | 12 ++++++----
 3 files changed, 36 insertions(+), 9 deletions(-)
 create mode 100644 lldb/test/API/python_api/sbvalue_synthetic/formatter.py

diff --git a/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py 
b/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
index 5dcf3c1a9c6c44..62a9477533ba44 100644
--- a/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
+++ b/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
@@ -12,8 +12,10 @@ def test_str(self):
         lldbutil.run_to_source_breakpoint(
             self, "break here", lldb.SBFileSpec("main.cpp")
         )
+        self.runCmd("command script import formatter.py")
+        self.runCmd("type synthetic add --python-class 
formatter.FooSyntheticProvider Foo")
 
-        vector = self.frame().FindVariable("vector")
-        has_vector = self.frame().FindVariable("has_vector")
-        self.expect(str(vector), exe=False, substrs=["42", "47"])
-        self.expect(str(has_vector), exe=False, substrs=["42", "47"])
+        formatted = self.frame().FindVariable("foo")
+        has_formatted = self.frame().FindVariable("has_foo")
+        self.expect(str(formatted), exe=False, substrs=["synth_child"])
+        self.expect(str(has_formatted), exe=False, substrs=["synth_child"])
diff --git a/lldb/test/API/python_api/sbvalue_synthetic/formatter.py 
b/lldb/test/API/python_api/sbvalue_synthetic/formatter.py
new file mode 100644
index 00000000000000..17a436c37ed0f3
--- /dev/null
+++ b/lldb/test/API/python_api/sbvalue_synthetic/formatter.py
@@ -0,0 +1,23 @@
+import lldb
+
+
+class FooSyntheticProvider:
+    def __init__(self, valobj, dict):
+        target = valobj.GetTarget()
+        data = lldb.SBData.CreateDataFromCString(lldb.eByteOrderLittle, 8, "S")
+        self._child = valobj.CreateValueFromData(
+                "synth_child", data, target.GetBasicType(lldb.eBasicTypeChar)
+        )
+
+    def num_children(self):
+        return 1
+
+    def get_child_at_index(self, index):
+        if index != 0:
+            return None
+        return self._child
+
+    def get_child_index(self, name):
+        if name == "synth_child":
+            return 0
+        return None
diff --git a/lldb/test/API/python_api/sbvalue_synthetic/main.cpp 
b/lldb/test/API/python_api/sbvalue_synthetic/main.cpp
index e6b6ec50f307f8..52c6474d7a1b28 100644
--- a/lldb/test/API/python_api/sbvalue_synthetic/main.cpp
+++ b/lldb/test/API/python_api/sbvalue_synthetic/main.cpp
@@ -1,11 +1,13 @@
-#include <vector>
+struct Foo {
+  int real_child = 47;
+};
 
-struct HasVector {
-  std::vector<int> v;
+struct HasFoo {
+  Foo f;
 };
 
 int main() {
-  std::vector<int> vector = {42, 47};
-  HasVector has_vector = {vector};
+  Foo foo;
+  HasFoo has_foo;
   return 0; // break here
 }

>From beb831ccee568bc2cee79e3fbcacc07866700b32 Mon Sep 17 00:00:00 2001
From: Pavel Labath <pa...@labath.sk>
Date: Tue, 19 Dec 2023 09:54:45 +0100
Subject: [PATCH 2/2] fixup! [lldb] Fix TestSBValueSynthetic on windows

---
 .../API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py  | 4 +++-
 lldb/test/API/python_api/sbvalue_synthetic/formatter.py       | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py 
b/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
index 62a9477533ba44..2fd1e0ce9c6a3d 100644
--- a/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
+++ b/lldb/test/API/python_api/sbvalue_synthetic/TestSBValueSynthetic.py
@@ -13,7 +13,9 @@ def test_str(self):
             self, "break here", lldb.SBFileSpec("main.cpp")
         )
         self.runCmd("command script import formatter.py")
-        self.runCmd("type synthetic add --python-class 
formatter.FooSyntheticProvider Foo")
+        self.runCmd(
+            "type synthetic add --python-class formatter.FooSyntheticProvider 
Foo"
+        )
 
         formatted = self.frame().FindVariable("foo")
         has_formatted = self.frame().FindVariable("has_foo")
diff --git a/lldb/test/API/python_api/sbvalue_synthetic/formatter.py 
b/lldb/test/API/python_api/sbvalue_synthetic/formatter.py
index 17a436c37ed0f3..65e65afc3ef186 100644
--- a/lldb/test/API/python_api/sbvalue_synthetic/formatter.py
+++ b/lldb/test/API/python_api/sbvalue_synthetic/formatter.py
@@ -6,7 +6,7 @@ def __init__(self, valobj, dict):
         target = valobj.GetTarget()
         data = lldb.SBData.CreateDataFromCString(lldb.eByteOrderLittle, 8, "S")
         self._child = valobj.CreateValueFromData(
-                "synth_child", data, target.GetBasicType(lldb.eBasicTypeChar)
+            "synth_child", data, target.GetBasicType(lldb.eBasicTypeChar)
         )
 
     def num_children(self):

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to