On Thursday, December 29, 2011 00:06:57 Brad Anderson wrote: > Forgive me if this is a silly question but a conversation in IRC got me > wondering if compiler could check for shared/__gshared use (and any other > thread unsafe operation) in each unittest and run those that aren't using > them concurrently? Obviously not all at once but at least more than one at > a time (perhaps set through user configuration).
That could result in non-deterministic failures. Granted, unittest blocks should usually be independent, but there's nothing that guarantees that they are, so running them in a non-derministic order could result in non- deterministic failures. Also, what about unit tests for stuff like std.pararellism or std.concurrency - anything that actually specifically uses threads in its implementation? Running tests in their own threads could cause issues with that. Each module in Phobos has its own executable for running its unit tests, and there has been talk of making _those_ parallelizable, and I think that parallelizing things on that level makes a lot more sense than trying to build it into the language. - Jonathan M Davis