* 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.
* Update test_integration files per PR #1956
test_integration_cluster.rb
Request handling during server TERM - two tests
`#test_term_closes_listeners_tcp`
`#test_term_closes_listeners_unix`
using `#term_closes_listeners`
Send requests 10 per second. Send 10, then :TERM server, then send another 30.
No more than 10 should throw Errno::ECONNRESET.
Request handling during phased restart - two tests
`#test_usr1_all_respond_tcp`
`#test_usr1_all_respond_unix`
using `#usr1_all_respond`
Send requests 1 per second. Send 1, then :USR1 server, then send another 24.
All should be responded to, and at least three workers should be used
Stuck worker tests - two tests
`#test_stuck_external_term_spawn`
Tests whether externally TERM'd 'stuck' workers are proper re-spawned.
`#test_stuck_phased_restart`
Tests whether 'stuck' workers are properly shutdown during phased-restart.
helper files/methods changes
1. helper file changes to allow binding to TCP or UNIX, see kwarg unix:
2. Skip on Windows for signal TERM
* Misc updates, debug output, cleanup
* Add comments
* fix test_int_signal_with_background_thread_in_jruby per review
* TestIntegrationCluster#term_closes_listeners - add interleaved assert
* cluster.rb - remove duplicate Worker#term? method