[lldb-dev] Moving pexpect and unittest2 to lldb/third_party

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Wed Oct 21 12:57:42 PDT 2015


*TL;DR - Nobody has to do anything, this is just a heads up that a 400+
file CL is coming.*

IANAL, but I've been told by one that I need to move all third party code
used by LLDB to lldb/third_party.  Currently there is only one thing there:
the Python `six` module used for creating code that is portable across
Python 2 and Python 3.

The only other 2 instances that I'm aware of are pexpect and unittest2,
which are under lldb/test.  I've got some patches locally which move
pexpect and unittest2 to lldb/third_party.  I'll hold off on checking them
in for a bit to give people a chance to see this message first, because
otherwise you might be surprised when you see a CL with 400 files being
checked in.

Nobody will have to do anything after this CL goes in, and everything
should continue to work exactly as it currently does.

The main reason for the churn is that pretty much every single test in LLDB
does something like this:

*import unittest2*

...

if __name__ == '__main__':
    import atexit
    lldb.SBDebugger.Initialize()
    atexit.register(lambda: lldb.SBDebugger.Terminate())
    *unittest2.main()*

This worked when unittest2 was a subfolder of test, but not when it's
somewhere else.  Since LLDB's python code is not organized into a standard
python package and we treat the scripts like dotest etc as standalone
scripts, the way I've made this work is by introducing a module called
*lldb_shared
*under test which, when you import it, fixes up sys.path to correctly add
all the right locations under lldb/third_party.

So, every single test now needs a line at the top to import lldb_shared.

TBH I don't even know if we need this unittest2 stuff anymore (does anyone
even use it?)  but even if the answer is no, then that still means changing
every file to delete the import statement and the if __name__ ==
'__main__': block.

If there are no major concerns I plan to check this in by the end of the
day, or tomorrow.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151021/e79cbf68/attachment.html>


More information about the lldb-dev mailing list