Sha256: 2e21a4cc5ec122f2c820b657188b8d133580c2760727b4a08fc702821d6c83c5

Contents?: true

Size: 1.77 KB

Versions: 83

Compression:

Stored size: 1.77 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes'

describe "Thread.stop" do
  it "causes the current thread to sleep indefinitely" do
    t = Thread.new { Thread.stop; 5 }
    Thread.pass while t.status and t.status != 'sleep'
    t.status.should == 'sleep'
    t.run
    t.value.should == 5
  end

  it "resets Thread.critical to false" do
    t = Thread.new { Thread.critical = true; Thread.stop }
    Thread.pass while t.status and t.status != 'sleep'
    Thread.critical.should == false
    t.run
    t.join
  end
end

describe "Thread#stop?" do
  it "can check it's own status" do
    ThreadSpecs.status_of_current_thread.stop?.should == false
  end

  it "describes a running thread" do
    ThreadSpecs.status_of_running_thread.stop?.should == false
  end

  it "describes a sleeping thread" do
    ThreadSpecs.status_of_sleeping_thread.stop?.should == true
  end

  it "describes a blocked thread" do
    ThreadSpecs.status_of_blocked_thread.stop?.should == true
  end

  it "describes a completed thread" do
    ThreadSpecs.status_of_completed_thread.stop?.should == true
  end

  it "describes a killed thread" do
    ThreadSpecs.status_of_killed_thread.stop?.should == true
  end

  it "describes a thread with an uncaught exception" do
    ThreadSpecs.status_of_thread_with_uncaught_exception.stop?.should == true
  end

  it "describes a dying running thread" do
    ThreadSpecs.status_of_dying_running_thread.stop?.should == false
  end

  it "describes a dying sleeping thread" do
    ThreadSpecs.status_of_dying_sleeping_thread.stop?.should == true
  end

  it "reports aborting on a killed thread" do
    ThreadSpecs.status_of_aborting_thread.stop?.should == false
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/thread/stop_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/thread/stop_spec.rb