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 00000000..e2c182a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +coverage +pkg +*.log diff --git a/Rakefile b/Rakefile index 88453939..1a8db642 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 ec04c4cd..16524e6d 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 553539d5..913267a2 100644 --- a/lib/god/timer.rb +++ b/lib/god/timer.rb @@ -53,6 +53,7 @@ def initialize 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 f63c23cb..df95d355 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 e3848035..f6c8ae26 100644 --- a/test/test_timer.rb +++ b/test/test_timer.rb @@ -51,6 +51,15 @@ def test_unschedule_should_remove_conditions 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