diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/lldbpexpect.py')
-rw-r--r-- | packages/Python/lldbsuite/test/lldbpexpect.py | 96 |
1 files changed, 51 insertions, 45 deletions
diff --git a/packages/Python/lldbsuite/test/lldbpexpect.py b/packages/Python/lldbsuite/test/lldbpexpect.py index 55b958a55972..d37d6fa4f8cb 100644 --- a/packages/Python/lldbsuite/test/lldbpexpect.py +++ b/packages/Python/lldbsuite/test/lldbpexpect.py @@ -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): +if sys.platform.startswith('win32'): + class PExpectTest(TestBase): + pass +else: + import pexpect + + class PExpectTest(TestBase): - mydir = TestBase.compute_mydir(__file__) + mydir = TestBase.compute_mydir(__file__) - def setUp(self): - TestBase.setUp(self) + def setUp(self): + TestBase.setUp(self) - def launchArgs(self): - pass + def launchArgs(self): + pass + + def launch(self, timeout=None): + if timeout is None: timeout = 30 + logfile = sys.stdout if self.TraceOn() else None + self.child = pexpect.spawn('%s --no-use-colors %s' % (lldbtest_config.lldbExec, self.launchArgs()), logfile=logfile) + self.child.timeout = timeout + self.timeout = timeout + + 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 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 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 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 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 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 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 + def quit(self, gracefully=None): + if gracefully is None: gracefully = True + self.child.sendeof() + self.child.close(force=not gracefully) + self.child = None |