Skip to content

test: document intentional error tolerance in MaxOutputBytes unlimited subtest#29

Closed
Copilot wants to merge 3 commits into
reduce-allocationsfrom
copilot/sub-pr-22-f0c12add-6476-44ca-bc1c-1f3da3afeddf
Closed

test: document intentional error tolerance in MaxOutputBytes unlimited subtest#29
Copilot wants to merge 3 commits into
reduce-allocationsfrom
copilot/sub-pr-22-f0c12add-6476-44ca-bc1c-1f3da3afeddf

Conversation

Copilot AI commented Mar 11, 2026

Copy link
Copy Markdown

A reviewer flagged that the "unlimited" subtest in TestMaxOutputBytes ignores the error from UnmarshalWithOptions, suggesting it should assert err == nil. The test's intent is actually the opposite: the crafted payload uses an oversized array header that will hit EOF before all declared elements are read, so an error is expected. The test only verifies the decoder doesn't reject the input outright or decode zero elements.

Changes

  • xdr3/decode_limits_test.go: Added an inline comment to the "unlimited" subtest explaining that err is intentionally not checked — EOF is expected from the oversized header, and the assertion only guards against zero-element output.

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

tamirms and others added 2 commits March 11, 2026 12:53
… limits

Add a MaxOutputBytes field to DecodeOptions that tracks cumulative
decoded output size across a single decode operation. Before each
allocation (array element, union arm, optional field, opaque data),
the size is added to a running total; if it exceeds MaxOutputBytes
the decode is aborted with ErrOutputBytesExceeded.

Key changes:
- Add TrackOutputBytes method and TrackOutputBytesOf[T] generic helper
- Cap array pre-allocation at 256 elements, growing via append beyond that
- Track allocations in DecodeFixedOpaque, decodeArray, decodeUnion,
  decodeMap, and allocPtrIfNil
- Bump minimum Go version to 1.25 for generics support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: tamirms <1445829+tamirms@users.noreply.github.com>
Copilot AI changed the title [WIP] Work in progress to address feedback on MaxOutputBytes decode test: document intentional error tolerance in MaxOutputBytes unlimited subtest Mar 11, 2026
@tamirms tamirms force-pushed the reduce-allocations branch from 112f917 to c677e1b Compare March 11, 2026 18:52
@tamirms

tamirms commented Mar 11, 2026

Copy link
Copy Markdown

Closing — improvements from this PR have been incorporated into #22 where applicable. Thank you!

@tamirms tamirms closed this Mar 11, 2026
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