Skip to content

Strengthen regression tests and remove redundant coverage - #1950

Merged
kevinherron merged 22 commits into
integration/1.2from
t3code/audit-test-suite
Sep 8, 2026
Merged

Strengthen regression tests and remove redundant coverage#1950
kevinherron merged 22 commits into
integration/1.2from
t3code/audit-test-suite

Conversation

@kevinherron

Copy link
Copy Markdown
Contributor

Remove redundant smoke tests and duplicate scenarios while strengthening tests that could pass on incomplete results, confused attributes, or unobserved asynchronous work. Retained coverage checks complete decoded values, independent attribute caches, protocol boundaries, and observable publishing behavior. Asynchronous tests use bounded waits, coordinated state changes, and cleanup that reports failures.

The stronger assertions expose two production defects, both fixed here. UaNode.readWriteMask() requested UserWriteMask and cached it as WriteMask. XML status-code decoding read indentation whitespace instead of the Code element. Distinct attribute fixtures and indented golden XML now protect these paths.

Existing matcher, type-tree, codec, and lifecycle contracts retain the coverage behind the removals. The event-creation timing experiment remains available with -Dmilo.eventTiming=true and is excluded from default execution.

Verified with mise exec -- mvn -q spotless:apply, mise exec -- mvn -q clean compile, focused reactor verification, and full mise exec -- mvn -q verify. Full verification passed with no failures or errors and four expected skips. The WriteMask regression was also run against the old dispatch and failed with the expected value mismatch before the fix was restored.

Use distinct masks and stale cached values to expose wrong attribute
dispatch and cache updates. Correct readWriteMask to request WriteMask.
Coordinate held tasks explicitly, bound completion waits, and report
worker failures. Verify shutdown waits for release without a narrow
timing assertion.
Observe recovery states before triggering transitions and bound every
new wait. Verify Bad_SessionClosed and release clients and observers on
failure.
Bound asynchronous setup and attempt every cleanup step after partial
setup or failure. Preserve the first failure and suppress later
failures; exercise these paths directly.
Require the complete ordered result after all groups finish, including
reverse completion. Check mapper failures and mismatched result sizes.
Reuse golden XML to verify timestamps, picoseconds, and omitted
metadata. The indented fixtures expose status-code decoding that reads a
whitespace node instead of the Code element; select the first element
child. Also check the decoded ExtensionObject array and its Argument
contents.
Retain existing client and server tree contracts. Give the asynchronous
builders deadlines and known subtype assertions instead of discarding
their results.
Expose each distinct channel configuration as a named parameter.
Preserve padding sweeps, security modes, 4096-bit keys, and
authenticated corruption cases.
Replace the size product with named boundary cases and controlled
termination responses. Cover trailing junk, ignored ranges, null
fragments, and bad statuses with bounded reads.
Combine below, equal, and above-threshold cases in one ordered scenario.
Retain timed suppression windows and verify delivery against the last
reported value; keep range, array, and invalid-filter coverage.
Remove browse and read methods already covered by stronger assertions.
Change a server description and verify refresh results and the updated
client cache.
Add distinct scalar, array, and matrix data plus member,
optional-presence, and union assertions. Retain static-versus-dynamic
encoding comparisons and existing default and null cases.
Check generated XML and parsed field metadata, and retain known built-in
content checks. Remove redundant parser smoke coverage and replace
string comparisons with structural equality and complete consumption.
Request a snapshot during a held transition and verify the coherent
completed state. Keep the stress sweep with mutator progress,
observation, and cleanup guarantees.
Check pipeline refill and recovery probes instead of private ceiling
counters. Retain deterministic activation setup and the session-binding
and beyond-64 republish regressions.
Run the profiling experiment only with -Dmilo.eventTiming=true. Keep
functional ownership, deletion, and rollback tests in the default suite.
These four sources contain no executable coverage and refer to obsolete
stack APIs. Git history retains their scenarios.
Strengthen defensive-copy assertions to compare complete arrays. Replace
record accessor echoes with SecurityKeyset.from checks for directional
material and unsigned identifiers.
Keep wildcard delegation, operand conversion, null handling, and
malformed-pattern mapping at the operator layer. Grammar and
pathological-pattern regressions remain in LikeMatcherTest.
Retain stronger caching, replacement, failure-recovery, and concurrency
tests in each class. Verify a null computation is retried and can
produce a value.
Keep complete SAN lists and CSR extension assertions. Parse the
generated PEM and compare the CSR to protect that separate encoding
boundary.
Retain exact, absent, selective, and all-result matching plus case
sensitivity and malformed-pattern status mapping. Shared matcher tests
cover the removed grammar rows.
@kevinherron
kevinherron merged commit 0e22cf0 into integration/1.2 Sep 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant