Repository navigation
test(protocol): vendor wire-format.json 1.3.0, run constructed and reject vectors (LAB-6506) - #448
Conversation
…ject vectors (LAB-6506) Vendor test-vectors/wire-format.json 1.3.0 from cachekit-io/protocol @ efe56e5. The vectors group is unchanged, so the existing envelope tests keep their counts. The constructed ratio-wrap vector decodes through ByteStorage.retrieve to its constructed input; on 64-bit wheels this is a regression guard, not proof for a 32-bit target. Each reject vector is refused with the class and message its row names. The allocation bound the spec asks for on two reject vectors is not asserted: it needs an allocation probe in the pinned cachekit-core's CI.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 40 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: Repository: cachekit-io/cachekit-py/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Providing Context (Files & MCPs)Add these hints in your PR description (or a comment) to unlock deeper checks:
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
Vendors
test-vectors/wire-format.json1.3.0 from cachekit-io/protocol @efe56e5(sha2565d72ca1f…) and runs its two new vector groups through the realByteStorage.retrieveFFI call. Test-only; nothing undersrc/orrust/changes.FIXTURE_SHA256and the module docstring updated. Thevectorsgroup is unchanged from 1.1.1, so the existing tests and their 7 + 7 counts are untouched.envelope_ratio_product_wraps_32_bitsis rebuilt from its{hex, count}segment lists (4,295,001 B envelope, 8,523,079 B input) and must decode to exactly the input with formatmsgpack. cachekit-py ships 64-bit wheels only, so this is a regression guard, not proof for a 32-bit target; the docstring says so.retrieveand must raise the class and message its row names:EnvelopeIntegrityErrorfor over-cap, zero-length, ratio bomb, length mismatch and checksum; a plainValueError(asserted not to beEnvelopeIntegrityError) for the u32 wrap, which is rejected at the range-checked decode. The six names are pinned as a literal set, so an emptied or renamed group fails. The zero-length case carries the ratio message because cachekit-core uses one error variant for its zero-length and ratio checks; withoriginal_size0 only the zero-length check can fire.reject_original_size_over_capandreject_ratio_bomb. An SDK over cachekit-core may rely on core's allocation probe only once it runs in CI on the pinned core version, and no released core has it yet..secrets.baseline: entries for the fixture's new hex strings; the new pin carries an inline# pragma: allowlist secret, so the old pin's entry is removed.Verified:
uv run pytest tests/unit(3818 passed),ruff check,ruff format --check, and every pre-commit hook including detect-secrets. A mutation check (swapping two expected messages, and the u32 case's class) fails the reject test as expected.No docs needed: test-only.
Closes LAB-6506