[Lldb-commits] [lldb] [lldb][test] Turn std::atomic libcxx test generic (PR #146843)

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Thu Jul 3 03:12:47 PDT 2025


https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/146843

>From 9fbda39b3a27af86aaa9f1ab77a9008c354a250d Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Thu, 3 Jul 2025 11:05:08 +0100
Subject: [PATCH 1/3] [lldb][test] Turn std::atomic libcxx test generic

Split out from https://github.com/llvm/llvm-project/pull/146740
---
 .../{libcxx => generic}/atomic/Makefile       |  2 --
 .../atomic/TestStdAtomic.py}                  | 23 ++++++++++++-------
 .../{libcxx => generic}/atomic/main.cpp       |  0
 3 files changed, 15 insertions(+), 10 deletions(-)
 rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx => generic}/atomic/Makefile (51%)
 rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx/atomic/TestLibCxxAtomic.py => generic/atomic/TestStdAtomic.py} (84%)
 rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx => generic}/atomic/main.cpp (100%)

diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/Makefile b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/Makefile
similarity index 51%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/Makefile
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/Makefile
index b016f006747da..99998b20bcb05 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/Makefile
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/Makefile
@@ -1,5 +1,3 @@
 CXX_SOURCES := main.cpp
-CXXFLAGS_EXTRAS := -std=c++11
-USE_LIBCPP := 1
 
 include Makefile.rules
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
similarity index 84%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
index c6592ede03147..b0df8a525d280 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
@@ -9,18 +9,15 @@
 from lldbsuite.test import lldbutil
 
 
-class LibCxxAtomicTestCase(TestBase):
+class StdAtomicTestCase(TestBase):
     def get_variable(self, name):
         var = self.frame().FindVariable(name)
         var.SetPreferDynamicValue(lldb.eDynamicCanRunTarget)
         var.SetPreferSyntheticValue(True)
         return var
 
-    @skipIf(compiler=["gcc"])
-    @add_test_categories(["libc++"])
-    def test(self):
-        """Test that std::atomic as defined by libc++ is correctly printed by LLDB"""
-        self.build()
+    def do_test(self):
+        """Test that std::atomic is correctly printed by LLDB"""
         self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
 
         bkpt = self.target().FindBreakpointByID(
@@ -31,8 +28,6 @@ def test(self):
 
         self.runCmd("run", RUN_SUCCEEDED)
 
-        lldbutil.skip_if_library_missing(self, self.target(), re.compile(r"libc\+\+"))
-
         # The stop reason of the thread should be breakpoint.
         self.expect(
             "thread list",
@@ -66,3 +61,15 @@ def test(self):
         self.expect(
             "frame var p.child.parent", substrs=["p.child.parent = {\n  Value = 0x"]
         )
+
+    @skipIf(compiler=["gcc"])
+    @add_test_categories(["libc++"])
+    def test_libcxx(self):
+        self.build(dictionary={"USE_LIBCPP" : 1})
+        self.do_test()
+
+    @skipIf(compiler=["gcc"])
+    @add_test_categories(["libstdcxx"])
+    def test_libstdcxx(self):
+        self.build(dictionary={"USE_LIBSTDCPP" : 1})
+        self.do_test()
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
similarity index 100%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/main.cpp
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp

>From 40de26b58b420c29876d15fb424c69bd87a88c5a Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Thu, 3 Jul 2025 11:11:36 +0100
Subject: [PATCH 2/3] fixup! python format

---
 .../data-formatter-stl/generic/atomic/TestStdAtomic.py        | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
index b0df8a525d280..47fe436d25645 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py
@@ -65,11 +65,11 @@ def do_test(self):
     @skipIf(compiler=["gcc"])
     @add_test_categories(["libc++"])
     def test_libcxx(self):
-        self.build(dictionary={"USE_LIBCPP" : 1})
+        self.build(dictionary={"USE_LIBCPP": 1})
         self.do_test()
 
     @skipIf(compiler=["gcc"])
     @add_test_categories(["libstdcxx"])
     def test_libstdcxx(self):
-        self.build(dictionary={"USE_LIBSTDCPP" : 1})
+        self.build(dictionary={"USE_LIBSTDCPP": 1})
         self.do_test()

>From 7cdeb18ba0ff142eb2436ba689ac6beda3e806d6 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Thu, 3 Jul 2025 11:12:35 +0100
Subject: [PATCH 3/3] fixup! clang-format

---
 .../generic/atomic/main.cpp                   | 26 +++++++++----------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
index 760d2384a772b..ee77a880a0c5d 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
@@ -6,28 +6,26 @@ struct Child {
   // This should point to the parent which in turn owns this
   // child instance. This cycle should not cause LLDB to infinite loop
   // during printing.
-  std::atomic<Parent*> parent{nullptr};
+  std::atomic<Parent *> parent{nullptr};
 };
 struct Parent {
   Child child;
 };
 
 struct S {
-    int x = 1;
-    int y = 2;
+  int x = 1;
+  int y = 2;
 };
 
-int main ()
-{
-    std::atomic<S> s;
-    s.store(S());
-    std::atomic<int> i;
-    i.store(5);
+int main() {
+  std::atomic<S> s;
+  s.store(S());
+  std::atomic<int> i;
+  i.store(5);
 
-    Parent p;
-    // Let the child node know what its parent is.
-    p.child.parent = &p;
+  Parent p;
+  // Let the child node know what its parent is.
+  p.child.parent = &p;
 
-    return 0; // Set break point at this line.
+  return 0; // Set break point at this line.
 }
-



More information about the lldb-commits mailing list