Conversation
- ffi/lib/llhttp.rb: add empty line after module inclusion (Layout/EmptyLinesAfterModuleInclusion). - spec/initialize.rb: silence Lint/RedundantRequireStatement; the require is still needed on Ruby < 3.x where Pathname isn't autoloaded. - spec/acceptance/server_spec.rb: poll until the forked server responds instead of a single curl under a 1s timeout (removes a cold-start race), and skip it on Ruby < 3.2 since the async test stack dropped 3.1 and bundle then resolves to a stack that can't serve the request. llhttp core is still covered by the rest of the suite on those versions. - ci.yml: add Ruby 4.0 to the FFI and MRI test matrices.
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.
Follow-up to #37, which surfaced three CI issues. Two are incidental (not caused by the typed-data change) and one extends coverage:
ffi/lib/llhttp.rb): add the empty line afterextend FFI::LibrarythatLayout/EmptyLinesAfterModuleInclusionnow requires. Also silenceLint/RedundantRequireStatementinspec/initialize.rb— newer rubocop flagsrequire "pathname"as redundant, but it's still needed on Ruby < 3.x wherePathnameisn't autoloaded (verified: not autoloaded on 2.6), so the require stays with an inline disable.spec/acceptance/server_spec.rb: the spec asserted on a singlecurlunder a 1-secondTimeout, which raced the fork + Async reactor cold start and failed intermittently on loaded runners (e.g. 3.1). Now it polls until the forked server responds, under a generous 10s deadline — a slow start costs a couple of retries instead of a failure, and a genuinely broken server still fails.4.0to the FFI and MRI test matrices. Use typed data API #37's whole purpose is the TypedData API needed for Ruby 4, but CI never tested it. Verified locally on 4.0.2: both suites build and pass (51/51 each), andserver_specis stable across 25 consecutive runs.