[Lldb-commits] [lldb] r258965 - Don't automtically try to import pexpect in lldbpexpect.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Wed Jan 27 10:49:25 PST 2016


Author: zturner
Date: Wed Jan 27 12:49:25 2016
New Revision: 258965

URL: http://llvm.org/viewvc/llvm-project?rev=258965&view=rev
Log:
Don't automtically try to import pexpect in lldbpexpect.

Since pexpect doesn't exist on Windows, tests which are xfail'ed
are not being run at all because they are failing when the file
is imported due to the `import pexpect`.  This puts the import
behind a conditional and makes an empty base class in the case
where pexpect is not present.

Modified:
    lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py?rev=258965&r1=258964&r2=258965&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbpexpect.py Wed Jan 27 12:49:25 2016
@@ -6,58 +6,64 @@ import os
 import sys
 
 # Third-party modules
-import pexpect
+import six
 
 # LLDB Modules
 import lldb
 from .lldbtest import *
 from . import lldbutil
 
-class PExpectTest(TestBase):
+if sys.platform.startswith('win32'):
+    class PExpectTest(TestBase):
+        pass
+else:
+    import pexpect
+
+    class PExpectTest(TestBase):
     
-    mydir = TestBase.compute_mydir(__file__)
+        mydir = TestBase.compute_mydir(__file__)
 
-    def setUp(self):
-        TestBase.setUp(self)
+        def setUp(self):
+            TestBase.setUp(self)
 
-    def launchArgs(self):
-        pass
+        def launchArgs(self):
+            pass
 
-    def launch(self, timeout=None):
-        if timeout is None: timeout = 30
-        logfile = sys.stdout if self.TraceOn() else None
-        self.child = pexpect.spawn('%s %s' % (lldbtest_config.lldbExec, self.launchArgs()), logfile=logfile)
-        self.child.timeout = timeout
-        self.timeout = timeout
-
-    def expect(self, patterns=None, timeout=None, exact=None):
-        if patterns is None: return None
-        if timeout is None: timeout = self.timeout
-        if exact is None: exact = False
-        if exact:
-            return self.child.expect_exact(patterns, timeout=timeout)
-        else:
-            return self.child.expect(patterns, timeout=timeout)
-
-    def expectall(self, patterns=None, timeout=None, exact=None):
-        if patterns is None: return None
-        if timeout is None: timeout = self.timeout
-        if exact is None: exact = False
-        for pattern in patterns:
-            self.expect(pattern, timeout=timeout, exact=exact)
-
-    def sendimpl(self, sender, command, patterns=None, timeout=None, exact=None):
-        sender(command)
-        return self.expect(patterns=patterns, timeout=timeout, exact=exact)
-
-    def send(self, command, patterns=None, timeout=None, exact=None):
-        return self.sendimpl(self.child.send, command, patterns, timeout, exact)
-
-    def sendline(self, command, patterns=None, timeout=None, exact=None):
-        return self.sendimpl(self.child.sendline, command, patterns, timeout, exact)
-
-    def quit(self, gracefully=None):
-        if gracefully is None: gracefully = True
-        self.child.sendeof()
-        self.child.close(force=not gracefully)
-        self.child = None
+        def launch(self, timeout=None):
+            if timeout is None: timeout = 30
+            logfile = sys.stdout if self.TraceOn() else None
+            self.child = pexpect.spawn('%s %s' % (lldbtest_config.lldbExec, self.launchArgs()), logfile=logfile)
+            self.child.timeout = timeout
+            self.timeout = timeout
+
+        def expect(self, patterns=None, timeout=None, exact=None):
+            if patterns is None: return None
+            if timeout is None: timeout = self.timeout
+            if exact is None: exact = False
+            if exact:
+                return self.child.expect_exact(patterns, timeout=timeout)
+            else:
+                return self.child.expect(patterns, timeout=timeout)
+
+        def expectall(self, patterns=None, timeout=None, exact=None):
+            if patterns is None: return None
+            if timeout is None: timeout = self.timeout
+            if exact is None: exact = False
+            for pattern in patterns:
+                self.expect(pattern, timeout=timeout, exact=exact)
+
+        def sendimpl(self, sender, command, patterns=None, timeout=None, exact=None):
+            sender(command)
+            return self.expect(patterns=patterns, timeout=timeout, exact=exact)
+
+        def send(self, command, patterns=None, timeout=None, exact=None):
+            return self.sendimpl(self.child.send, command, patterns, timeout, exact)
+
+        def sendline(self, command, patterns=None, timeout=None, exact=None):
+            return self.sendimpl(self.child.sendline, command, patterns, timeout, exact)
+
+        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