Skip to content

Add rpcv2Cbor protocol test for multibyte UTF-8 text, integer-encoded floating point, and negative-integer timestamps - #3253

Open
luigi617 wants to merge 3 commits into
smithy-lang:mainfrom
luigi617:main
Open

luigi617 wants to merge 3 commits into
smithy-lang:mainfrom
luigi617:main

Conversation

@luigi617

Copy link
Copy Markdown
Contributor

Background

Add rpcv2Cbor protocol test vectors that pin the on-the-wire CBOR encoding for previously untested cases: multibyte UTF-8 text (a string value and a map key, asserting the text-string length is a UTF-8 byte count, not a UTF-16 code-unit count); integer-encoded floating point (float/double deserialized from CBOR integers whose 2-, 4-, and 8-byte argument markers collide with the FLOAT16/32/64 minor values, asserting dispatch on the major type first); and negative-integer timestamps (pre-epoch values as CBOR negative integers, single- and multi-byte, asserting the sign is preserved).

These encodings are valid per RFC 8949 and the rpcv2Cbor spec but were not covered by the shared suite. The gaps let non-interoperable behavior pass unnoticed — the underlying defects survived round-trip tests because the same implementation encoded and decoded them consistently, so only wire-format assertions catch them. Pinning the wire bytes in the shared suite protects every SDK that consumes it against regressions.

Testing

  • ./gradlew :smithy-protocol-tests:build — the model validates and the projection builds; each test body was decoded back to CBOR and checked against its params
  • End-to-end against smithy-kotlin

Links


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

@github-actions

Copy link
Copy Markdown
Contributor

This pull request does not contain a staged changelog entry. To create one, use the ./.changes/new-change command. For example:

./.changes/new-change --pull-requests "#3253" --type feature --description "add rpcv2Cbor protocol test"

Make sure that the description is appropriate for a changelog entry and that the proper feature type is used. See ./.changes/README or run ./.changes/new-change -h for more information.

@luigi617
luigi617 marked this pull request as ready for review August 12, 2026 19:40
@luigi617
luigi617 requested a review from a team as a code owner August 12, 2026 19:40
@luigi617
luigi617 requested a review from sugmanue August 12, 2026 19:40
@luigi617 luigi617 changed the title add rpcv2Cbor protocol test Add rpcv2Cbor protocol test for multibyte UTF-8 text, integer-encoded floating point, and negative-integer timestamps Sep 23, 2026

This branch has not been deployed

No deployments
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