Skip to content

Delete Guard-stage Lite tests that pin spelling, slice 6 (#5833) - #5838

Merged
erikdarlingdata merged 3 commits into
devfrom
fix/5833-triage-6
Oct 15, 2026
Merged

erikdarlingdata merged 3 commits into
devfrom
fix/5833-triage-6

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

Claude posting for Erik Darling.

Part of #5833.

Why

The ruling on #5833 says tests should be load-bearing. A Guard-stage test that fails when correct code is reworded, renamed or moved does not protect anything. This PR covers slice 6, which is 30 Lite test files. Each test method was judged on its own: KEEP if it fails on a real defect, DELETE if it fails on a correct change, TRIM a file that mixes both. No test was added, moved or skipped, and no production code changed.

Per the coordinator's ruling on wiring pins, a source-reading pin is kept as KEEP (wiring) when two things are true: losing the registration or ordering would silently disable a shipped behavior, and no behavior test can reach it (a WPF window, or the host's middleware or filter list). I checked for behavior cover first. StatementFilterLiteMcpTests runs the real McpHostService.AddCallToolFilters, but it never sends an unknown argument, so the unknown-argument registration pin stays.

What changes

file decision the defect it fails on, or the spelling it asserted
McpJsonPostGuardTests KEEP 4 behavior tests (415 on a non-JSON POST); KEEP (wiring): host order Host guard, JSON guard, MapMcp. Without it, a non-JSON POST reaches MapMcp
McpMissMessageParityPinTests TRIM (-2) kept: the shared miss sentences and gate wiring are identical on both SKUs (parity). Deleted: TheCutWindowSentences_AreTheAgreedWords... (literal wording) and ThePinCoversTheSentencesThisChangeMadeShared (a count floor on the fragment roster)
McpSettingsGuardTests TRIM (-1) kept: 8 behavior tests on McpSettings.Load; the ban on a catch that returns defaults (the silent endpoint loss); KEEP (wiring): StartMcpServer reports the lost endpoint, and the Settings window's status line and its refresh after a save. Deleted: TheUnreadableSettingsReport_NamesTheMcpEndpoint (asserts that the substring "MCP" appears in a message)
McpToolsListBudgetTests KEEP (Undecided) the tools/list byte budget, D2 caps and the near-miss marker scan. A marker that reaches the wire is a real defect; the per-class budget files are a ratchet
McpUnknownArgumentGuardTests KEEP 6 behavior tests through the guard and a real server; parity: both hosts register the same shared guard; KEEP (wiring): Lite's host registers the guard. Without it, every Lite tool silently drops unknown arguments again (#3870)
MeasurementContractCensusTests TRIM (-1) kept: bare divide by the stored interval, NULLIF routing, assumed-cadence rates, per-second passthrough, epoch residuals asserted empty (a new delta family with no restart carrier), both hosts drain the discontinuity account, gauge rule. Deleted: TheTwoPinnedRules_KeepTheNumbersTheirTestsGaveThem (the comment text "rule 4"/"rule 7" in two other files, plus a count)
OperatorRemediationLiteDivergencePinTests DELETE (-4) pins a design decision (Lite has no remediation) by token scan and by the advise-only comments still existing. A deliberate future change fails it; no defect
OverviewBlockingLaneDataStartPinTests DELETE (-4) call spellings in RefreshAsync, the step's argument lists, and XAML row and attribute text. The choice and the notice are covered by OverviewBlockingLaneDataStartTests and ...LiveTests
ParameterSensitivityFiringSignatureParityTests KEEP the cross-SKU firing signature (Lite and Darling must fire PARAMETER_SENSITIVITY alike)
PayloadProbeFailureTests TRIM (-2) kept: 9 behavior tests on the trailing-set contract; the on-prem query keeps a non-empty CATCH and puts failures after the payload (a failure row stored as a file); KEEP (wiring): the host reads the trailing set after the payload and before the write. Deleted: Exactly_Two_Collectors_Declare_The_Contract (collector roster) and DatabaseSizeStats_Azure_Still_Emits_Only_Its_Payload (asserts absent SQL text)
PgServerLogPathPinTests KEEP a hard-coded log/ prefix breaks log collection when log_directory is absolute (#3410); the sweep has its own controls
PlanViewer4632FallbackTests KEEP 2 behavior tests; a StaticResource alert brush throws at load in the Dashboard scope
PlanViewerCapabilityPinTests TRIM (-1) kept: no bare Clipboard.GetText (crash), the re-entrancy guard and its span over the load, the selection handler subscribed once. Deleted: PlanViewerCapabilities_NoneDisappeared (a baseline roster of label and handler substrings) with its probes, scan, ratchet and baseline file
QueryHighDopStaleMaxDopParityTests KEEP cross-SKU parity of the QUERY_HIGH_DOP staleness cross-check (#2999), the archive-view read, the NULL-safe join
ScreenReaderNamesTests KEEP 3 UI Automation behavior tests; unnamed column headers, filter buttons and server box items read as type names to a screen reader
ServerTabCapabilityPinTests TRIM (-6) kept: clipboard crash, re-entrancy guard, guard span. Deleted: the six *_NoneDisappeared baseline rosters (tabs, filter managers, chart wiring, menu commands, grid style map, event wires), their scans, ratchet and six baseline files
SettingsFileGuardTests KEEP 9 behavior tests; exactly one settings.json writer, which takes the quarantining read; ban on the null-coalesce overwrite (data loss, #2425/#2433)
SharedCollectorDefaultsPinTests TRIM (-1) kept: Lite defaults equal the shared constants (cross-SKU drift), schedules cover every collector, presets name real collectors, shared implementations. Deleted: Deadlocks_DefaultToTheFiveMinuteTier_Ruled1963 (a value pin that a deliberate retune fails)
StaThreadCensusTests TRIM (-1) kept: no test starts its own STA thread outside the allow list, and a thread-owning test takes the gate (leaked dispatchers, #5596). Deleted: EveryAllowListEntry_SaysWhy (reason-string length)
StatementScrubLivePlanDisplayTests TRIM (-1) kept: behavior tests, every save site refuses the withheld marker, every live fetch passes the filter (a scrub leak), SaveXmlToFile guard before the dialog; KEEP (wiring): the actual-plan double-click guard and wait cursor. Deleted: TheWithheldSentence_NamesWhatIsSaved... (literal sentences)
StatementScrubLiveReadTests TRIM (-1) kept: behavior tests, every actual-plan re-run is filtered. Deleted: TheFilesThatOpenTheirOwnServerConnection_AreTheKnownOnes (a roster of files that open a connection; it fails on any new file whether or not that file reads text)
StoreBusyReportTests KEEP behavior tests on the report (blaming archival when no holder is known misleads the user); KEEP (wiring): both Dismiss handlers use the report; every user-write surface reports a lock timeout; no caller overwrites the outcome
StoredEventCopiesSweepTests KEEP event-view reads that skip StoredEventCopies count duplicated events; a collection-time lower bound drops re-collected events
SwallowedItemFailureTests KEEP per-item failures landing as SUCCESS, and a finding saying "read and found nothing" (#3754); parity of the session-missing count
TabLoadsOffUiThreadTests KEEP a tab's data call on the UI thread takes an untimed store read lock (#5457)
TestMapProducerGuardTests TRIM (-3) kept: 8 tests that run test-map.py and its shard scripts on fixtures. Deleted: three nightly.yml text pins (TheJobs_AreOptional..., TheShardAndProbeJobs_WaitFor..., TheJobs_CutTheSameShardCount...) with their Nightly/Job helpers
TestMapShadowGuardTests TRIM (-1) kept: script behavior on fixtures, the shadow pin cannot fail the gate, the PowerShell parameter-shadow ban. Deleted: OnlyTheThreeTestJobs_ReadTheSelection... (a roster of workflow jobs) with s_selectionConsumers
TopListTotalOrderPinTests KEEP a top list without a total order duplicates or skips rows across pages (#5299, Darling twin)
TraceFlagsFailedRunPinTests KEEP a failed trace_flags read logged SUCCESS reads as "no flag enabled" (#5633)
WriteLockBudgetTests TRIM (-2) kept: budget resolution behavior, the app keeps 5 s, the call site takes the budget, not a literal. Deleted: EveryUserWriteCallerIsNamed and EveryBackgroundWriteCallerIsNamed (caller rosters) with UserWriteCallers, BackgroundWriteCallers, CallersOf

Counts: 2 files deleted, 13 trimmed, 15 kept. 31 test methods removed: 8 in the deleted files and 23 in trims. Also removed: the Lite.Tests/CapabilityPins/ baseline directory (7 files), and the private helpers that only deleted tests used. One doc cref to a deleted test in MeasurementContractCensusTests was reworded. No production code became unused.

Guard before/after:

  • dev figures from the brief: Darling.Tests Total: 4601, Lite.Tests Total: 1281
  • this branch (gate): Darling.Tests Total: 4587, Errors: 0, Failed: 0, Skipped: 0 and Lite.Tests Total: 1251, Errors: 0, Failed: 0, Skipped: 0
  • Lite dropped by 30, not 31. One deleted method is probably outside the Guard trait in a mixed file, or dev's count moved. Darling's drop of 14 is not from this PR, which touches no Darling file; dev moved between the brief's figure and this base.

Test plan

  • dotnet build Lite.Tests -c Debug: 0 Warning(s), 0 Error(s). The gate's Debug build of both test projects: 0 Warning(s), 0 Error(s).
  • Gate pre-push.sh: GATE GREEN. The Guard stage of both suites passed (lines above), and 239 selected classes passed (2768 Darling + 994 Lite tests). symbols dropped: effective_start, wrapper, Step. These are words from deleted text, not symbols this PR changed.
  • git diff --stat origin/dev...HEAD -- deprecated/ prints nothing.
  • Full suites: not run (laptop rule); CI decides.

Undecided (kept; the coordinator rules)

  • McpToolsListBudgetTests, all 5: a size budget with per-class ratchet files. Keep the total ceiling and the marker scans; the per-description ceilings and the budget-file layout check could go.
  • MeasurementContractCensusTests.EveryForgetSite_IsTheEpochComparatorOrAHostRemovePath: a forget that bypasses the epoch comparator is a real defect, but the test asserts exact call-site lists.
  • TestMapShadowGuardTests and TestMapProducerGuardTests: the remaining tests that read workflow or PowerShell text alongside a script run (ThePin_IsPullRequestOnly..., TheSelectionSteps_TurnEveryFailureIntoAFullNotice..., TheDarlingShards_UploadTheirReports..., the shard-script tests).
  • PayloadProbeFailureTests.DatabaseSizeStats_OnPrem_Records... and StatementScrubLivePlanDisplayTests.SaveXmlToFile_Refuses...: each pins a real defect (an empty CATCH; a marker saved as XML) but uses exact call or SQL spellings.

Shared helpers left

None. The deleted helpers were private to their files. ParitySource, CSharpSourceWalker and ReadRepoFile stay, because surviving tests use them.

SECTION: Changed
ENTRY: - Guard-stage spelling tests deleted, slice 6 ([#PR]) - 31 test methods in 15 files that asserted how code is spelled, not what it does.

@erikdarlingdata erikdarlingdata added the merge-train In a merge train: its CI ran on the train PR label Oct 15, 2026
@erikdarlingdata
erikdarlingdata marked this pull request as ready for review October 15, 2026 04:32
@erikdarlingdata
erikdarlingdata merged commit 30c055a into dev Oct 15, 2026
15 of 18 checks passed
@erikdarlingdata
erikdarlingdata deleted the fix/5833-triage-6 branch October 15, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-train In a merge train: its CI ran on the train PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant