From f867b5414048078fc0a35cc353ed06fe1f9e6f55 Mon Sep 17 00:00:00 2001 From: Tom Preston-Werner Date: Thu, 25 Oct 2007 23:55:52 -0700 Subject: [PATCH] timer tests, log output cleanup, rakefile, gitignore --- .gitignore | 3 +++ Rakefile | 7 +++++++ lib/god.rb | 3 ++- lib/god/timer.rb | 1 + test/configs/child_events/child_events.god | 2 +- test/test_timer.rb | 9 +++++++++ 6 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e2c182a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +coverage +pkg +*.log diff --git a/Rakefile b/Rakefile index 8845393..1a8db64 100644 --- a/Rakefile +++ b/Rakefile @@ -25,4 +25,11 @@ end desc "Upload site to Rubyforge" task :site_edge do sh "scp -r site/* mojombo@god.rubyforge.org:/var/www/gforge-projects/god/edge" +end + +desc "Run rcov" +task :coverage do + `rm -fr coverage` + `rcov test/test_*.rb` + `open coverage/index.html` end \ No newline at end of file diff --git a/lib/god.rb b/lib/god.rb index ec04c4c..16524e6 100644 --- a/lib/god.rb +++ b/lib/god.rb @@ -89,7 +89,8 @@ module Kernel def abort(text = nil) $run = false applog(nil, :error, text) if text - text ? abort_orig(text) : exit(1) + # text ? abort_orig(text) : exit(1) + exit(1) end alias_method :exit_orig, :exit diff --git a/lib/god/timer.rb b/lib/god/timer.rb index 553539d..913267a 100644 --- a/lib/god/timer.rb +++ b/lib/god/timer.rb @@ -53,6 +53,7 @@ module God message = format("Unhandled exception (%s): %s\n%s", e.class, e.message, e.backtrace.join("\n")) applog(nil, :fatal, message) + sleep INTERVAL end end end diff --git a/test/configs/child_events/child_events.god b/test/configs/child_events/child_events.god index f63c23c..df95d35 100644 --- a/test/configs/child_events/child_events.god +++ b/test/configs/child_events/child_events.god @@ -19,7 +19,7 @@ God.watch do |w| # determine when process has finished starting w.transition([:start, :restart], :up) do |on| on.condition(:process_running) do |c| - # c.running = true + c.running = true end # failsafe diff --git a/test/test_timer.rb b/test/test_timer.rb index e384803..f6c8ae2 100644 --- a/test/test_timer.rb +++ b/test/test_timer.rb @@ -51,6 +51,15 @@ class TestTimer < Test::Unit::TestCase assert_equal 1, @t.events.size end + def test_time_should_recover_from_exceptions + @t.expects(:trigger).raises(Exception.new) + no_stdout do + @t.schedule(stub(:interval => 0)) + sleep(0.3) + @t.schedule(stub(:interval => 0)) + end + end + # join def test_join_should_join -- 2.11.4.GIT