Enable multi-process testing for MacOSX.
authorTodd Fiala <todd.fiala@gmail.com>
Tue, 8 Jul 2014 06:42:37 +0000 (06:42 +0000)
committerTodd Fiala <todd.fiala@gmail.com>
Tue, 8 Jul 2014 06:42:37 +0000 (06:42 +0000)
commit3f0a360f1823927d4f2a85f4d9f10b56c9dcda0d
treeed1844e349b982ee838e41cb900e7c9d5e5a90a7
parentc4ebb129b7ff9365dc09493aa5224618a6275ed6
Enable multi-process testing for MacOSX.

This change modifies the way the multi-threaded test runner works.
It uses the Python multiprocessing library rather than the threading
library.  Investigation showed that all MacOSX threads were waiting on
the global python lock when using the threading approach.  Not sure
why that differed from the Linux/FreeBSD implementations.

The new approach uses the multiprocessing library's Pool class.  It's
mildly cleaner than the other version, runs multithreaded on MacOSX,
and seems to have caused no performance regression on Linux.  The
worker thread logic is simpler with the Pool managing the worker
processes.

This also includes a minor change to the test runner's python
lldb dir logic using the -P option.  It now looks at the last line
of output rather than the first line.  This covers part of the issue
of extra options validation logic getting spit out.  The test runner
will now pick up the right python library directory.  It does not
fix all the issues, though, as a ton of tests (50+ on Linux) are
failing due to unexpected output when running lldb.

llvm-svn: 212513
lldb/test/dosep.ty
lldb/test/dotest.py