diff options
| author | Jordan Rupprecht <rupprecht@google.com> | 2020-08-28 11:41:07 -0700 |
|---|---|---|
| committer | Jordan Rupprecht <rupprecht@google.com> | 2020-08-28 11:41:07 -0700 |
| commit | e5e05ecf65aba836802154279efbc8cbce6fe2ea (patch) | |
| tree | ef3cb0a173d13ecb55dba5213bfae5cb683ac799 /lldb/packages/Python/lldbsuite/test | |
| parent | 73f4317ffd5608de4e56bb39faf595acd01dca95 (diff) | |
| download | llvm-e5e05ecf65aba836802154279efbc8cbce6fe2ea.zip llvm-e5e05ecf65aba836802154279efbc8cbce6fe2ea.tar.gz llvm-e5e05ecf65aba836802154279efbc8cbce6fe2ea.tar.bz2 | |
[lldb/test] Use @skipIfWindows for PExpectTest
Annotating `PExpectTest` with `@skipIfWindows` instead of marking it as an empty class will make the test runner recognize it as a test class, which should allow me to reland adb5c23f8c0d60eeec41dcbe21d1b26184e1c97d.
I don't have a windows machine to verify this works, but I did some tests using `@skipIfLinux` and they all worked as expected. In case the `pexpect` import is not at all available on windows, I moved it to within the method where it's used.
Reviewed By: labath
Differential Revision: https://reviews.llvm.org/D86745
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
| -rw-r--r-- | lldb/packages/Python/lldbsuite/test/lldbpexpect.py | 99 |
1 files changed, 47 insertions, 52 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py index 67de73b..12ac4d3 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py +++ b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py @@ -13,65 +13,60 @@ from .lldbtest import * from . import lldbutil from lldbsuite.test.decorators import * -if sys.platform.startswith('win32'): - # llvm.org/pr22274: need a pexpect replacement for windows - class PExpectTest(object): - pass -else: - import pexpect +@skipIfRemote +@skipIfWindows # llvm.org/pr22274: need a pexpect replacement for windows +class PExpectTest(TestBase): - @skipIfRemote - class PExpectTest(TestBase): + NO_DEBUG_INFO_TESTCASE = True + PROMPT = "(lldb) " - NO_DEBUG_INFO_TESTCASE = True - PROMPT = "(lldb) " + def expect_prompt(self): + self.child.expect_exact(self.PROMPT) - 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 - 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) - 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" - env = dict(os.environ) - env["TERM"]="vt100" - - self.child = pexpect.spawn( - lldbtest_config.lldbExec, args=args, logfile=logfile, - timeout=timeout, dimensions=dimensions, env=env) + import pexpect + 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() - 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) + if executable is not None: + self.child.expect_exact("target create") + self.child.expect_exact("Current executable set to") self.expect_prompt() - def quit(self, gracefully=True): - self.child.sendeof() - self.child.close(force=not gracefully) - self.child = None + 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 - def cursor_forward_escape_seq(self, chars_to_move): - """ - Returns the escape sequence to move the cursor forward/right - by a certain amount of characters. - """ - return b"\x1b\[" + str(chars_to_move).encode("utf-8") + b"C" + def cursor_forward_escape_seq(self, chars_to_move): + """ + Returns the escape sequence to move the cursor forward/right + by a certain amount of characters. + """ + return b"\x1b\[" + str(chars_to_move).encode("utf-8") + b"C" |
