[Lldb-commits] [lldb] r227875 - Add an helper class to write pexpect-based test cases
Zachary Turner
zturner at google.com
Mon Feb 2 14:27:25 PST 2015
This will be very helpful for when we eventually come up with a solution
for pexpect on Windows. Thanks
On Mon Feb 02 2015 at 2:19:55 PM Enrico Granata <egranata at apple.com> wrote:
> 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
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150202/0b370ed9/attachment.html>
More information about the lldb-commits
mailing list