On Tuesday, 15 September 2015 at 08:27:29 UTC, Dicebot wrote:
On Sunday, 13 September 2015 at 10:44:30 UTC, Atila Neves wrote:
2) being able to do weak ordering of tests (by defining strict sequence of groups so that parallelization/randomization only happens within such group) - I have used something as simple as numerical priority value so far for my needs

There's `@singleThreaded` for that: all tests in a module with that UDA run in series (other modules are still run in parallel). I didn't think one was needed for random ordering.

Atila

I had inverse thing in mind - all tests within a module / block run in parallel, but blocks run sequentially. It is not a good feature for unit tests but quite important one to higher level ones which deal with nasty environment issues.

I'm not sure we're understanding each other. With the current
implementation and a module like this:

@singleThreaded
@name("serial1") unittest { ... }

@singleThreaded
@name("serial2") unittest { ... }

@name("parallel1") unittest {... }
@name("parallel2") unittest { ...}


3 tasks would get scheduled in parallel: parallel1, parallel2, and a composite task that does serial1 then serial2. If there are any other modules, all of the other tests run in parallel with these 3 tasks.

I'm proposing to extend the same behaviour to randomised running of tests, but if that's the case the name would change.

Atila

Reply via email to