diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/iohandler')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py | 50 |
1 files changed, 13 insertions, 37 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py b/lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py index a1c07a3b045..d202887902e 100644 --- a/lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py +++ b/lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py @@ -7,70 +7,46 @@ import os import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * +from lldbsuite.test.lldbpexpect import PExpectTest -class IOHandlerCompletionTest(TestBase): +class IOHandlerCompletionTest(PExpectTest): mydir = TestBase.compute_mydir(__file__) - NO_DEBUG_INFO_TESTCASE = True - def setUp(self): - TestBase.setUp(self) - - def expect_string(self, string): - import pexpect - """This expects for "string", with timeout & EOF being test fails.""" - try: - self.child.expect_exact(string) - except pexpect.EOF: - self.fail("Got EOF waiting for '%s'" % (string)) - except pexpect.TIMEOUT: - self.fail("Timed out waiting for '%s'" % (string)) - - @expectedFailureAll( - oslist=["windows"], - bugnumber="llvm.org/pr22274: need a pexpect replacement for windows") def test_completion(self): - self.setTearDownCleanup() - - import pexpect - exe = self.getBuildArtifact("a.out") - prompt = "(lldb) " - - self.child = pexpect.spawn( - '%s %s %s %s' % - (lldbtest_config.lldbExec, self.lldbOption, "", exe), - dimensions=(100, 500)) + self.launch(dimensions=(100,500)) - self.expect_string(prompt) # Start tab completion, go to the next page and then display all with 'a'. self.child.send("\t\ta") - self.expect_string("register") + self.child.expect_exact("register") # Try tab completing regi to register. self.child.send("regi\t") - self.expect_string(prompt + "register") + self.child.expect_exact(self.PROMPT + "register") self.child.send("\n") + self.expect_prompt() # Try tab completing directories and files. Also tests the partial # completion where LLDB shouldn't print a space after the directory # completion (as it didn't completed the full token). dir_without_slashes = os.path.realpath(os.path.dirname(__file__)).rstrip("/") self.child.send("file " + dir_without_slashes + "\t") - self.expect_string("iohandler/completion/") + self.child.expect_exact("iohandler/completion/") # If we get a correct partial completion without a trailing space, then this # should complete the current test file. self.child.send("TestIOHandler\t") - self.expect_string("TestIOHandlerCompletion.py") + self.child.expect_exact("TestIOHandlerCompletion.py") self.child.send("\n") + self.expect_prompt() # Start tab completion and abort showing more commands with 'n'. self.child.send("\t") - self.expect_string("More (Y/n/a)") + self.child.expect_exact("More (Y/n/a)") self.child.send("n") - self.expect_string(prompt) + self.expect_prompt() # Shouldn't crash or anything like that. self.child.send("regoinvalid\t") - self.expect_string(prompt) + self.expect_prompt() - self.deletePexpectChild() + self.quit() |