"""
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()