aboutsummaryrefslogtreecommitdiff
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2020-08-28 11:41:07 -0700
committerJordan Rupprecht <rupprecht@google.com>2020-08-28 11:41:07 -0700
commite5e05ecf65aba836802154279efbc8cbce6fe2ea (patch)
treeef3cb0a173d13ecb55dba5213bfae5cb683ac799 /lldb/packages/Python/lldbsuite/test
parent73f4317ffd5608de4e56bb39faf595acd01dca95 (diff)
downloadllvm-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.py99
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"