diff options
author | 2020-08-03 14:33:06 +0000 | |
---|---|---|
committer | 2020-08-03 14:33:06 +0000 | |
commit | 061da546b983eb767bad15e67af1174fb0bcf31c (patch) | |
tree | 83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py | |
parent | Import LLVM 10.0.0 release including clang, lld and lldb. (diff) | |
download | wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip |
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom
tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py')
-rw-r--r-- | gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py new file mode 100644 index 00000000000..d599bc39762 --- /dev/null +++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/lldbpexpect.py @@ -0,0 +1,68 @@ +from __future__ import absolute_import + +# System modules +import os +import sys + +# Third-party modules +import six + +# LLDB Modules +import lldb +from .lldbtest import * +from . import lldbutil + +if sys.platform.startswith('win32'): + # llvm.org/pr22274: need a pexpect replacement for windows + class PExpectTest(object): + pass +else: + import pexpect + + class PExpectTest(TestBase): + + NO_DEBUG_INFO_TESTCASE = True + PROMPT = "(lldb) " + + def expect_prompt(self): + self.child.expect_exact(self.PROMPT) + + def launch(self, executable=None, extra_args=None, timeout=30, dimensions=None): + logfile = getattr(sys.stdout, 'buffer', + sys.stdout) if self.TraceOn() else None + + args = ['--no-lldbinit', '--no-use-colors'] + for cmd in self.setUpCommands(): + args += ['-O', cmd] + if executable is not None: + args += ['--file', executable] + if extra_args is not None: + args.extend(extra_args) + + env = dict(os.environ) + env["TERM"]="vt100" + + self.child = pexpect.spawn( + lldbtest_config.lldbExec, args=args, logfile=logfile, + timeout=timeout, dimensions=dimensions, env=env) + self.expect_prompt() + for cmd in self.setUpCommands(): + self.child.expect_exact(cmd) + self.expect_prompt() + if executable is not None: + self.child.expect_exact("target create") + self.child.expect_exact("Current executable set to") + self.expect_prompt() + + def expect(self, cmd, substrs=None): + self.assertNotIn('\n', cmd) + self.child.sendline(cmd) + if substrs is not None: + for s in substrs: + self.child.expect_exact(s) + self.expect_prompt() + + def quit(self, gracefully=True): + self.child.sendeof() + self.child.close(force=not gracefully) + self.child = None |