| """Test custom import command to import files by path.""" |
| |
| from __future__ import print_function |
| |
| |
| import os |
| import sys |
| import time |
| import lldb |
| from lldbsuite.test.decorators import * |
| from lldbsuite.test.lldbtest import * |
| from lldbsuite.test import lldbutil |
| |
| |
| class ImportTestCase(TestBase): |
| |
| mydir = TestBase.compute_mydir(__file__) |
| |
| @add_test_categories(['pyapi']) |
| @no_debug_info_test |
| def test_import_command(self): |
| """Import some Python scripts by path and test them""" |
| self.run_test() |
| |
| def setUp(self): |
| # Call super's setUp(). |
| TestBase.setUp(self) |
| |
| def run_test(self): |
| """Import some Python scripts by path and test them.""" |
| |
| # This is the function to remove the custom commands in order to have a |
| # clean slate for the next test case. |
| def cleanup(): |
| self.runCmd('command script delete foo2cmd', check=False) |
| self.runCmd('command script delete foocmd', check=False) |
| self.runCmd('command script delete foobarcmd', check=False) |
| self.runCmd('command script delete barcmd', check=False) |
| self.runCmd('command script delete barothercmd', check=False) |
| self.runCmd('command script delete TPcommandA', check=False) |
| self.runCmd('command script delete TPcommandB', check=False) |
| |
| # Execute the cleanup function during test case tear down. |
| self.addTearDownHook(cleanup) |
| |
| self.runCmd("command script import ./foo/foo.py --allow-reload") |
| self.runCmd("command script import ./foo/foo2.py --allow-reload") |
| self.runCmd("command script import ./foo/bar/foobar.py --allow-reload") |
| self.runCmd("command script import ./bar/bar.py --allow-reload") |
| |
| self.expect("command script import ./nosuchfile.py", |
| error=True, startstr='error: module importing failed') |
| self.expect("command script import ./nosuchfolder/", |
| error=True, startstr='error: module importing failed') |
| self.expect("command script import ./foo/foo.py", error=False) |
| |
| self.runCmd("command script import --allow-reload ./thepackage") |
| self.expect("TPcommandA", substrs=["hello world A"]) |
| self.expect("TPcommandB", substrs=["hello world B"]) |
| |
| self.runCmd("script import dummymodule") |
| self.expect("command script import ./dummymodule.py", error=False) |
| self.expect( |
| "command script import --allow-reload ./dummymodule.py", |
| error=False) |
| |
| self.runCmd("command script add -f foo.foo_function foocmd") |
| self.runCmd("command script add -f foobar.foo_function foobarcmd") |
| self.runCmd("command script add -f bar.bar_function barcmd") |
| self.expect("foocmd hello", |
| substrs=['foo says', 'hello']) |
| self.expect("foo2cmd hello", |
| substrs=['foo2 says', 'hello']) |
| self.expect("barcmd hello", |
| substrs=['barutil says', 'bar told me', 'hello']) |
| self.expect("barothercmd hello", |
| substrs=['barutil says', 'bar told me', 'hello']) |
| self.expect("foobarcmd hello", |
| substrs=['foobar says', 'hello']) |