Currently, helpers/tmp_path.rb uses `#capture_exceptions` to run cleanup code, which is called several times for each test.
Adjusted code in it and test/helpers.rb to run once, after teardown.
This also allows asserts in teardown to work properly, see test_integration_pumactl.rb.
Also, `Tempfile.new` attaches finalizers to each object, which seemed to be intermittently bothering JRuby.
Changed to `Tempfile.create`
test_redirect_io.rb - small fix for setup and teardown.
helper.rb - changed `if ENV['CI']` conditional so that local and cloud CI both use TimeoutEveryTestCase..
Fix RuboCop in Update const.rb
* Support skip_on :truffleruby
* Remove unused variable declaration
* Properly skip tests which need fork
* Improve NO_FORK_MSG
* Keep the Tempfile instances alive in test_redirect_io.rb
* Otherwise they could GC in the middle of the test, and the files could
then be deleted.
* Use a better way to find a free port
* Read directly from the socket in #read_and_drop
* 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.
* TruffleRuby should pass the CI now, remove from allowed failures
* Use a timeout of 120 for all non-MRI implementations
* 60 doesn't seem enough in CI for TestThreadPool#test_trim on TruffleRuby.
* Fix check for cluster mode in integration tests
* Improve integration tests to fail more clearly if the pid file does not exist
* Make integration tests more robust
* Add skips for unreliable or racy tests
* Add ChangeLog entry
* No need to run RuboCop on non-MRI implementations
* This should speed up CI a bit for those jobs.