[Lldb-commits] [lldb] [lldb][test] Move std::function from libcxx to generic directory (PR #147701)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 9 09:03:02 PDT 2025
https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/147701
>From 4045243ed2f069eed0ef1de5c07d2a633c248225 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Wed, 9 Jul 2025 13:20:04 +0100
Subject: [PATCH 1/2] [lldb][test] Move std::function from libcxx to generic
directory
This just moves the test from `libcxx` to `generic`. There are currently no `std::function` formatters for libstdc++ so I didn't add a test-case for it.
Split out from https://github.com/llvm/llvm-project/pull/146740
---
.../{libcxx => generic}/function/Makefile | 2 --
.../function/TestDataFormatterStdFunction.py} | 14 ++++++++------
.../{libcxx => generic}/function/main.cpp | 0
3 files changed, 8 insertions(+), 8 deletions(-)
rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx => generic}/function/Makefile (51%)
rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx/function/TestLibCxxFunction.py => generic/function/TestDataFormatterStdFunction.py} (92%)
rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx => generic}/function/main.cpp (100%)
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/Makefile
similarity index 51%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/Makefile
index b016f006747da..99998b20bcb05 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/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/function/TestLibCxxFunction.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
similarity index 92%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
index 80461b996328f..64d704c07c0ae 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
@@ -2,14 +2,13 @@
Test lldb data formatter subsystem.
"""
-
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
-class LibCxxFunctionTestCase(TestBase):
+class StdFunctionTestCase(TestBase):
# Run frame var for a variable twice. Verify we do not hit the cache
# the first time but do the second time.
def run_frame_var_check_cache_use(
@@ -34,10 +33,8 @@ def run_frame_var_check_cache_use(
substrs=["lldb_private::CompileUnit::FindFunction"],
)
- @add_test_categories(["libc++"])
- def test(self):
- """Test that std::function as defined by libc++ is correctly printed by LLDB"""
- self.build()
+ def do_test(self):
+ """Test that std::function is correctly printed by LLDB"""
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
bkpt = self.target().FindBreakpointByID(
@@ -82,3 +79,8 @@ def test(self):
self.expect(
"frame variable f5", substrs=["f5 = Function = Bar::add_num(int) const"]
)
+
+ @add_test_categories(["libc++"])
+ def test_libcxx(self):
+ self.build(dictionary={"USE_LIBCPP": 1})
+ self.do_test()
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
similarity index 100%
rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
>From 5c363c15a447b2bcc29fca6cf83a1a08e0590543 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Wed, 9 Jul 2025 15:07:12 +0100
Subject: [PATCH 2/2] fixup! clang-format
---
.../generic/function/main.cpp | 54 ++++++++-----------
1 file changed, 23 insertions(+), 31 deletions(-)
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
index ef7c97470652f..86ab18fd9cc43 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
@@ -1,51 +1,43 @@
#include <functional>
-int foo(int x, int y) {
- return x + y - 1;
-}
+int foo(int x, int y) { return x + y - 1; }
struct Bar {
- int operator()() {
- return 66 ;
- }
- int add_num(int i) const { return i + 3 ; }
- int add_num2(int i) {
- std::function<int (int)> add_num2_f = [](int x) {
- return x+1;
- };
-
- return add_num2_f(i); // Set break point at this line.
- }
-} ;
+ int operator()() { return 66; }
+ int add_num(int i) const { return i + 3; }
+ int add_num2(int i) {
+ std::function<int(int)> add_num2_f = [](int x) { return x + 1; };
+
+ return add_num2_f(i); // Set break point at this line.
+ }
+};
int foo2() {
- auto f = [](int x) {
- return x+1;
- };
+ auto f = [](int x) { return x + 1; };
- std::function<int (int)> foo2_f = f;
+ std::function<int(int)> foo2_f = f;
- return foo2_f(10); // Set break point at this line.
+ return foo2_f(10); // Set break point at this line.
}
-int main (int argc, char *argv[])
-{
+int main(int argc, char *argv[]) {
int acc = 42;
- std::function<int (int,int)> f1 = foo;
- std::function<int (int)> f2 = [acc,f1] (int x) -> int {
- return x+f1(acc,x);
+ std::function<int(int, int)> f1 = foo;
+ std::function<int(int)> f2 = [acc, f1](int x) -> int {
+ return x + f1(acc, x);
};
auto f = [](int x, int y) { return x + y; };
- auto g = [](int x, int y) { return x * y; } ;
- std::function<int (int,int)> f3 = argc %2 ? f : g ;
+ auto g = [](int x, int y) { return x * y; };
+ std::function<int(int, int)> f3 = argc % 2 ? f : g;
- Bar bar1 ;
- std::function<int ()> f4( bar1 ) ;
- std::function<int (const Bar&, int)> f5 = &Bar::add_num;
+ Bar bar1;
+ std::function<int()> f4(bar1);
+ std::function<int(const Bar &, int)> f5 = &Bar::add_num;
int foo2_result = foo2();
int bar_add_num2_result = bar1.add_num2(10);
- return f1(acc,acc) + f2(acc) + f3(acc+1,acc+2) + f4() + f5(bar1, 10); // Set break point at this line.
+ return f1(acc, acc) + f2(acc) + f3(acc + 1, acc + 2) + f4() +
+ f5(bar1, 10); // Set break point at this line.
}
More information about the lldb-commits
mailing list