summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/commands/command/source
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/commands/command/source')
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/command/source/.categories1
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/command/source/.lldb2
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/command/source/TestCommandSource.py35
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/command/source/commands.txt2
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/command/source/my.py7
5 files changed, 47 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/commands/command/source/.categories b/lldb/packages/Python/lldbsuite/test/commands/command/source/.categories
new file mode 100644
index 00000000000..3a3f4df6416
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/command/source/.categories
@@ -0,0 +1 @@
+cmdline
diff --git a/lldb/packages/Python/lldbsuite/test/commands/command/source/.lldb b/lldb/packages/Python/lldbsuite/test/commands/command/source/.lldb
new file mode 100644
index 00000000000..ecbdcff4462
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/command/source/.lldb
@@ -0,0 +1,2 @@
+# one more level of indirection to stress the command interpreter reentrancy
+command source commands.txt
diff --git a/lldb/packages/Python/lldbsuite/test/commands/command/source/TestCommandSource.py b/lldb/packages/Python/lldbsuite/test/commands/command/source/TestCommandSource.py
new file mode 100644
index 00000000000..a30f0d497be
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/command/source/TestCommandSource.py
@@ -0,0 +1,35 @@
+"""
+Test that lldb command "command source" works correctly.
+"""
+
+from __future__ import print_function
+
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class CommandSourceTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @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")
+
+ # 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
+ self.expect(result.GetOutput(), "script my.date() runs successfully",
+ exe=False,
+ substrs=[str(datetime.date.today())])
diff --git a/lldb/packages/Python/lldbsuite/test/commands/command/source/commands.txt b/lldb/packages/Python/lldbsuite/test/commands/command/source/commands.txt
new file mode 100644
index 00000000000..8e4de66d469
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/command/source/commands.txt
@@ -0,0 +1,2 @@
+script import my
+p 1 + 1
diff --git a/lldb/packages/Python/lldbsuite/test/commands/command/source/my.py b/lldb/packages/Python/lldbsuite/test/commands/command/source/my.py
new file mode 100644
index 00000000000..bd97fda3cbb
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/command/source/my.py
@@ -0,0 +1,7 @@
+from __future__ import print_function
+
+
+def date():
+ import datetime
+ today = datetime.date.today()
+ print(today)
OpenPOWER on IntegriCloud