This moves away from IO.select to using nio4r to allow the reactor to
scale beyond 1024 active clients. This happens when folks are using
websockets usually.
* 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
* Bump minitest version.
* Add basic test helper file.
* Use minitest for web server tests.
* Use Minitest for unix socket tests.
* Use Minitest for ThreadPool tests.
* Use Minitest for TCP-Rack tests
* Use Minitest for TCPLogger tests.
* Add missing helper to test helpers.
* Use Minitest for Rack server tests.
* Use Minitest for Rack handler tests.
* Use Minitest for Puma::Server tests.
* Use Minitest for Puma::Server with SSL tests.
* Use Minitest for persisten connections tests.
* Require puma in test_helper file.
* Use minitest for Puma::NullIO tests.
* Remove unnecessary requires on test files.
* Use Minitest for MiniSSL tests.
* Use Minitest for IOBuffer tests.
* Require bundler/setup in Rakefile.
* Use Minitest for HttpParser tests.
* Use Minitest for Puma::Configuration tests.
* Use Minitest for Puma::CLI tests.
* Bump Minitest version for Ruby 2.1 Gemfile.
* Use Minitest for integration tests.
* Use Minitest for Puma::App::Status tests.
* Remove test-unit from Gemfiles.
* Add timeout helper to Minitest::Test.
* Use Minitest for Puma::Binder tests.
* Remove testhelp file.
* Add missing require to Puma::Binder tests.
* Prefer require instead of require_relative.
Because frameworks like rails dependent on rack, if puma truly wants to
be able to reload new code and thus new versions of rails, it has to be
able to reload rack as well.
Having a dependency on rack held by puma prevented that from happening
and so that dependency has been removed.