This has led to many test suite failures because of copy and paste where new test cases were based off of other test cases and the "mydir" variable wasn't updated. Now you can call your superclasses "compute_mydir()" function with "__file__" as the sole argument and the relative path will be computed for you. llvm-svn: 196985
66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
"""
|
|
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 = TestBase.compute_mydir(__file__)
|
|
|
|
def setUp(self):
|
|
# Call super's setUp().
|
|
TestBase.setUp(self)
|
|
self.lib_dir = os.environ["LLDB_LIB_DIR"]
|
|
|
|
@expectedFailureFreeBSD('llvm.org/pr17430')
|
|
@skipIfi386 # This test links against liblldb.so. Thus, the test requires a 32-bit liblldb.so.
|
|
def test_load_plugin(self):
|
|
"""Test that plugins that load commands work correctly."""
|
|
|
|
plugin_name = "plugin"
|
|
if sys.platform.startswith("darwin"):
|
|
plugin_lib_name = "lib%s.dylib" % plugin_name
|
|
else:
|
|
plugin_lib_name = "lib%s.so" % plugin_name
|
|
|
|
# Invoke the library build rule.
|
|
self.buildLibrary("plugin.cpp", plugin_name)
|
|
|
|
debugger = lldb.SBDebugger.Create()
|
|
|
|
retobj = lldb.SBCommandReturnObject()
|
|
|
|
retval = debugger.GetCommandInterpreter().HandleCommand("plugin load %s" % plugin_lib_name, 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()
|