about summary refs log tree commit homepage
path: root/t/GNUmakefile
DateCommit message (Collapse)
2011-05-09add XEpollThreadPool concurrency option
This is probably friendlier on server resources in the worst case than XEpollThreadSpawn but may perform worse in the client client-visible way, too.
2011-04-29xepoll_thread_spawn: initial implementation
Whee! This is going to be awesome.
2011-04-11t: only enable Revactor tests under 1.9.2 for now
Revactor doesn't seem to work under 1.9.3dev, and Revactor is dead upstream.
2011-02-04rename XAcceptEpoll to XEpoll
It's too long especially since XEpollThreadPool is planned :>
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-19initial edge-triggered epoll model
Coolio and EventMachine only use level-triggered epoll, but being Rainbows!, we live on the EDGE!
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-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-08-01tests: do not clobber existing RUBYLIB
We may want to try some external libraries for some tests via RUBYLIB/RUBYOPT while doing development.
2010-07-27rev_thread_pool: stop supporting this under Ruby 1.8
It hits 100% CPU usage and Rev's 1.8 support when mixed with threads is currently suboptimal. Unfortunately our tests can not check for 100% CPU usage, so I had to *gasp* confirm it by actually starting an app :x This appears to be a fixable bug in Rev, however, and we'll try to fix it as soon as we have time.
2010-06-21tests: enable ActorSpawn test for rbx
2010-06-11update test infrastructure to support Rubinius
Rubinius still has a few issues that prevent 100% support, but it basically works if log rotation or USR2 upgrades aren't required. Tickets for all known issues for Rubinius have been filed on the project's issue tracker. * rbx does not support -i/-p yet, so rely on MRI for that * "io/nonblock" is missing * avoiding any optional Gems for now (EM, Rev, etc..)
2010-06-04tests: make -C $MODEL.tNNNN-foo.sh work again out-of-the box
It was missing dependencies on the first run
2010-06-04tests: cleanup isolate usage
We don't need tmp/ in our top level directory
2010-06-03depend on Isolate ~> 2.0.2 for development
It's useful given all the Gems we support but don't have hard installation dependencies on.
2010-05-26add WriterThreadSpawn concurrency model
2010-05-14add WriterThreadPool concurrency model
This is based on an idea I originally had for Unicorn but never implemented in Unicorn since the benefits were unproven and the risks were too high.
2010-01-07Update docs + tests to reflect Rev 0.3.2 release
Rev 0.3.2 makes performance with Threads* under Ruby 1.8 tolerable.
2009-12-22tests: enable RevFiberSpawn for 1.9
2009-12-02add RevThreadPool concurrency model
This should be like RevThreadSpawn except with more predictable performance (but higher memory usage under low load).
2009-11-29preliminary NeverBlock support with EventMachine
2009-11-27tests: fix bugs with dash in GNUmakefile
One bad thing to defaulting to ksh93 for my tests during development, small cleanups while we're at it, too for extra checks
2009-11-27tests: no need to limit t9000 in multiple places
The test itself already exits immediately if it's running an incompatible concurrency model, so avoid having redundant logic in the GNUmakefile.
2009-11-26tests: enable AppPool test for Revactor and Fiber*
2009-11-26tests: "models" variable may be set in gmake CLI
This lets us make further tests for compatibility without dirtying our working tree.
2009-11-25add FiberPool concurrency model
This is another Fiber-based concurrency model that can exploit a streaming "rack.input" for clients. Spawning Fibers seems pretty fast, but maybe there are apps that will benefit from this.
2009-11-25add FiberSpawn concurrency model
This one seems a easy to get working and supports everything we need to support from the server perspective. Apps will need modified drivers, but it doesn't seem too hard to add more/better support for wrapping IO objects with Fiber::IO.
2009-11-24rework RevThreadSpawn without TeeInput and 1.8 support
Exposing a synchronous interface is too complicated for too little gain. Given the following factors: * basic ThreadSpawn performs admirably under REE 1.8 * both ThreadSpawn and Revactor work well under 1.9 * few applications/requests actually need a streaming "rack.input" We've decided its not worth the effort to attempt to support streaming rack.input at the moment. Instead, the new RevThreadSpawn model performs much better for most applications under Ruby 1.9
2009-11-08initial cut of the RevThreadSpawn model
Seems to pass all tests, but that may only mean our test cases are lacking...
2009-10-31tests: avoid single backquote in echo
It's not portable to FreeBSD 7.2 /bin/sh
2009-10-27revactor: require 0.1.5, remove 0.1.4 workarounds
Also new are added basic HTTP tests for UNIX domain socket handling (for all models, now, of course).
2009-10-26tests: generate all dependencies atomically
Using a "+" suffix alone was not enough protection since we use evil recursive makes and can't share dependency info with parent makes. While this could be done more efficiently (even with recursive make), but it'd be harder to maintain. So we generate the dependencies later to and sacrifice efficiency on the initial run (but rarely/never again).
2009-10-26tests: error out if socat + curl aren't reachable
This makes it easier to figure out why tests are failing for people that forget to read t/README
2009-10-26tests: only load Revactor tests under 1.9.1
Even though our tests do an extra check, it's faster to not unnecessarily invoke the check in the first place.
2009-10-26tests: make large file memory tests more reliable
Use a bigger random_blob and run GC before checking RSS
2009-10-26eventmachine 0.12.8 passes all tests
This means Rainbows::DevFdBody async responses and large file streaming without slurping. This is only with eventmachine 0.12.8, it looks like 0.12.10 changes the attach/watch API...
2009-10-26eventmachine: get basic tests working
log reopens, graceful shutdown, HTTP error responses should all be working now.
2009-10-24tests: allow "make $model" to run tests for that model
This makes it easier to filter functionality by model.
2009-10-24tests: remove symlinks and small files, use Make
This will make it easier to enable and manage tests for new concurrency models.
2009-10-24tests: port all existing tests to TAP library
Everything passes, and "set -e" prevents us from making any stupid mistakes...
2009-10-24tests: prefer "RUBY" to lowercased "ruby"
It's more common form for externally-visible/modifiable variables in Makefiles and shell scripts.
2009-10-20tests: avoid needlessly remaking "rainbows"
The cmp test was completely unnecessary and pointless.
2009-10-18tests: predictable and simpler tempfile management
Instead of using completely random names, we'll use predictable ones since we already depend on them for exit codes and such. This drops our ability to run the same test for the same version of Ruby in the same working tree, but that's an unlikely scenario. While we're at it, avoid remove tempfiles if a test failed. This should make debugging easier.
2009-10-17tests: fix random_blob dependency
2009-10-17tests: add unbuffered tee(1)-like helper
Buffering enabled in tee(1) was making tests more difficult to debug.
2009-10-10tests: create a bad exit code by default
In case the test doesn't complete and somehow doesn't write the exit code, we always want to start with one.
2009-10-10tests: update TRACER examples in makefile
2009-10-10tests: TEST_OPTS => SH_TEST_OPTS
These variables are only for shells in tests