forked from OSchip/llvm-project
Don't automtically try to import pexpect in lldbpexpect.
Since pexpect doesn't exist on Windows, tests which are xfail'ed are not being run at all because they are failing when the file is imported due to the `import pexpect`. This puts the import behind a conditional and makes an empty base class in the case where pexpect is not present. llvm-svn: 258965
This commit is contained in:
parent
e399e5bd3d
commit
74b7965d38
|
@ -6,58 +6,64 @@ import os
|
|||
import sys
|
||||
|
||||
# Third-party modules
|
||||
import pexpect
|
||||
import six
|
||||
|
||||
# LLDB Modules
|
||||
import lldb
|
||||
from .lldbtest import *
|
||||
from . import lldbutil
|
||||
|
||||
class PExpectTest(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
|
||||
def setUp(self):
|
||||
TestBase.setUp(self)
|
||||
|
||||
def launchArgs(self):
|
||||
if sys.platform.startswith('win32'):
|
||||
class PExpectTest(TestBase):
|
||||
pass
|
||||
else:
|
||||
import pexpect
|
||||
|
||||
def launch(self, timeout=None):
|
||||
if timeout is None: timeout = 30
|
||||
logfile = sys.stdout if self.TraceOn() else None
|
||||
self.child = pexpect.spawn('%s %s' % (lldbtest_config.lldbExec, self.launchArgs()), logfile=logfile)
|
||||
self.child.timeout = timeout
|
||||
self.timeout = timeout
|
||||
class PExpectTest(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
|
||||
def expect(self, patterns=None, timeout=None, exact=None):
|
||||
if patterns is None: return None
|
||||
if timeout is None: timeout = self.timeout
|
||||
if exact is None: exact = False
|
||||
if exact:
|
||||
return self.child.expect_exact(patterns, timeout=timeout)
|
||||
else:
|
||||
return self.child.expect(patterns, timeout=timeout)
|
||||
def setUp(self):
|
||||
TestBase.setUp(self)
|
||||
|
||||
def expectall(self, patterns=None, timeout=None, exact=None):
|
||||
if patterns is None: return None
|
||||
if timeout is None: timeout = self.timeout
|
||||
if exact is None: exact = False
|
||||
for pattern in patterns:
|
||||
self.expect(pattern, timeout=timeout, exact=exact)
|
||||
def launchArgs(self):
|
||||
pass
|
||||
|
||||
def sendimpl(self, sender, command, patterns=None, timeout=None, exact=None):
|
||||
sender(command)
|
||||
return self.expect(patterns=patterns, timeout=timeout, exact=exact)
|
||||
def launch(self, timeout=None):
|
||||
if timeout is None: timeout = 30
|
||||
logfile = sys.stdout if self.TraceOn() else None
|
||||
self.child = pexpect.spawn('%s %s' % (lldbtest_config.lldbExec, self.launchArgs()), logfile=logfile)
|
||||
self.child.timeout = timeout
|
||||
self.timeout = timeout
|
||||
|
||||
def send(self, command, patterns=None, timeout=None, exact=None):
|
||||
return self.sendimpl(self.child.send, command, patterns, timeout, exact)
|
||||
def expect(self, patterns=None, timeout=None, exact=None):
|
||||
if patterns is None: return None
|
||||
if timeout is None: timeout = self.timeout
|
||||
if exact is None: exact = False
|
||||
if exact:
|
||||
return self.child.expect_exact(patterns, timeout=timeout)
|
||||
else:
|
||||
return self.child.expect(patterns, timeout=timeout)
|
||||
|
||||
def sendline(self, command, patterns=None, timeout=None, exact=None):
|
||||
return self.sendimpl(self.child.sendline, command, patterns, timeout, exact)
|
||||
def expectall(self, patterns=None, timeout=None, exact=None):
|
||||
if patterns is None: return None
|
||||
if timeout is None: timeout = self.timeout
|
||||
if exact is None: exact = False
|
||||
for pattern in patterns:
|
||||
self.expect(pattern, timeout=timeout, exact=exact)
|
||||
|
||||
def quit(self, gracefully=None):
|
||||
if gracefully is None: gracefully = True
|
||||
self.child.sendeof()
|
||||
self.child.close(force=not gracefully)
|
||||
self.child = None
|
||||
def sendimpl(self, sender, command, patterns=None, timeout=None, exact=None):
|
||||
sender(command)
|
||||
return self.expect(patterns=patterns, timeout=timeout, exact=exact)
|
||||
|
||||
def send(self, command, patterns=None, timeout=None, exact=None):
|
||||
return self.sendimpl(self.child.send, command, patterns, timeout, exact)
|
||||
|
||||
def sendline(self, command, patterns=None, timeout=None, exact=None):
|
||||
return self.sendimpl(self.child.sendline, command, patterns, timeout, exact)
|
||||
|
||||
def quit(self, gracefully=None):
|
||||
if gracefully is None: gracefully = True
|
||||
self.child.sendeof()
|
||||
self.child.close(force=not gracefully)
|
||||
self.child = None
|
||||
|
|
Loading…
Reference in New Issue