[ 
https://issues.apache.org/jira/browse/SOLR-18609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SOLR-18609:
----------------------------------
    Labels: pull-request-available  (was: )

> Packaging BATS tests accept failures they should catch: harden the assertions
> -----------------------------------------------------------------------------
>
>                 Key: SOLR-18609
>                 URL: https://issues.apache.org/jira/browse/SOLR-18609
>             Project: Solr
>          Issue Type: Test
>            Reporter: Nick Shanin
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> A review of the packaging BATS suites ({{solr/packaging/test}}) found 
> assertions that pass when the operation they test has failed. The suites stay 
> green while the behavior they guard is broken.
> h3. What the review found
>  * Post tests that never verified the posted documents arrived, including an 
> authenticated post aimed at the wrong collection name.
>  * A log batch whose sends failed could still pass after an empty commit; the 
> check did not require any indexed records.
>  * Failed ZooKeeper reads were accepted as proof that a child node was 
> deleted (seven negative existence checks).
>  * Degraded collection health was accepted: shard statuses were read without 
> requiring command success and the collection-level healthy status.
>  * A failed stop was accepted as a graceful stop, and a stale export output 
> file could pass as a fresh result.
>  * TLS failure checks matched so generically that a plain connection refusal 
> satisfied them; a failed curl was accepted as a compression check.
> h3. Control evidence
> With an HTTP 503 injected into a log batch add, the current authenticated 
> post test passes 1/1 while the follow-up probes show zero documents indexed; 
> the hardened test rejects the same injection. The hardened assertions require 
> command success, the specific failure diagnostic where one exists, and a 
> positive check that the expected data or state is present.
> h3. Prepared branch
> Branch: 
> [solr-bats-assertion-hardening-submit|https://github.com/nick-boss-tech/solr/tree/solr-bats-assertion-hardening-submit]
>  at {{4d5d876d946a4f5ac174a7f68e16f4dd9b5f9f68}}, 14 files under 
> {{solr/packaging/test}} (13 existing files and the new 
> {{test_bats_assertions.bats}} with nine helper regression cases). Test files 
> only; no production, launcher, or build changes.
> Diff: [base to 
> branch|https://github.com/nick-boss-tech/solr/compare/0d6b2e32f598d772aed094038022a6a588fdfc5a...4d5d876d946a4f5ac174a7f68e16f4dd9b5f9f68]
> This generalizes the one-line fix merged under SOLR-18565 (PR #5193) and the 
> assertion direction of the author's own BATS work; it is filed separately 
> because its scope is the whole suite, not the single test_ssl case.
> h3. Verification and limits
> Proven on Linux: the Picocli-selected cases pass 18/18 on JDK 21 and on JDK 
> 25; the batch-failure controls above pass (old test accepts the injection, 
> hardened test rejects it); tidy is clean and {{:solr:packaging:check -x 
> test}} passes.
> Not yet proven, stated plainly: the legacy TLS legs show connection-refused 
> failures in the sandbox they ran in, the client-hostname policy control needs 
> a host with more tmpfs headroom than any host available here, and 
> {{test_rolling_upgrade.bats}} needs Docker, which is not available here. An 
> upstream CI run is the natural place to settle those three.
> 🤖 _AI text above_ 🤖 _(reviewed by Nick Shanin)_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to