From 7e8b1f6abe561e33644ca2bf30dc587e0bfac3c0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 27 Sep 2011 19:32:38 -0700 Subject: watcher: add peak times for statistics It could be useful to know when the first and last peak time of a maximum was. --- test/test_watcher.rb | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'test') diff --git a/test/test_watcher.rb b/test/test_watcher.rb index 11a2d86..f22a954 100644 --- a/test/test_watcher.rb +++ b/test/test_watcher.rb @@ -117,4 +117,45 @@ class TestWatcher < Test::Unit::TestCase status, headers, body = @app.call(env) assert_equal "1", headers["X-Current"], headers.inspect end + + def test_peaks + env = @req.class.env_for "/active/#@addr.txt" + status, headers, body = @app.call(env.dup) + start = headers["X-First-Peak-At"] + assert headers["X-First-Peak-At"], headers.inspect + assert headers["X-Last-Peak-At"], headers.inspect + assert_nothing_raised { Time.parse(headers["X-First-Peak-At"]) } + assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) } + before = headers["X-Last-Peak-At"] + + env = @req.class.env_for "/queued/#@addr.txt" + status, headers, body = @app.call(env) + assert_nothing_raised { Time.parse(headers["X-First-Peak-At"]) } + assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) } + assert_equal before, headers["X-Last-Peak-At"], "should not change" + + sleep 2 + env = @req.class.env_for "/active/#@addr.txt" + status, headers, body = @app.call(env.dup) + assert_equal before, headers["X-Last-Peak-At"], headers.inspect + + @ios << @srv.accept + assert_raises(Errno::EAGAIN) { @srv.accept_nonblock } + sleep 0.1 + status, headers, body = @app.call(env.dup) + assert headers["X-Last-Peak-At"], headers.inspect + assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) } + assert before != headers["X-Last-Peak-At"] + + queued_before = headers["X-Last-Peak-At"] + + sleep 2 + + env = @req.class.env_for "/queued/#@addr.txt" + status, headers, body = @app.call(env) + assert_equal "0", headers["X-Current"] + assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) } + assert_equal queued_before, headers["X-Last-Peak-At"], "should not change" + assert_equal start, headers["X-First-Peak-At"] + end end if RUBY_PLATFORM =~ /linux/ -- cgit v1.2.3-24-ge0c7