[lldb-dev] Refactoring dotest as a Python package
Zachary Turner via lldb-dev
lldb-dev at lists.llvm.org
Tue Oct 27 12:49:41 PDT 2015
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/a914ccdd/attachment.html>
More information about the lldb-dev
mailing list