about summary refs log tree commit homepage
path: root/t
DateCommit message (Collapse)
2011-03-15bump Unicorn dependency to 3.5.0
Latest and greatest :D
2011-03-10test_isolate: bump dependencies
New sendfile gem will give us IO#trysendfile. We might as well use and test the latest and greatest versions of everything else since thats what users pull in by default.
2011-02-15tests: updates for cramp 0.12
The Cramp::Controller namespace is gone.
2011-02-07Revert t/bin/unused_listen simplification
This conflicts with ports clients may automatically use in the ephemeral range. This reverts commit c9a7560bb684bbdadb641ebc7597303f38c37d4f.
2011-02-07new test for optional :pool_size handling
This will help prevent us from breaking :pool_size in the future.
2011-02-04rename XAcceptEpoll to XEpoll
It's too long especially since XEpollThreadPool is planned :>
2011-02-04test_isolate: use latest Unicorn
It supports IPv6 and pulls in a better Kgio. Since Unicorn defaults to ":tcp_nopush => true", we need to flip it back to false to be compatible with the types of apps Rainbows! is targetted as.
2011-02-04tests: replace several sed invocations with ed
ed can do in-place editing portably, unlike sed.
2011-02-04epoll: handle EINTR properly in Ruby-space
We can't work around it effectively in the C extension itself. This requires the latest sleepy_penguin gem.
2011-02-04test_isolate: only load sleepy_penguin under Linux
It's Linux-only, after all
2011-02-04t/bin/unused_listen: simplify this
Binding to a random port is much easier this way
2011-01-27test for client_max_body_size being zero
Some users never, ever accept uploads, so we should test for it.
2011-01-26GNUmakefile: only enable epoll-based models in Linux
epoll is Linux-only right now. kqueue probably isn't worth supporting directly (and even direct epoll support is debatable given the current GVL situation)
2011-01-24initial XAcceptEpoll concurrency model
Edge-triggered epoll concurrency model with blocking accept() in a (hopefully) native thread. This is recommended over Epoll for Ruby 1.9 users as it can workaround accept()-scalability issues on multicore machines.
2011-01-21epoll: use newer sleepy_penguin
We can eliminate the State module to simplify our code since 1.3.x keeps better track of things.
2011-01-19dev_fd_response: do not send chunks to 1.0 clients
chunked Transfer-Encoding is only valid for HTTP/1.1
2011-01-19t0035: kgio-pipe-response works everywhere
Or at least it should :)
2011-01-19t0023: use skip_models helper
we need to get in the habit of using this more
2011-01-19initial edge-triggered epoll model
Coolio and EventMachine only use level-triggered epoll, but being Rainbows!, we live on the EDGE!
2011-01-19tests: content-md5 tests shut down connection
This makes content-md5 tests much faster since we no longer wait for the server to to timeout.
2011-01-14t0050: improve test reliability
normal signals can get lost easily :<
2011-01-14tests: bump rack-fiber_pool version to 0.9.1
We always try to track the latest and greatest. We've also updated the test to actually test concurrency since rack-fiber_pool reuses recent fibers now.
2011-01-11add write-on-close test from Unicorn
We need to ensure this esoteric feature keeps working for some people.
2011-01-11event_machine: buffer reads when waiting for async.callback
We cannot trigger on_read events and invoke the HTTP parser and modify @env while we're waiting for an application to run async.callback. We also need to clear (and *maybe* re-set) @deferred if we're writing from async.callback
2011-01-11coolio: enable async.callback for one-shot body responses
The lack of an equivlent to EM::Deferrable prevents us from doing streaming/trickling responses, but a one-shot body should work fine for Coolio and generating dynamic responses.
2011-01-07redirect unexpected test output to /dev/null
We check the return code anyways, and spewing random binary data to the terminal with verbosity on is not a good idea.
2011-01-07test_isolate: bump versions and simplify
We can't possibly keep track of all sub-dependencies, so only declare primary dependencies until we find a known problem with a sub-dependency.
2011-01-07test_isolate: prevent concurrent execution
I realize this lock overly covers different versions of Ruby, but it's simple and we don't need to invoke isolate too often (we hope).
2011-01-07tests: bump async_sinatra dependency to 0.4.0
It's out and it works, so why not.
2011-01-07bump dependency on Rack to 1.2.1
We need to split out Cramp tests to Isolate to a different path, which sucks, but oh well. Cramp hasn't had a release in a while...
2011-01-06event_machine: refactor async.callback for keepalive
async.callback will be useful with Coolio (and more!) soon, so ensure it works as well as the rest of Rainbows!
2011-01-05disable Nagle's algorithm by default
Nagle's algorithm is harmful with the write-write-read sequence during keepalive, so we disable it performance for users using keepalive. We always write headers with a separate write because Rack response bodies may not always be ready for writing when headers are. This requires Unicorn 3.3.0
2011-01-05Bump unicorn dependency to 3.3.0
This means we can remove Time.now.httpdate in the next commit
2011-01-05tests: ensure 416 responses do keepalive
This is useful for clients that specify a bad range, we can preserve the connection for them to specify a good response.
2011-01-05send proper 416 responses
416 responses without a body should respond with a zero Content-Length and a Content-Range that allows clients to specify a proper range in the future. rfc2616, section 14.16 says: > A server sending a response with status code 416 (Requested > range not satisfiable) SHOULD include a Content-Range field > with a byte-range- resp-spec of "*". The instance-length > specifies the current length of the selected resource.
2011-01-04t9000: disable this test for CoolioThread* models
It's not appropriate to use AppPool middleware with these. It was disabled for RevThread*, too.
2011-01-04return 206 status for partial sendfile responses
Although curl did not complain, 206 is the correct error code for partial HTTP responses.
2011-01-04coolio_thread_*: fix 416 response handling
After beefing up and enabling byte range tests for "sendfile" (and no just IO.copy_stream), we noticed threaded-Coolio variants did not handle invalid byte ranges correctly.
2011-01-04t0022: fix up broken/incomplete tests
Tests for checking the Content-Range were totally broken, but fortunately the code itself works.
2010-12-28several response body#close fixes
Some middlewares require the Rack env to be preserved all the way through to close, so we'll ensure all request models preserve it. We also need to better response body wrappers/proxies always get fired properly when returning. IO.copy_stream and "sendfile" gem users could hit cases where wrappers did not fire properly.
2010-12-28enable the keepalive_requests config option
This will allow servers to limit the number of keepalive requests that can be made over a single connection to prevent denial-of-service and also to improve fairness in load-balancing.
2010-12-27coolio*: favor Coolio over Rev
We still use and define Rev internally, but that's mostly just manual labor of converting stuff over.
2010-12-27t0019: add CPU usage test
This requires manual verification :<
2010-12-27test-lib: fix bug in setting worker_connections
We need to be able to set this with keepalive_timeout simultaneously.
2010-12-27t0015: even less racy fix
We need to ensure the first worker has started and is running before attempting to signal the reload.
2010-12-27t0015: increase reliability of test
The worker process may fork before the original process is killed during daemonization.
2010-12-27initial cool.io support
Cool.io is the new name for Rev. We'll continue to support Rev until Cool.io breaks backwards compatibility. Rev may not be supported if Cool.io is.
2010-12-26rev_thread_spawn: disable under Ruby 1.8
It still burns CPU at the first sign of doing anything interesting, so stop it. Ruby 1.9 is the future :P
2010-12-26bump Unicorn dependency
Unicorn 3.2.1 gives us an improved HttpParser#next? that preserves state until the next HttpParser#parse call.
2010-12-20thread_timeout: fix bad comparison
This was causing unrelated requests to get killed every +timeout+ seconds, instead of only the ones that were running too long. Noticed-by: ghazel@gmail.com ref: http://mid.gmane.org/AANLkTi=7OhyTwkHsp_rXU7Gp1PokihiQ9bJigpO-BfN6@mail.gmail.com