Skip to content

Verify provider-wide algorithm reachability - #3486

Open
geedo0 wants to merge 1 commit into
feat/sha2-allfrom
feat/reachability-test
Open

Verify provider-wide algorithm reachability#3486
geedo0 wants to merge 1 commit into
feat/sha2-allfrom
feat/reachability-test

Conversation

@geedo0

@geedo0 geedo0 commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Context and motivation

This test asserts that all algorithms advertised by the provider match against an inventory and that all algorithms in that inventory are available and served by AWS-LC. This provides breadth coverage for asserting that all algorithms we claim to support are in fact supported.

Description of changes

test/frontend/reachability_test.cc holds one cell per registry row, as an operation id and the row's
primary name.

The inventory. AdvertisedAlgorithmsMatchReachabilityCells queries the provider directly for every
operation id from 1 to OSSL_OP__HIGHEST, collects the primary name of each advertised row, and compares
that against the cell table. The comparison is over duplicate-preserving sorted vectors rather than sets,
so an accidental second registration of the same name fails it as well as a missing cell.

The cells. ReachabilityTest.IsReachableAndAttributed fetches each cell with provider=awslc
required and asserts the implementation it got back reports this provider, so a fallthrough to the
default provider cannot pass as reachability. An operation class with no attributed handler in the switch
fails the cell rather than skipping it, which is what makes the table's growth deliberate for future
operation types.

Testing

The test is the change. Control run: duplicating the SHA2-512/256 registry row fails the inventory. Under
a set comparison the same duplicate passes, which is why the vectors preserve duplicates.

Review considerations

  • The cell table is hand-maintained by design, and the inventory is what makes forgetting it a test
    failure rather than a silent gap.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache
2.0 license and the ISC license.

@geedo0
geedo0 requested a review from a team as a code owner September 4, 2026 12:28
@geedo0
geedo0 force-pushed the feat/reachability-test branch from 2b7c780 to 843ebb2 Compare September 4, 2026 20:00
Keep one attributed reachability cell for every advertised algorithm across every operation class. Compare the cells with the provider's queried registry as duplicate-preserving sorted vectors so missing coverage, stale cells, and duplicate registrations fail visibly.
@geedo0
geedo0 force-pushed the feat/reachability-test branch from 843ebb2 to 70c0a6c Compare September 4, 2026 20:12
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.15%. Comparing base (62c3260) to head (70c0a6c).

Additional details and impacted files
@@              Coverage Diff               @@
##           feat/sha2-all    #3486   +/-   ##
==============================================
  Coverage          78.14%   78.15%           
==============================================
  Files                700      700           
  Lines             125595   125595           
  Branches           17373    17371    -2     
==============================================
+ Hits               98146    98155    +9     
+ Misses             26578    26569    -9     
  Partials             871      871           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🔒 Security ReviewView Report

Please review before merging.

@justsmth
justsmth self-requested a review September 8, 2026 18:02
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.

2 participants