From a0c59adf71506b8808de276b1288a319424ee71a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 16 Jun 2011 22:54:40 +0000 Subject: replace fchmod()-based heartbeat with raindrops 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. --- test/unit/test_droplet.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/unit/test_droplet.rb (limited to 'test/unit/test_droplet.rb') 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 -- cgit v1.2.3-24-ge0c7