| """ | |
| Test that lldb command "command source" works correctly. | |
| """ | |
| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class CommandSourceTestCase(TestBase): | |
| @no_debug_info_test | |
| def test_command_source(self): | |
| """Test that lldb command "command source" works correctly.""" | |
| # Sourcing .lldb in the current working directory, which in turn imports | |
| # the "my" package that defines the date() function. | |
| self.runCmd("command source .lldb") | |
| self.check_results() | |
| @no_debug_info_test | |
| def test_command_source_relative(self): | |
| """Test that lldb command "command source" works correctly with relative paths.""" | |
| # Sourcing .lldb in the current working directory, which in turn imports | |
| # the "my" package that defines the date() function. | |
| self.runCmd("command source commands2.txt") | |
| self.check_results() | |
| def check_results(self, failure=False): | |
| # Python should evaluate "my.date()" successfully. | |
| command_interpreter = self.dbg.GetCommandInterpreter() | |
| self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER) | |
| result = lldb.SBCommandReturnObject() | |
| command_interpreter.HandleCommand("script my.date()", result) | |
| import datetime | |
| if failure: | |
| self.expect( | |
| result.GetOutput(), | |
| "script my.date() runs successfully", | |
| exe=False, | |
| error=True, | |
| ) | |
| else: | |
| self.expect( | |
| result.GetOutput(), | |
| "script my.date() runs successfully", | |
| exe=False, | |
| substrs=[str(datetime.date.today())], | |
| ) | |
| @no_debug_info_test | |
| def test_command_source_relative_error(self): | |
| """Test that 'command source -C' gives an error for a relative path""" | |
| source_dir = self.getSourceDir() | |
| result = lldb.SBCommandReturnObject() | |
| self.runCmd("command source --stop-on-error 1 not-relative.txt") | |
| self.check_results(failure=True) |