brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · d2df036 Raw
81 lines · python
1"""2Test that plugins that load commands work correctly.3"""4 5import lldb6from lldbsuite.test.decorators import *7from lldbsuite.test.lldbtest import *8from lldbsuite.test import lldbutil9 10 11class PluginCommandTestCase(TestBase):12    def setUp(self):13        TestBase.setUp(self)14 15    @skipIfNoSBHeaders16    @skipIfHostIncompatibleWithTarget17    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")18    @no_debug_info_test19    def test_load_plugin(self):20        """Test that plugins that load commands work correctly."""21        self.generateSource("plugin.cpp")22 23        plugin_name = "plugin"24        if sys.platform.startswith("darwin"):25            plugin_lib_name = "lib%s.dylib" % plugin_name26        else:27            plugin_lib_name = "lib%s.so" % plugin_name28 29        # Invoke the library build rule.30        self.buildLibrary("plugin.cpp", plugin_name)31 32        retobj = lldb.SBCommandReturnObject()33 34        retval = self.dbg.GetCommandInterpreter().HandleCommand(35            "plugin load %s" % self.getBuildArtifact(plugin_lib_name), retobj36        )37 38        retobj.Clear()39 40        retval = self.dbg.GetCommandInterpreter().HandleCommand(41            "plugin_loaded_command child abc def ghi", retobj42        )43 44        if self.TraceOn():45            print(retobj.GetOutput())46 47        self.expect(retobj, substrs=["abc def ghi"], exe=False)48 49        retobj.Clear()50 51        # check that abbreviations work correctly in plugin commands.52        retval = self.dbg.GetCommandInterpreter().HandleCommand(53            "plugin_loaded_ ch abc def ghi", retobj54        )55 56        if self.TraceOn():57            print(retobj.GetOutput())58 59        self.expect(retobj, substrs=["abc def ghi"], exe=False)60 61    @no_debug_info_test62    def test_invalid_plugin_invocation(self):63        self.expect(64            "plugin load a b",65            error=True,66            startstr="error: 'plugin load' requires one argument",67        )68        self.expect(69            "plugin load",70            error=True,71            startstr="error: 'plugin load' requires one argument",72        )73 74    @no_debug_info_test75    def test_invalid_plugin_target(self):76        self.expect(77            "plugin load ThisIsNotAValidPluginName",78            error=True,79            startstr="error: no such file",80        )81