mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-10 01:55:08 +00:00
[test] Convert CommandScriptImmediateOutput from pexpect to lit
This converts the CommandScriptImmediateOutput test from a python test using pexpect to a lit test. Differential revision: https://reviews.llvm.org/D60566 llvm-svn: 358180
This commit is contained in:
parent
a2b4d3fab6
commit
d843da6218
@ -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
|
@ -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
|
@ -1,101 +0,0 @@
|
||||
"""
|
||||
Test that LLDB correctly allows scripted commands to set an immediate output file
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
|
||||
import os
|
||||
import time
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test.lldbpexpect import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
||||
|
||||
class CommandScriptImmediateOutputTestCase (PExpectTest):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
||||
def setUp(self):
|
||||
# Call super's setUp().
|
||||
PExpectTest.setUp(self)
|
||||
|
||||
@skipIfRemote # test not remote-ready llvm.org/pr24813
|
||||
@expectedFailureAll(
|
||||
oslist=["windows"],
|
||||
bugnumber="llvm.org/pr22274: need a pexpect replacement for windows")
|
||||
@expectedFailureAll(oslist=["freebsd"], bugnumber="llvm.org/pr26139")
|
||||
@skipIfDarwin
|
||||
def test_command_script_immediate_output_console(self):
|
||||
"""Test that LLDB correctly allows scripted commands to set immediate output to the console."""
|
||||
prompt = "\(lldb\) "
|
||||
self.launch(timeout=10)
|
||||
self.expect(prompt)
|
||||
|
||||
script = os.path.join(self.getSourceDir(), 'custom_command.py')
|
||||
prompt = "\(lldb\) "
|
||||
|
||||
self.sendline('command script import %s' % script, patterns=[prompt])
|
||||
self.sendline(
|
||||
'command script add -f custom_command.command_function mycommand',
|
||||
patterns=[prompt])
|
||||
self.sendline(
|
||||
'mycommand',
|
||||
patterns='this is a test string, just a test string')
|
||||
self.sendline('command script delete mycommand', patterns=[prompt])
|
||||
self.quit()
|
||||
|
||||
@skipIfRemote # test not remote-ready llvm.org/pr24813
|
||||
@expectedFailureAll(
|
||||
oslist=["windows"],
|
||||
bugnumber="llvm.org/pr22274: need a pexpect replacement for windows")
|
||||
@expectedFailureAll(oslist=["freebsd"], bugnumber="llvm.org/pr26139")
|
||||
@skipIfDarwin
|
||||
def test_command_script_immediate_output_file(self):
|
||||
"""Test that LLDB correctly allows scripted commands to set immediate output to a file."""
|
||||
prompt = "\(lldb\) "
|
||||
self.launch(timeout=10)
|
||||
self.expect(prompt)
|
||||
|
||||
test_files = {self.getBuildArtifact('read.txt'): 'r',
|
||||
self.getBuildArtifact('write.txt'): 'w',
|
||||
self.getBuildArtifact('append.txt'): 'a',
|
||||
self.getBuildArtifact('write_plus.txt'): 'w+',
|
||||
self.getBuildArtifact('read_plus.txt'): 'r+',
|
||||
self.getBuildArtifact('append_plus.txt'): 'a+'}
|
||||
|
||||
starter_string = 'Starter Garbage\n'
|
||||
write_string = 'writing to file with mode: '
|
||||
|
||||
for path, mode in test_files.items():
|
||||
with open(path, 'w+') as init:
|
||||
init.write(starter_string)
|
||||
|
||||
script = os.path.join(self.getSourceDir(), 'custom_command.py')
|
||||
|
||||
self.sendline('command script import %s' % script, patterns=[prompt])
|
||||
|
||||
self.sendline(
|
||||
'command script add -f custom_command.write_file mywrite',
|
||||
patterns=[prompt])
|
||||
for path, mode in test_files.items():
|
||||
command = 'mywrite "' + path + '" ' + mode
|
||||
|
||||
self.sendline(command, patterns=[prompt])
|
||||
|
||||
self.sendline('command script delete mywrite', patterns=[prompt])
|
||||
|
||||
self.quit()
|
||||
|
||||
for path, mode in test_files.items():
|
||||
with open(path, 'r') as result:
|
||||
if mode in ['r', 'a', 'a+']:
|
||||
self.assertEquals(result.readline(), starter_string)
|
||||
if mode in ['w', 'w+', 'r+', 'a', 'a+']:
|
||||
self.assertEquals(
|
||||
result.readline(), write_string + mode + '\n')
|
||||
|
||||
self.assertTrue(os.path.isfile(path))
|
Loading…
Reference in New Issue
Block a user