diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-06-16 22:54:40 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-06-16 23:14:14 +0000 |
commit | a0c59adf71506b8808de276b1288a319424ee71a (patch) | |
tree | e627c424701799b82a5bfea06cb45cf1c2d99efd /test/unit/test_droplet.rb | |
parent | 95f543a9583e58c56b1c480df84b4b88e6669403 (diff) | |
download | unicorn-a0c59adf71506b8808de276b1288a319424ee71a.tar.gz |
This means we no longer waste an extra file descriptor per worker process in the master. Now there's no need to set a higher file descriptor limit for systems running >= 1024 workers.
Diffstat (limited to 'test/unit/test_droplet.rb')
-rw-r--r-- | test/unit/test_droplet.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/unit/test_droplet.rb b/test/unit/test_droplet.rb new file mode 100644 index 0000000..73cf38c --- /dev/null +++ b/test/unit/test_droplet.rb @@ -0,0 +1,28 @@ +require 'test/unit' +require 'unicorn' + +class TestDroplet < Test::Unit::TestCase + def test_create_many_droplets + now = Time.now.to_i + tmp = (0..1024).map do |i| + droplet = Unicorn::Worker.new(i) + assert droplet.respond_to?(:tick) + assert_equal 0, droplet.tick + assert_equal(now, droplet.tick = now) + assert_equal now, droplet.tick + assert_equal(0, droplet.tick = 0) + assert_equal 0, droplet.tick + end + end + + def test_shared_process + droplet = Unicorn::Worker.new(0) + _, status = Process.waitpid2(fork { droplet.tick += 1; exit!(0) }) + assert status.success?, status.inspect + assert_equal 1, droplet.tick + + _, status = Process.waitpid2(fork { droplet.tick += 1; exit!(0) }) + assert status.success?, status.inspect + assert_equal 2, droplet.tick + end +end |