blob: 63d6b2d05917b3da2988e0a7d24199cb2abfee2f [file] [log] [blame]
Enrico Granata78b7d5f2015-02-02 22:12:39 +00001import lldb
2from lldbtest import *
3import lldbutil
4import os
5import unittest2
6import sys
7import pexpect
8
9class PExpectTest(TestBase):
10
11 mydir = TestBase.compute_mydir(__file__)
12
13 def setUp(self):
Enrico Granata78b7d5f2015-02-02 22:12:39 +000014 TestBase.setUp(self)
15
Enrico Granata78b7d5f2015-02-02 22:12:39 +000016 def launchArgs(self):
Enrico Granata18cf8e02015-02-02 23:03:37 +000017 pass
Enrico Granata78b7d5f2015-02-02 22:12:39 +000018
19 def launch(self):
20 self.timeout = 5
Enrico Granata15c752f2015-02-02 22:55:46 +000021 self.child = pexpect.spawn('%s %s' % (self.lldbHere, self.launchArgs()))
Enrico Granata78b7d5f2015-02-02 22:12:39 +000022
23 def expect(self, patterns=None, timeout=None):
Enrico Granata18cf8e02015-02-02 23:03:37 +000024 if patterns is None: return None
25 if timeout is None: timeout = self.timeout
Enrico Granata78b7d5f2015-02-02 22:12:39 +000026 return self.child.expect(patterns, timeout=timeout)
27
28 def sendimpl(self, sender, command, patterns=None, timeout=None):
Enrico Granata78b7d5f2015-02-02 22:12:39 +000029 sender(command)
Enrico Granata18cf8e02015-02-02 23:03:37 +000030 return self.expect(patterns=patterns, timeout=timeout)
Enrico Granata78b7d5f2015-02-02 22:12:39 +000031
32 def send(self, command, patterns=None, timeout=None):
Enrico Granata18cf8e02015-02-02 23:03:37 +000033 return self.sendimpl(self.child.send, command, patterns, timeout)
Enrico Granata78b7d5f2015-02-02 22:12:39 +000034
35 def sendline(self, command, patterns=None, timeout=None):
Enrico Granata18cf8e02015-02-02 23:03:37 +000036 return self.sendimpl(self.child.sendline, command, patterns, timeout)
Enrico Granata78b7d5f2015-02-02 22:12:39 +000037
38 def quit(self, gracefully=None):
39 if gracefully is None: gracefully = True
40 self.child.sendeof()
41 self.child.close(force=not gracefully)
42 self.child = None