summaryrefslogtreecommitdiffstats
path: root/lldb/lit/Commands
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/lit/Commands')
-rw-r--r--lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputConsole.test11
-rw-r--r--lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputFile.test51
-rw-r--r--lldb/lit/Commands/CommandScriptImmediateOutput/Inputs/custom_command.py19
3 files changed, 81 insertions, 0 deletions
diff --git a/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputConsole.test b/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputConsole.test
new file mode 100644
index 00000000000..c928a44afb7
--- /dev/null
+++ b/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputConsole.test
@@ -0,0 +1,11 @@
+# Test that LLDB correctly allows scripted commands to set immediate output to
+# the console.
+
+# RUN: %lldb -s %s \
+# RUN: -o 'command script import %S/Inputs/custom_command.py' \
+# RUN: -o 'command script add -f custom_command.command_function mycommand' \
+# RUN: -o 'mycommand' \
+# RUN: -o 'command script delete mycommand' \
+# RUN: 2>&1 | FileCheck %s
+
+# CHECK: this is a test string, just a test string
diff --git a/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputFile.test b/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputFile.test
new file mode 100644
index 00000000000..a653b74200d
--- /dev/null
+++ b/lldb/lit/Commands/CommandScriptImmediateOutput/CommandScriptImmediateOutputFile.test
@@ -0,0 +1,51 @@
+# Test that LLDB correctly allows scripted commands to set immediate output to
+# a file.
+
+# RUN: echo "READ" > %t.read.txt
+# RUN: echo "WRITE" > %t.write.txt
+# RUN: echo "APPEND" > %t.append.txt
+# RUN: echo "READ PLUS" > %t.read_plus.txt
+# RUN: echo "WRITE PLUS" > %t.write_plus.txt
+# RUN: echo "APPEND PLUS" > %t.append_plus.txt
+
+# RUN: %lldb -s %s \
+# RUN: -o 'command script import %S/Inputs/custom_command.py' \
+# RUN: -o 'command script add -f custom_command.write_file mywrite' \
+# RUN: -o 'mywrite %t.read.txt r' \
+# RUN: -o 'mywrite %t.write.txt w' \
+# RUN: -o 'mywrite %t.append.txt a' \
+# RUN: -o 'mywrite %t.write_plus.txt w+' \
+# RUN: -o 'mywrite %t.read_plus.txt r+' \
+# RUN: -o 'mywrite %t.append_plus.txt a+' \
+# RUN: -o 'command script delete mywrite'
+
+# RUN: cat %t.read.txt | FileCheck %s --check-prefix READ
+# READ: READ
+# READ-NOT: writing to file with mode
+
+# RUN: cat %t.write.txt | FileCheck %s --check-prefix WRITE
+# WRITE-NOT: WRITE
+# WRITE: writing to file with mode: w
+
+# RUN: cat %t.append.txt | FileCheck %s --check-prefix APPEND
+# APPEND: APPEND
+# APPEND-NEXT: writing to file with mode: a
+
+# RUN: cat %t.write_plus.txt | FileCheck %s --check-prefix WRITEPLUS
+# WRITEPLUS-NOT: WRITE PLUS
+# WRITEPLUS: writing to file with mode: w+
+
+# RUN: cat %t.read_plus.txt | FileCheck %s --check-prefix READPLUS
+# READPLUS-NOT: READ PLUS
+# READPLUS: writing to file with mode: r+
+
+# RUN: cat %t.append_plus.txt | FileCheck %s --check-prefix APPENDPLUS
+# APPENDPLUS: APPEND PLUS
+# APPENDPLUS-NEXT: writing to file with mode: a+
+
+# RUN: rm %t.read.txt
+# RUN: rm %t.write.txt
+# RUN: rm %t.append.txt
+# RUN: rm %t.write_plus.txt
+# RUN: rm %t.read_plus.txt
+# RUN: rm %t.append_plus.txt
diff --git a/lldb/lit/Commands/CommandScriptImmediateOutput/Inputs/custom_command.py b/lldb/lit/Commands/CommandScriptImmediateOutput/Inputs/custom_command.py
new file mode 100644
index 00000000000..e0c24055c83
--- /dev/null
+++ b/lldb/lit/Commands/CommandScriptImmediateOutput/Inputs/custom_command.py
@@ -0,0 +1,19 @@
+from __future__ import print_function
+
+import sys
+import shlex
+
+
+def command_function(debugger, command, exe_ctx, result, internal_dict):
+ result.SetImmediateOutputFile(sys.__stdout__)
+ print('this is a test string, just a test string', file=result)
+
+
+def write_file(debugger, command, exe_ctx, result, internal_dict):
+ args = shlex.split(command)
+ path = args[0]
+ mode = args[1]
+ with open(path, mode) as f:
+ result.SetImmediateOutputFile(f)
+ if not mode in ['r']:
+ print('writing to file with mode: ' + mode, file=result)
OpenPOWER on IntegriCloud