Sha256: 302f3ecbc959b19c43935f03253d487614cf6512b3f86840957e0f8035dc8fb7

Contents?: true

Size: 1.05 KB

Versions: 46

Compression:

Stored size: 1.05 KB

Contents

require File.dirname(__FILE__) + '/../spec_helper'

describe Spork::Forker do
  describe ".new" do
    it "runs a block in a fork" do
      $var = "hello world"
      Spork::Forker.new { $var = "booyah" }.result
      $var.should == "hello world"
    end
  end
  
  describe "#result" do
    it "returns the result" do
      Spork::Forker.new { "results" }.result.should == "results"
    end
  end
  
  describe "#running?" do
    it "reports when the fork is running" do
      forker = Spork::Forker.new { sleep 0.1 }
      forker.running?.should == true
      forker.result
      sleep 0.1
      forker.running?.should == false
    end
  end
  
  describe "#abort" do
    it "aborts a fork and returns nil for the result" do
      started_at = Time.now
      ended_at = nil
      forker = Spork::Forker.new { sleep 5 }
      Thread.new do
        forker.result.should == nil
        ended_at = Time.now
      end
      sleep 0.5
      forker.abort
      sleep 0.1
      (ended_at - started_at).should be_close(0.5, 0.1)
      forker.running?.should == false
    end
  end
end

Version data entries

46 entries across 46 versions & 9 rubygems

Version Path
panjiva-spork-0.8.6 spec/spork/forker_spec.rb
panjiva-spork-0.8.5.1 spec/spork/forker_spec.rb
panjiva-spork-0.8.5 spec/spork/forker_spec.rb
bmabey-spork-0.5.9 spec/spork/forker_spec.rb
smtlaissezfaire-spork-0.5.7 spec/spork/forker_spec.rb
timcharper-spork-0.5.10 spec/spork/forker_spec.rb
timcharper-spork-0.5.7 spec/spork/forker_spec.rb
timcharper-spork-0.5.8 spec/spork/forker_spec.rb
timcharper-spork-0.5.9 spec/spork/forker_spec.rb
timcharper-spork-0.6.0 spec/spork/forker_spec.rb
timcharper-spork-0.6.1 spec/spork/forker_spec.rb
timcharper-spork-0.6.2 spec/spork/forker_spec.rb
timcharper-spork-0.6.3 spec/spork/forker_spec.rb
spork-0.8.5 spec/spork/forker_spec.rb
invo-sporknife-0.1.0.3 spec/spork/forker_spec.rb
invo-sporknife-0.1.0.2 spec/spork/forker_spec.rb
spork-0.9.0.rc2 spec/spork/forker_spec.rb
spork-0.9.0.rc spec/spork/forker_spec.rb
wakiki-spork-0.8.5 spec/spork/forker_spec.rb
spork-0.8.4 spec/spork/forker_spec.rb