testsuite: force plugin tests sequentially on Windows.
authorTamar Christina <tamar@zhox.com>
Wed, 18 Jul 2018 20:05:41 +0000 (21:05 +0100)
committerTamar Christina <tamar@zhox.com>
Wed, 18 Jul 2018 20:13:54 +0000 (21:13 +0100)
commitb290f15c4d01d45c41c02ae5c5333a1fab022a32
tree3113f7a397fdd690521476879a1457d6b84b263b
parent932300bb55c8745aea7f29dc36b6d5021e6855c8
testsuite: force plugin tests sequentially on Windows.

Summary:
Package registration does not seem to be thread-safe on
Windows.  Placing the system under heavily load seems to
trigger registration failures even though they are all
different package-dbs.   This makes the plugin tests
a bit flaky.

I think this is because on Windows we use pessimistic locks
while on Linux we use atomic file replacement.

On Windows ReplaceFile is atomic, just the metadata write
may not be.  Since the metadata is not of importance
we should either switch over to ReplaceFile or
fix the locking code to not error out but wait.

For now however I have to force these 25 tests to run
serially in order to guarantee their correctness.

Test Plan: ./validate

Reviewers: bgamari

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: #15313, #13194

Differential Revision: https://phabricator.haskell.org/D4918
testsuite/tests/plugins/all.T