Repository navigation
Add AOB parser fuzz coverage and document enforced CI protections - #72
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
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.



Outcome and linked issue
Add executable property-based fuzz coverage for the AOB pattern parser identified by Scorecard's Fuzzing finding. Three xUnit facts run 1,000 FsCheck cases each in the existing Debug and Release suites: arbitrary UTF-16 against an independent grammar, generated byte/wildcard normalization, and invalid-character insertion including NUL and unpaired surrogates.
The user-authorized GitHub ruleset change is already live:
mainrequires an up-to-dateCI / Gatefrom GitHub Actions and verified commit signatures. Existing PR, deletion and force-push protections remain; reviewer approvals remain optional. A fresh main Scorecard run removed the missing-status-check warning and raised Branch-Protection from 3 to 4. Its remaining review warnings are retained honestly.Scope and architectural ownership
Client test coverage and contributor guidance only. No production parser or SDK implementation changes. Update the Scorecard workflow comment to describe the actual protection policy.
Dependencies and containing artifacts
Add test-only FsCheck 3.6.0 with
PrivateAssets=all; regenerate the Abstractions test project's source and production-package lock files. The pinned SDK submodule and production SDK package version are unchanged.Validation actually performed
3fd8c9fa82c89bad9d4f483c44f7537a41478ab3API and compatibility
No public API, lifecycle, experimental-API, or consumer behavior changes. Fuzz tests are bounded, offline and use stable test names; FsCheck reports seeds and shrunk counterexamples on failure. The new dependency is confined to tests.
Evidence
The three properties are
ArbitraryUtf16MatchesThePatternGrammarWithoutThrowing,GeneratedBytesAndWildcardsPreservePositionsAndCanonicalText, andInvalidCharactersAreRejectedAtEveryGeneratedInsertionPoint. See CONTRIBUTING.md for the targeted command.Scorecard's Fuzzing alert remains open until this code reaches main and a fresh scan recognizes it. Do not treat a passing portable test as native qualification. Repository age, independent human reviews, and OpenSSF badge evidence are separate and are not fabricated or dismissed by this change.
Documentation and review checklist