Repository navigation
Delete Guard-stage tests that assert spelling, slice 2 (#5833) - #5842
Merged
Merged
Conversation
CommandDeadlineScannerAdoptionTests and CommentFilterAdoptionTests are rosters of which test pins use which helper; CollectionLogWebRowPreservesFullTextPinTests pins one call's argument text. None fails on a product defect.
Deletes the methods that assert a call's text, a signature, a SQL fragment, a description's wording or a roster, and the private helpers only they used. Censuses that fail on a real defect (a missing deadline, a leaked statement, an alert past the master switch, a Lite/Darling drift) stay.
…budget ratchet files (#5833 slice 2)
Three doc crefs in test files and two in DarlingCloudIdentityProbe named deleted tests; CrossAppGuardCiGateTests exempted four Lite.Tests reads that only the deleted CommentFilterAdoptionTests and NeitherFixHasALiteTwinToDriftFrom made.
… census and keep LockedModeRestoreCoverageTests on the LF roster (#5833 slice 2)
erikdarlingdata
marked this pull request as ready for review
October 15, 2026 04:33
McpToolsListBudgetTests.cs: the slice removed the tools/list byte ratchet, so dev's TotalCeilingBytes raise (#5819) goes with it; the served-shape checks stay.
CommentFilterAdoptionTests.cs: deleted by slice 1, trimmed by slice 2 (its DocCommentHygieneTests entry). The deletion stands.
This was referenced Oct 15, 2026
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Claude posting for Erik Darling.
Part of #5833.
Why
The ruling on #5833 is that tests should be load bearing. A Guard-stage test that fails when correct code is spelled differently protects nothing, and it turns pull requests red. This is slice 2: 37 Darling 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 holds both. This PR adds no tests and changes no production code.
What changes
Counts: 6 files deleted, 18 trimmed, 13 kept (one of them is the
GuardStageScannerhelper). 114[Fact]/[Theory]attributes removed in total, and 71 tools/list budget data files deleted with their ratchet. About 7,100 lines are deleted.TheSql_CarriesTheListFormPredicate_OnEveryNarrowedRead, which pinned SQL fragment wording; the live tests in the same file run those reads. KEEP (wiring):TheFileIoTab_PassesTheSavedFilterIntoBothTrendsandTheFinOpsTab_.... Without them, a viewer tab could silently ignore the saved database filter, and no behavior test reaches a WPF tab.unavailableinstead ofnot_collectedon Azure SQL DB, and the read wiring must match on both SKUs.TheDeprecatedTree_IsExcludedAndThatExclusionMatters, which only checked an exclusion roster. Kept: a project that assigns an Entra mode but lacks the provider package fails to connect at runtime.BothDescriptions_SpellOutTheRegistry, which pinned description text. Kept: a source that is emitted or scored but not registered gets refused by the filter.ex.Messageleaking into a returned note (masking). One method is Undecided (below).TheCleanupDefaultNamesTheSharedHorizon. Its own doc says the IL is byte-identical either way, so it pins source text only. Kept: the reflection test that reads the compiled default.TheOnlySurfacesThatBandCpu_AllReachTheSharedDecision(a roster;BothCpuBandingSurfaces_AgreeOnTheSameServercovers the behavior) andBothPgCpuReadsBindTheSharedFreshnessConstant(pins a constant's name). Kept: the bounded hypertable read shape, which has a known cost.Lite.Tests/GuardStageCensusTests.csstill links it throughLite.Tests.csproj.DarlingMcpHostGateLiveTestsandDarlingWebHostGateLiveTestsalready cover each one through the shipped pipeline: a foreign Host is refused in both modes and on/core, a TLS refusal degrades to loopback names, and the extra host name is admitted only in network mode. KEEP (wiring):McpHost_KeepsTheTransportStatelessWhileCoreIsMapped. Without it, a stateful session opened on/could call any tool on/core, and no behavior test covers that.TheGuardIsAPredicate_SoTheTextItClearsIsNeverRewritten, which pinned a signature. KEEP (wiring):TheGuardRunsAtTheEntryPointAndAtTheSink, because without it multi-statement text could reach a monitored server and no behavior test drives the entry point. KeptTheExplainStillOnlyPlans: ANALYZE would execute monitored-server text.EachRead_BindsTheBoundOfTheCollectorWhoseTableItReads(call spelling), andTheDatabaseConfigRead_...andTheTraceFlagsRead_...(SQL wording; the live tests in the file cover both reads). Kept: the lower-bound census, since an unbounded latest-value read scans the whole hypertable, and the Lite twin parity check.Reads=Litetrait roster.TheSweep_SkipsBuildOutputThroughTheSeparatorAwareHelper(spelling). Kept the main census: a shared-store class outside thelive-postgrescollection races silently.TheRawPatterns_AreReadOnlyThroughTheOneAccessor, a style rule inside the test itself. Kept: a restore that can leave locked mode lets transitive package drift through unreviewed.TheSixMovedSites_FetchOnePastTheCap_AndObserveThroughBoundPageandTheAutovacuumRunHistory_BindsToItsCapAndObserves(call spellings) andEveryWindowFloorTool_CarriesTheSharedClause_AndNoOtherToolDoes(a description roster). Kept: error masking, clamping instead of refusing, payload keys and values, and culture-dependent timestamp parsing.PostgresConfig.ToolsList_TotalBytes_IsAtOrUnderTheCeiling, the per-description ceilings and the budget-file layout check), their helpers, the change-log comment andMcpToolsListBudget/*.txt(71 files). Kept: no guide marker reaches the wire, D2's absolute caps, and near-miss markers.TheHost_RegistersTheUnknownArgumentGuard_AsACallToolFilter. Without it, a misspelled parameter is silently dropped;McpInProcessHostinstalls the filter itself, so it cannot cover the shipped host.No_other_connection_predicate_remains_under_Darling, a one-implementation roster;Differitself is tested by behavior. Kept: a server setting that the connection is built from but that is not bound means a stored password gets reused for a changed connection.TheIoPeakSample_AndItsReadCount_PickTheSameTiedRow, which pinned SQL wording. Kept the tie-break and NULLS-last census.EveryAllowListEntry_StillMatches...,EveryPinnedSampleStatement_StillMatches...). Kept the collection census: changes to cluster-wide objects race silently.NoReaderNamesTheSizeTableOrTheMemoryColumnsYet, a consumer roster. Kept: the rung registration, and the probe mapping, without which a store would map one rung low.ThePatternHasExactlyOneDefinitionInTheRepo, a one-definition roster. Kept: the readers use the shared filter, otherwise statement text with passwords is stored.Rosters outside the slice that named deleted code (fixed by deleting the dead entry, as the brief requires):
CommentFilterAdoptionTests: dropped theDocCommentHygieneTests.csentry and changed its summary's count word from Eight to Seven, which its own count pin requires.RepoFileAdoptionTests: droppedPgCpuCapacityHeadroomTests.csfrom the LF-reading roster, because the trimmed file no longer reads LF.LockedModeRestoreCoverageTestsstill does, so its entry stays.Left in place on purpose
GuardStageScanner.cs:Lite.Tests/GuardStageCensusTests.cslinks it. Its R1-R4 parts become dead once the Lite census goes, which is another slice's work.Lite.Tests/McpToolsListBudgetTests.csandLite.Tests/McpToolsListBudget/*.txt: Lite's twin of the ratchet deleted here. Its doc calls the two lockstep (D6), so the Lite slice should delete it too..github/workflows/build.ymllines 276, 754 and 785,.github/scripts/tag-reads-lite.pyline 4, and prose in about 15 test files. No production code becomes unused.Undecided (kept; the coordinator rules)
DeltaGapPolicyTests.ThePerfmonCollectorMeasuresItsInterval_RatherThanAssertingTheCadence:DoesNotContain(".Value(60)")catches the real defect (a literal cadence used as the interval, rates up to 5x high). Its twoContainslines, however, pin call spellings.FailureNoteRedactionTests.OnlyAnalysisContext_ConstructsOrAppendsACollectionFailure: it is motivated by masking, since it stops a second place that could writeex.Messageinto a failure record. But it fails on any correct new construction site;TheForcePlanReader_...NeverPutsExMessage...is the direct masking check.Test plan
dotnet build Darling/Darling.Tests -c Debug: 0 warnings, 0 errors.dotnet build Lite.Tests -c Debug: 0 warnings, 0 errors.CommentFilterAdoptionTestsandRepoFileAdoptionTestsrun alone:Total: 6, Failed: 0.pre-push.sh), first run before the roster fixes: GuardDarling.Tests Total: 4415, Failed: 2(the two rosters above), GuardLite.Tests Total: 1281, Failed: 0. Selected classes: darling 2790, lite 655, with one failure (CommentFilterAdoptionTests, the same roster).pre-push.sh), final run on 4298cd3:GATE GREEN. GuardDarling.Tests Total: 4415, Errors: 0, Failed: 0, GuardLite.Tests Total: 1281, Errors: 0, Failed: 0,classes: darling 2793, lite 657, every class run passed.DesktopDatabaseFilterLiveTests,LatestValueLookbackTests,PgDatabaseSizeStatsAndHostMemoryRungTests): only Guard-stage methods were removed from them, and the brief says no rig. CI runs the live halves.Guard stage, before and after: dev
Darling.Tests Total: 4601becomesDarling.Tests Total: 4415(186 fewer), and devLite.Tests Total: 1281staysLite.Tests Total: 1281(Lite is unchanged).Coordinator ruling followed
SECTION: Changed
ENTRY: - Guard-stage spelling tests deleted, slice 2 ([#PR]) - 114 test methods in 24 files that asserted how code is spelled, not what it does.