* 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
* Add frozen string literal everywhere it wasnt already
* Enforce stopgap for tests
* Small amount of integration test cleanup
* Parallelize and freeze Test_app_status
* Big cleanup for test_binder
* Whitespace fix
When a test that boots a server fails it may not properly close out the port. When this happens there is a cascading failure as all other tests that use that port also fail. It becomes hard to find the actual failure reason. This commit uses a new number of every time port is used.
Moves the require for puma/events from the individual test files and
into the main test helper.
The reason for this was while I was debugging the `test_puma_server.rb`
tests I was getting an error for an uninitialized constant for
`Puma::Event`.
Moving the require from the individual files to the test help means the
`puma/events` will always be included instead of having to remember to
do that. It makes debugging individual tests locally easier.
* Run integration tests in default
* Add retry in CI
* Convert integration test to ruby script for Windows
* Attempt to add finicky tests back
* Possible kinda janky solution
* Only run master branch on travis (syntax fix)
* Don't do integration tests on windows
Can't be bothered to make those tests crossplatform
* Remove join timeouts on read, let the main test timeout do it
* Assert once
* Sigh.
* temporary workaround for https://bugs.ruby-lang.org/issues/13632
Purging interrupt queue if IOError was caught.
* fixing only if mri
* optimization to avoid redundant checks in empty queue
* scoping fix to only affected versions
* serving ruby version from mkmf
* safe invoking for the workaround
* switching to preprocessor vars
* purging queue on runtime error
* rubocop fix
* covering workaround
* improving names
* styling
* rubocop fixes
* improved test reporting
* wording
* condition
* improving comment
* bugfix moved to separate gem: https://rubygems.org/gems/stopgap_13632
* using stopgap_13632 in gemfile to fix the builds
* requiring stopgap for tests
running `rake` loads all files starting with `test_` which is not supposed to also load the helper,
since the helper should be loaded by each test and is not a test itself.