Sha256: 6f20754bf76cd9de210d9ef3901786a7c04c04e49c9d88c60c66b59ace687baa

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

require '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 do
        begin
          sleep 5
        rescue SignalException
        end
      end
      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_within(0.1).of(0.5)
      forker.running?.should == false
    end
  end
end unless windows?

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spork-1.0.0rc4 spec/spork/forker_spec.rb
spork-1.0.0rc4-x86-mswin32 spec/spork/forker_spec.rb
spork-1.0.0rc4-x86-mingw32 spec/spork/forker_spec.rb
spork-1.0.0rc3 spec/spork/forker_spec.rb