Skip to content

Improve behavioral coverage and resolve known failures for 4.0.0 #572

Description

Outcome

Reach 4.0.0 readiness with increased behavioral coverage and no known unresolved bugs. This issue owns the coverage baseline and final defect audit. #545 and #549 retain their original investigations; #509 owns the differential oracle.

Acceptance

  • Record baseline source revision, supported Unity matrix, actual test results, and line/branch reports where instrumentation supports them. Distinguish source-generator coverage from Runtime and Editor coverage.
  • Inventory gaps across public APIs, lifecycle ownership, mutation visibility, reentrancy, reset, exceptions, pooling, stale handles, cleanup failures, and reclamation.
  • Close each identified gap with tests of production behavior and meaningful failure diagnostics. Parameterize route kinds and use LeakWatcher where applicable.
  • Resolve test: investigate intermittent full-stack dispatch allocation failure #545 and Investigate GenerateOnly subprocess timeout with empty output #549 with evidence from their original scopes. Passing repetitions alone do not attribute a historical failure. Do not relax assertions, skip tests, add sleeps, or increase timeouts to obtain green.
  • Retain comparable before/after coverage reports and demonstrate increased behavior coverage without an arbitrary global percentage or changed exclusions masking regressions.
  • Pass the supported Unity correctness matrix and explicit allocation suites, including test discovery/outcome and cleanup checks.
  • Audit the final revision for outstanding defects, skips/inconclusives, and omitted scopes; report each honestly.

Method

Before each change, state the hypothesis, RED observation, GREEN checks, stop rule, and evidence location. Fix and test the whole observed failure class. Keep raw local evidence under ignored artifacts and progress records; link durable CI/evidence records here. Inability to reproduce is not proof that a bug is fixed. Unresolved bugs block this issue.

2026-09-10 baseline and instrumentation repair

PR #571, commit c2065e6, repairs an empty coverage artifact. The configured generator command passed all 257 tests but emitted zero valid lines/branches because shared build settings disable symbols. Explicit portable symbols, with CopyAnalyzerPayload=false, produce 1,570/1,714 lines (91.59%) and 520/688 branches (75.58%) across generator and analyzer assemblies. Executing the actual YAML command from its declared working directory reproduces the totals. The new actual CI guard rejects the empty artifact and requires both assemblies. This is instrumentation repair, not increased Runtime/Editor line coverage.

Local baseline: 658 docs tests, 257 generator/analyzer tests, 28 plain .NET runtime tests, and two full 1,301-case npm runs pass. Native Unity 6000.4.6f1 allocation assembly: 291 passes, zero failures/skips/inconclusives, 274.4666179 seconds. Native PlayMode: 1,517 passes, zero failures/inconclusives, one existing interactive-editor optimization-contract skip, 9.1001473 seconds. Both native runs have matching raw/cleanup identities and restored clean scenes. These are local Mono/debug observations.

The original combined #545 scope still requires the absent Assets/DxmCiSamples fixture to be provisioned safely. Passing isolated allocations does not close #545. Passing npm does not attribute #549. Raw evidence remains local/ignored; durable final CI and broader coverage work remain open.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions