From 4da5a1dbab579da5975de573719c50fd3c1faeab Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Wed, 3 Apr 2019 11:48:38 +0000 Subject: modify-python-lldb.py: clean up __iter__ and __len__ support Summary: Instead of modifying the swig-generated code, just add the appropriate methods to the interface files in order to get the swig to do the generation for us. This is a straight-forward move from the python script to the interface files. The single class which has nontrivial handling in the script (SBModule) has been left for a separate patch. For the cases where I did not find any tests exercising the iteration/length methods (i.e., no tests failed after I stopped emitting them), I tried to add basic tests for that functionality. Reviewers: zturner, jingham, amccarth Subscribers: jdoerfert, lldb-commits Differential Revision: https://reviews.llvm.org/D60119 llvm-svn: 357572 --- .../Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py | 3 +++ .../lldbsuite/test/python_api/default-constructor/sb_compileunit.py | 1 + .../lldbsuite/test/python_api/default-constructor/sb_process.py | 1 + .../lldbsuite/test/python_api/default-constructor/sb_section.py | 1 + .../lldbsuite/test/python_api/default-constructor/sb_thread.py | 1 + .../lldbsuite/test/python_api/symbol-context/TestSymbolContext.py | 6 ++++++ 6 files changed, 13 insertions(+) (limited to 'lldb/packages/Python/lldbsuite/test/python_api') diff --git a/lldb/packages/Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py b/lldb/packages/Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py index 1cd15646f97..fcb17cbb8e7 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py @@ -34,6 +34,9 @@ class DebuggerAPITestCase(TestBase): self.dbg.SetPrompt(None) self.dbg.SetCurrentPlatform(None) self.dbg.SetCurrentPlatformSDKRoot(None) + + fresh_dbg = lldb.SBDebugger() + self.assertEquals(len(fresh_dbg), 0) @add_test_categories(['pyapi']) def test_debugger_delete_invalid_target(self): diff --git a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_compileunit.py b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_compileunit.py index 0c27c94b752..77fa4694b14 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_compileunit.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_compileunit.py @@ -12,5 +12,6 @@ def fuzz_obj(obj): obj.GetLineEntryAtIndex(0xffffffff) obj.FindLineEntryIndex(0, 0xffffffff, None) obj.GetDescription(lldb.SBStream()) + len(obj) for line_entry in obj: s = str(line_entry) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_process.py b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_process.py index 5a3e1e6903c..d8c441ece58 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_process.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_process.py @@ -48,3 +48,4 @@ def fuzz_obj(obj): obj.GetNumSupportedHardwareWatchpoints(error) for thread in obj: s = str(thread) + len(obj) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_section.py b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_section.py index 5e25e94d017..4b00276fb4b 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_section.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_section.py @@ -21,3 +21,4 @@ def fuzz_obj(obj): obj.GetDescription(lldb.SBStream()) for subsec in obj: s = str(subsec) + len(obj) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_thread.py b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_thread.py index 088972532f7..3234bf2625e 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_thread.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/default-constructor/sb_thread.py @@ -36,3 +36,4 @@ def fuzz_obj(obj): obj.Clear() for frame in obj: s = str(frame) + len(obj) diff --git a/lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py b/lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py index 2b783fb90e5..57988da1ed9 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py @@ -102,3 +102,9 @@ class SymbolContextAPITestCase(TestBase): self.assertTrue( function.GetName() == symbol.GetName() and symbol.GetName() == 'c', "The symbol name should be 'c'") + + sc_list = lldb.SBSymbolContextList() + sc_list.Append(context) + self.assertEqual(len(sc_list), 1) + for sc in sc_list: + self.assertEqual(lineEntry, sc.GetLineEntry()) -- cgit v1.2.3