From 9fbda39b3a27af86aaa9f1ab77a9008c354a250d Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Thu, 3 Jul 2025 11:05:08 +0100 Subject: [PATCH 1/5] [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 Date: Thu, 3 Jul 2025 11:11:36 +0100 Subject: [PATCH 2/5] 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 Date: Thu, 3 Jul 2025 11:12:35 +0100 Subject: [PATCH 3/5] 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{nullptr}; + std::atomic 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.store(S()); - std::atomic i; - i.store(5); +int main() { + std::atomic s; + s.store(S()); + std::atomic 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. } - From 1489fb352aa2e1a73cb31352cd9e1d2c6578fafe Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Thu, 3 Jul 2025 14:33:34 +0100 Subject: [PATCH 4/5] fixup! rename --- .../atomic/{TestStdAtomic.py => TestDataFormatterStdAtomic.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/{TestStdAtomic.py => TestDataFormatterStdAtomic.py} (100%) 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/TestDataFormatterStdAtomic.py similarity index 100% rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestStdAtomic.py rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py From 1d1a2a56761c76126b36cb23a82feb0e0d3053a3 Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Thu, 3 Jul 2025 14:37:11 +0100 Subject: [PATCH 5/5] fixup! remove libstdc++ case --- .../generic/atomic/TestDataFormatterStdAtomic.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py index 47fe436d25645..8186e1d66985b 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py @@ -67,9 +67,3 @@ def do_test(self): 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()