[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