On 4/30/14, 8:54 AM, Johannes Pfau wrote:
Am Wed, 30 Apr 2014 08:43:31 -0700
schrieb Andrei Alexandrescu <[email protected]>:
However, this is too
coarse-grained - it would be great if each unittest could be pooled
across the thread pool. That's more difficult to implement.
I filed a pull request which allowed running unit tests individually
(and in different threads*) two years ago, but didn't pursue this
further:
https://github.com/D-Programming-Language/dmd/pull/1131
https://github.com/D-Programming-Language/druntime/pull/308
To summarize: It provides a function pointer for every unit test to
druntime or user code. This is actually easy to do. Naming tests
requires changes in the parser, but I guess that shouldn't be difficult
either.
That's fantastic, would you be willing to reconsider that work?
* Some time ago there was a discussion whether unit tests can rely on
other tests being executed first / execution order. AFAIK some phobos
tests require this. That of course won't work if you run the tests in
different threads.
I think indeed a small number of unittests rely on order of execution.
Those will be still runnable with a fork factor of 1. We'd need a way to
specify that - either a flag or:
static shared this() { Runtime.unittestThreads = 1; }
Andrei