spec/process/system_spec.rb in eye-0.1.11 vs spec/process/system_spec.rb in eye-0.2

- old
+ new

@@ -1,6 +1,5 @@ -# -*- encoding : utf-8 -*- require File.dirname(__FILE__) + '/../spec_helper' describe "Eye::Process::System" do before :each do @process = Eye::Process.new(C.p1) @@ -67,34 +66,48 @@ @process.clear_pid_file (Time.now - @process.pid_file_ctime).should < 0.1.second end - it "with_timeout" do - res = @process.with_timeout(0.5) do - sleep 0.3 - 11 + [C.p1, C.p2].each do |cfg| + it "blocking execute should not block process actor mailbox #{cfg[:name]}" do + @process = Eye::Process.new(cfg.merge(:start_command => "sleep 5", :start_timeout => 10.seconds)) + should_spend(1) do + @process.start! + sleep 1 + + # here mailbox should anwser without blocks + @process.name.should == cfg[:name] + end end + end - res.should == 11 + context "#wait_for_condition" do + subject{ Eye::Process.new(C.p1) } - res = @process.with_timeout(0.5) do - sleep 0.7 - 11 + it "success" do + should_spend(0) do + subject.wait_for_condition(1){ 15 }.should == 15 + end end - res.should == :timeout - end - - [C.p1, C.p2].each do |cfg| - it "blocking execute should not block process actor mailbox #{cfg[:name]}" do - @process = Eye::Process.new(cfg.merge(:start_command => "sleep 5", :start_timeout => 10.seconds)) - tm1 = Time.now - @process.start! - sleep 1 - # here mailbox should anwser without blocks - @process.name.should == cfg[:name] - (Time.now - tm1).should < 2 # seconds + it "success with sleep" do + should_spend(0.3) do + subject.wait_for_condition(1){ sleep 0.3; :a }.should == :a + end end + + it "fail by timeout" do + should_spend(1) do + subject.wait_for_condition(1){ sleep 4; true }.should == false + end + end + + it "fail with bad result" do + should_spend(1) do + subject.wait_for_condition(1){ nil }.should == false + end + end end + end \ No newline at end of file