[Lldb-commits] [lldb] r227875 - Add an helper class to write pexpect-based test cases
Enrico Granata
egranata at apple.com
Mon Feb 2 14:12:39 PST 2015
Author: enrico
Date: Mon Feb 2 16:12:39 2015
New Revision: 227875
URL: http://llvm.org/viewvc/llvm-project?rev=227875&view=rev
Log:
Add an helper class to write pexpect-based test cases
Over time, we should improve this class and port all pexpect based testing over to using this
Added:
lldb/trunk/test/lldbpexpect.py
Added: lldb/trunk/test/lldbpexpect.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldbpexpect.py?rev=227875&view=auto
==============================================================================
--- lldb/trunk/test/lldbpexpect.py (added)
+++ lldb/trunk/test/lldbpexpect.py Mon Feb 2 16:12:39 2015
@@ -0,0 +1,48 @@
+import lldb
+from lldbtest import *
+import lldbutil
+import os
+import unittest2
+import sys
+import pexpect
+
+class PExpectTest(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+
+ def doTest(self):
+ # put your commands here
+ pass
+
+ def launchArgs(self):
+ return ""
+
+ def launch(self):
+ self.timeout = 5
+ self.child = pexpect.spawn('%s %s' % self.lldbHere, self.launchArgs())
+
+ def expect(self, patterns=None, timeout=None):
+ if patterns is None: patterns = '.*'
+ return self.child.expect(patterns, timeout=timeout)
+
+ def sendimpl(self, sender, command, patterns=None, timeout=None):
+ if timeout is None: timeout = self.timeout
+ sender(command)
+ if patterns is not None: return self.expect(patterns=patterns, timeout=timeout)
+ return None
+
+ def send(self, command, patterns=None, timeout=None):
+ self.sendimpl(self.child.send, command, patterns, timeout)
+
+ def sendline(self, command, patterns=None, timeout=None):
+ self.sendimpl(self.child.sendline, command, patterns, timeout)
+
+ def quit(self, gracefully=None):
+ if gracefully is None: gracefully = True
+ self.child.sendeof()
+ self.child.close(force=not gracefully)
+ self.child = None
More information about the lldb-commits
mailing list