[lldb-dev] Refactoring dotest as a Python package

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Tue Oct 27 13:40:44 PDT 2015


I think I have a way to split this into two smaller CLs.  I'm testing this
at the moment, if so it will allow the first CL to be most of the
preparation for the rename without the rename, and then the second CL
should literally just be a straight move with only 1-2 line code change.
So I'll try to put this first CL up for review shortly.

On Tue, Oct 27, 2015 at 12:49 PM Zachary Turner <zturner at google.com> wrote:

> I've got a patch locally to make all of our Python stuff part of an lldb
> package called `lldbsuite`.  Currently we've got a bunch of standalone
> scripts that live in various directories such as `lldb/test`, or
> `lldb/scripts`, and possibly some  other locations, and this organization
> makes it hard to share code because it is incompatible with Python's
> built-in code reuse mechanism, which is its package system.
>
> The problem is, this patch is *big*.  Functionally there weren't many
> major changes, but it renames the entire test directory.  To be clear, it
> still leaves `test/dotest.py` in place, so nobody has to change their
> workflow or do anything differently.  If you used to write "cd test &&
> dotest.py" you can still do that.  dotest.py is now just a 2 line wrapper
> around the package, so it looks like:
>
> import lldbsuite.test
> lldbsuite.test.run_suite()
>
> the advantage of this method is that lldbsuite can contain subpackages.
> It already contains one subpackage, which is lldbsuite.test, and I plan to
> move some of the Python code in `lldb/scripts` there as well, so that we
> have lldbsuite.scripts.  Then we can add a third submodule,
> lldbsuite.shared, and now dotest can share code with scripts, and it gives
> us a nice place to put stuff that previously had been copied all around.
>
> It also gives us a nice way to perform module-wide initialization that we
> don't have to repeat in every single test, such as writing "import
> lldb_shared" at the top of every file, since that can be done as part of
> lldbsuite/__init__.py.
>
>
> In any case, I have this all working on my machine, but I would like to
> see if someone can try my patch out on other platforms.  The size of the
> patch presents a problem though - it's over 7MB since it renames a very
> large directory.
>
> As usual, comments / concerns also welcome.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151027/b20e8a59/attachment.html>


More information about the lldb-dev mailing list