[
https://issues.apache.org/jira/browse/THRIFT-6307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Geyer updated THRIFT-6307:
-------------------------------
Fix Version/s: (was: 0.26.0)
> Strengthen the wire-length size-limit tests (assert the error and the
> requested byte count)
> -------------------------------------------------------------------------------------------
>
> Key: THRIFT-6307
> URL: https://issues.apache.org/jira/browse/THRIFT-6307
> Project: Thrift
> Issue Type: Test
> Components: D - Library, JavaME - Library, Lua - Library, Smalltalk
> - Library
> Reporter: Jens Geyer
> Priority: Minor
>
> h2. Background
> The checks on wire-declared lengths in several bindings are covered by tests
> that assert only that _something_ was raised. That also passes on code that
> never enforced a bound, so the tests do not actually pin the behaviour they
> cover.
> h2. Items
> * Assert the specific error type/code, not merely that an error occurred
> (Lua, Java ME, D).
> * Assert the number of bytes requested from the transport: a bounded reader
> requests at most the cap, an unbounded one requests the full declared size.
> This is the assertion that actually distinguishes the two. The Smalltalk
> suite already does this and is a good model.
> * Add boundary cases: {{size == limit}} is accepted and {{limit + 1}} is
> rejected.
> * Lua: the size-limit test uses Lua 5.3+ bitwise operators ({{|}}, {{&}},
> {{~}}, {{<<}}, {{>>}}), which fail to _parse_ on Lua 5.1/5.2 and can break
> the whole suite on those runtimes. Use a 5.1-compatible construction.
> * Lua: {{time_read_all}} is timing-based and can be flaky under load.
> _Drafted with AI assistance (Claude Opus 4.8); reviewed and filed by Jens
> Geyer._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)