Skip to content

Conversation

@k-tsuchiya-jp
Copy link

What changed

  • Add Ruby 4.0 to the CI matrix.
  • Relax the bind timeout integration test assertion to tolerate
    minor variations in timeout error messages.

Why this is needed

Ruby 4.0 introduces changes in socket timeout handling, which can
result in different timeout error message wording compared to
previous Ruby versions.

The existing test relied on exact string matching and could fail
on Ruby 4.0 even when a timeout occurred correctly. The assertion
has been updated to check whether the error message contains one
of the expected fragments instead, making the test robust across
Ruby versions.

Related Ruby change:
ruby/ruby#15582

Notes

This PR does not change runtime behavior. It only updates CI
coverage and improves test stability when running on Ruby 4.0.

Make bind timeout test robust against message variations

Ruby 4.0 changed socket timeout handling, which can result in
different timeout error messages compared to Ruby 3.x
(see ruby/ruby#15582).

The bind timeout integration test previously relied on exact
string matching, causing failures despite valid timeouts.
This change relaxes the assertion to check for expected message
fragments instead, making the test resilient across Ruby versions.
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