-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run tests on TruffleRuby, all tests pass now #2198
Conversation
* Otherwise they could GC in the middle of the test, and the files could then be deleted.
* There is no point to decode the bytes since we are closing the socket in Puma::MiniSSL::Socket#close. * Also, calling #engine_read_all might cause further SSL errors, which could hide the first SSL error. This notably happens in TestPumaServerSSLClient#test_verify_fail_if_no_client_cert if the server is faster than the client. The error in that case is "System error: Success - 0 (Puma::MiniSSL::SSLError)" which is not actually an error, but there is also nothing to read further from SSL.
@port = 3307 if @port == 3306 # MySQL on Actions | ||
@port | ||
} | ||
TCPServer.open('127.0.0.1', 0) do |server| |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏
* 60 doesn't seem enough in CI for TestThreadPool#test_trim on TruffleRuby.
4af1bda
to
122a1ee
Compare
* This should speed up CI a bit for those jobs.
122a1ee
to
646d73a
Compare
Thanks so much @eregon and Shopify! 🎉 |
:eagain | ||
else | ||
:drop | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the record, this might be related to a bug in OpenSSL, mentioned in ruby/openssl#355 (comment)
Anyway, it seems safer to not call to SSL anymore if we are in such a state, as this commit does.
Description
This PR improves the reliability of tests and as a result all tests now pass on TruffleRuby.
One extra fix was needed in TruffleRuby (oracle/truffleruby@2e046e4).
A major part of getting TruffleRuby to pass Puma's tests was by done by Shopify contributors to TruffleRuby (especially the signal stuff).
Since tests pass on TruffleRuby, I also moved TruffleRuby along with other tested versions in CI, so failures are no longer ignored.
I ran the CI twice in GitHub Actions and it passed in both cases.
cc @chrisseaton @nateberkopec
Your checklist for this pull request