| """ |
| Test that plugins that load commands work correctly. |
| """ |
| |
| import os, time |
| import re |
| import unittest2 |
| import lldb |
| from lldbtest import * |
| import lldbutil |
| |
| class PluginCommandTestCase(TestBase): |
| |
| mydir = os.path.join("functionalities", "plugins", "commands") |
| |
| def setUp(self): |
| # Call super's setUp(). |
| TestBase.setUp(self) |
| |
| @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") |
| def test_load_plugin(self): |
| """Test that plugins that load commands work correctly.""" |
| |
| # Invoke the default build rule. |
| self.buildDefault() |
| |
| debugger = lldb.SBDebugger.Create() |
| |
| retobj = lldb.SBCommandReturnObject() |
| |
| retval = debugger.GetCommandInterpreter().HandleCommand("plugin load plugin.dylib",retobj) |
| |
| retobj.Clear() |
| |
| retval = debugger.GetCommandInterpreter().HandleCommand("plugin_loaded_command child abc def ghi",retobj) |
| |
| if self.TraceOn(): |
| print retobj.GetOutput() |
| |
| self.expect(retobj,substrs = ['abc def ghi'], exe=False) |
| |
| retobj.Clear() |
| |
| # check that abbreviations work correctly in plugin commands. |
| retval = debugger.GetCommandInterpreter().HandleCommand("plugin_loaded_ ch abc def ghi",retobj) |
| |
| if self.TraceOn(): |
| print retobj.GetOutput() |
| |
| self.expect(retobj,substrs = ['abc def ghi'], exe=False) |
| |
| |
| if __name__ == '__main__': |
| import atexit |
| lldb.SBDebugger.Initialize() |
| atexit.register(lambda: lldb.SBDebugger.Terminate()) |
| unittest2.main() |