summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2018-08-23 17:02:39 +0000
committerAdrian Prantl <aprantl@apple.com>2018-08-23 17:02:39 +0000
commit6b58fa712017debd1de4b5a34b4ccf122c8b8a37 (patch)
tree845a825cddeaa2f28b366609752f2b593b624537 /lldb/packages/Python/lldbsuite
parent1b4a666ba584cf6b53e1674fa65b3f5ad65fa959 (diff)
downloadbcm5719-llvm-6b58fa712017debd1de4b5a34b4ccf122c8b8a37.tar.gz
bcm5719-llvm-6b58fa712017debd1de4b5a34b4ccf122c8b8a37.zip
Add libc++ data formatter for std::function
- Added LibcxxFunctionSummaryProvider - Removed LibcxxFunctionFrontEnd - Modified data formatter tests to test new summary functionality Patch by Shafik Yaghmour! Differential Revision: https://reviews.llvm.org/D50864 llvm-svn: 340543
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py20
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp21
2 files changed, 30 insertions, 11 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
index 81a76cc65d6..e44ea61d120 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
@@ -40,13 +40,17 @@ class LibCxxFunctionTestCase(TestBase):
substrs=['stopped',
'stop reason = breakpoint'])
- f1 = self.get_variable('f1')
- f2 = self.get_variable('f2')
+ self.expect("frame variable f1",
+ substrs=['f1 = Function = foo(int, int)'])
- if self.TraceOn():
- print(f1)
- if self.TraceOn():
- print(f2)
+ self.expect("frame variable f2",
+ substrs=['f2 = Lambda in File main.cpp at Line 27'])
- self.assertTrue(f1.GetValueAsUnsigned(0) != 0, 'f1 has a valid value')
- self.assertTrue(f2.GetValueAsUnsigned(0) != 0, 'f2 has a valid value')
+ self.expect("frame variable f3",
+ substrs=['f3 = Lambda in File main.cpp at Line 31'])
+
+ self.expect("frame variable f4",
+ substrs=['f4 = Function in File main.cpp at Line 17'])
+
+ self.expect("frame variable f5",
+ substrs=['f5 = Function = Bar::add_num(int) const'])
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
index cfe689b29b0..541fdaca2af 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
@@ -13,13 +13,28 @@ int foo(int x, int y) {
return x + y - 1;
}
-int main ()
+struct Bar {
+ int operator()() {
+ return 66 ;
+ }
+ int add_num(int i) const { return i + 3 ; }
+} ;
+
+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);
};
- return f1(acc,acc) + f2(acc); // Set break point at this line.
-}
+ 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 ;
+
+ Bar bar1 ;
+ std::function<int ()> f4( bar1 ) ;
+ std::function<int (const Bar&, int)> f5 = &Bar::add_num;
+
+ return f1(acc,acc) + f2(acc) + f3(acc+1,acc+2) + f4() + f5(bar1, 10); // Set break point at this line.
+}
OpenPOWER on IntegriCloud