Sha256: 915d0202114a35815742e5534e5af03fc932fdea983c65ef46da6553730a4ac8

Contents?: true

Size: 1.81 KB

Versions: 52

Compression:

Stored size: 1.81 KB

Contents

require File.expand_path('../../../spec_helper', __FILE__)

describe "SystemCallError.new" do
  it "requires at least one argumentt" do
    lambda { SystemCallError.new }.should raise_error(ArgumentError)
  end

  it "takes an optional errno argument" do
    SystemCallError.should be_ancestor_of(SystemCallError.new("message",1).class)
  end

  it "accepts single Fixnum argument as errno" do
    SystemCallError.new(-2**24).errno.should == -2**24
    SystemCallError.new(42).errno.should == 42
    SystemCallError.new(2**24).errno.should == 2**24
  end

  it "constructs the appropriate Errno class" do
    # EINVAL should be more or less mortable across the platforms,
    # so let's use it then.
    SystemCallError.new(22).should be_kind_of(SystemCallError)
    SystemCallError.new(22).should be_an_instance_of(Errno::EINVAL)

    SystemCallError.new(2**28).should be_an_instance_of(SystemCallError)
  end
end

describe "SystemCallError#errno" do
  it "returns nil when no errno given" do
    SystemCallError.new("message").errno.should == nil
  end

  it "returns the errno given as optional argument to new" do
    SystemCallError.new("message", -2**30).errno.should == -2**30
    SystemCallError.new("message", -1).errno.should == -1
    SystemCallError.new("message", 0).errno.should == 0
    SystemCallError.new("message", 1).errno.should == 1
    SystemCallError.new("message", 42).errno.should == 42
    SystemCallError.new("message", 2**30).errno.should == 2**30
  end
end

describe "SystemCallError#message" do
  it "returns the default message when no message is given" do
    SystemCallError.new(2**28).message.should =~ /Unknown error/i
  end

  it "returns the message given as an argument to new" do
    SystemCallError.new("message", 1).message.should  =~ /message/
    SystemCallError.new("XXX").message.should =~ /XXX/
  end
end


Version data entries

52 entries across 52 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-3.3.5 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb