merge(agent-c): rows 91/95/96 — compile-cache tests on key-scoped delta assertions; Watch/Stop/ExpectTerminated at all 23 fast-tick actor creation sites in the three remaining AuditLog.Tests classes; per-suite xunit maxParallelThreads:4 for the four MSSQL-fixture suites (matches the row-82 semaphore slots) + Test Parallelism Policy doc

This commit is contained in:
Joseph Doherty
2026-08-17 05:28:51 -04:00
15 changed files with 428 additions and 54 deletions
@@ -42,6 +42,23 @@
<Using Include="Xunit" />
</ItemGroup>
<ItemGroup>
<!--
Deferred-work register row 96 — per-suite in-process parallelism cap.
This is the suite that owns MsSqlMigrationFixture: every MSSQL-backed test
CLASS gets its own database, i.e. a CREATE DATABASE plus the full
~100-migration chain against the ONE shared dev SQL Server. Uncapped,
xunit runs Environment.ProcessorCount collections at once, so a 14-core
dev box asked the server for 14 concurrent fresh-database migrations from
this process alone. The cap is threads only — collections stay parallel —
and 4 matches the default slot count of the cross-process sp_getapplock
migrate semaphore (row 82), so the in-process and cross-process limits
agree. Policy: docs/test_infra/test_infra.md.
The json must be copied to the output directory to take effect.
-->
<Content Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../../src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.csproj" />
<ProjectReference Include="../../src/ZB.MOM.WW.ScadaBridge.Commons/ZB.MOM.WW.ScadaBridge.Commons.csproj" />
@@ -0,0 +1,4 @@
{
"$schema": "https://xunit.net/schema/current/xunit.runner.schema.json",
"maxParallelThreads": 4
}