Add an helper class to write pexpect-based test cases

Over time, we should improve this class and port all pexpect based testing over to using this

llvm-svn: 227875
This commit is contained in:
Enrico Granata 2015-02-02 22:12:39 +00:00
parent 01f875e859
commit 78b7d5fab2
1 changed files with 48 additions and 0 deletions

48
lldb/test/lldbpexpect.py Normal file
View File

@ -0,0 +1,48 @@
import lldb
from lldbtest import *
import lldbutil
import os
import unittest2
import sys
import pexpect
class PExpectTest(TestBase):
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
def doTest(self):
# put your commands here
pass
def launchArgs(self):
return ""
def launch(self):
self.timeout = 5
self.child = pexpect.spawn('%s %s' % self.lldbHere, self.launchArgs())
def expect(self, patterns=None, timeout=None):
if patterns is None: patterns = '.*'
return self.child.expect(patterns, timeout=timeout)
def sendimpl(self, sender, command, patterns=None, timeout=None):
if timeout is None: timeout = self.timeout
sender(command)
if patterns is not None: return self.expect(patterns=patterns, timeout=timeout)
return None
def send(self, command, patterns=None, timeout=None):
self.sendimpl(self.child.send, command, patterns, timeout)
def sendline(self, command, patterns=None, timeout=None):
self.sendimpl(self.child.sendline, command, patterns, timeout)
def quit(self, gracefully=None):
if gracefully is None: gracefully = True
self.child.sendeof()
self.child.close(force=not gracefully)
self.child = None