# # Testing OpenWFE # # John Mettraux at openwfe.org # # Sun Oct 29 15:41:44 JST 2006 # # somewhere between Philippina and the Japan # require 'test/unit' require 'openwfe/workitem' require 'openwfe/engine/file_persisted_engine' require 'openwfe/expressions/raw_prog' require 'rutest_utils' include OpenWFE class RestartSleepTest < Test::Unit::TestCase #def setup # @engine = $WORKFLOW_ENGINE_CLASS.new() #end #def teardown #end class RestartDefinition0 < ProcessDefinition def make process_definition :name => "rs0", :revision => "0" do sequence do _sleep :for => "10s" _print "after" end end end end def test_restart_0 dotest FilePersistedEngine end def test_restart_1 dotest CachedFilePersistedEngine end protected def dotest (engine_class) #require 'fileutils' #FileUtils.remove_dir "work" if File.exist? "work" engine = new_engine(engine_class) li = LaunchItem.new(RestartDefinition0) engine.launch(li) sleep(1) engine.stop() $OWFE_LOG.warn "stopped the engine" old_engine = engine engine = new_engine(engine_class) $OWFE_LOG.warn "started the new engine" sleep(11) #sleep(21) s_old = old_engine.application_context["__tracer"].to_s s_now = engine.application_context["__tracer"].to_s #puts "__ s_old >>>#{s_old}<<<" #puts "__ s_now >>>#{s_now}<<<" assert \ (s_old == "" and s_now == "after"), "old : '#{s_old}' / new : '#{s_now}' BAD for #{engine_class}" end def new_engine (engine_class) engine = engine_class.new() tracer = Tracer.new engine.application_context["__tracer"] = tracer #engine.reschedule engine.reload engine end end