mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-09-12 21:57:19 -04:00
Seven tests failed in a Windows CI leg, every one thrown from a TestInitialize rather than an assertion, and on a path no test in the failing class had created. The cause is [assembly: Parallelize] over classes that reach for state which is process-wide by nature: the Configuration singleton, the LIBATION_FILES_DIR environment variable, and AudibleFileStorage's static file cache. Two classes running at once means one swapping the config or deleting its temp directory while the other enumerates it. Opting out per class was the previous arrangement and it does not hold: three classes carried [DoNotParallelize] while two touching the same state did not, and nothing tells whoever adds the sixth. The attribute is gone, with a comment saying why, and the existing [DoNotParallelize] markers stay as a statement of intent if parallelism ever returns. Costs nothing measurable: 68 tests in about 3.1 seconds serially, against 9.8 seconds for the same assembly in the CI leg that failed. Ran three times over to check. Co-authored-by: rmcrackan <rmcrackan@gmail.com>