summaryrefslogtreecommitdiff
path: root/spec/ruby/core/exception/io_error_spec.rb
blob: 0971be332f51840d6f6433e63d0e784022aebcfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require File.expand_path('../../../spec_helper', __FILE__)

describe "IOError" do
  it "is a superclass of EOFError" do
    IOError.should be_ancestor_of(EOFError)
  end
end

describe "IO::EAGAINWaitReadable" do
  it "combines Errno::EAGAIN and IO::WaitReadable" do
    IO::EAGAINWaitReadable.superclass.should == Errno::EAGAIN
    IO::EAGAINWaitReadable.ancestors.should include IO::WaitReadable
  end

  it "is the same as IO::EWOULDBLOCKWaitReadable if Errno::EAGAIN is the same as Errno::EWOULDBLOCK" do
    if Errno::EAGAIN.equal? Errno::EWOULDBLOCK
      IO::EAGAINWaitReadable.should equal IO::EWOULDBLOCKWaitReadable
    else
      IO::EAGAINWaitReadable.should_not equal IO::EWOULDBLOCKWaitReadable
    end
  end
end

describe "IO::EWOULDBLOCKWaitReadable" do
  it "combines Errno::EWOULDBLOCK and IO::WaitReadable" do
    IO::EWOULDBLOCKWaitReadable.superclass.should == Errno::EWOULDBLOCK
    IO::EAGAINWaitReadable.ancestors.should include IO::WaitReadable
  end
end

describe "IO::EAGAINWaitWritable" do
  it "combines Errno::EAGAIN and IO::WaitWritable" do
    IO::EAGAINWaitWritable.superclass.should == Errno::EAGAIN
    IO::EAGAINWaitWritable.ancestors.should include IO::WaitWritable
  end

  it "is the same as IO::EWOULDBLOCKWaitWritable if Errno::EAGAIN is the same as Errno::EWOULDBLOCK" do
    if Errno::EAGAIN.equal? Errno::EWOULDBLOCK
      IO::EAGAINWaitWritable.should equal IO::EWOULDBLOCKWaitWritable
    else
      IO::EAGAINWaitWritable.should_not equal IO::EWOULDBLOCKWaitWritable
    end
  end
end

describe "IO::EWOULDBLOCKWaitWritable" do
  it "combines Errno::EWOULDBLOCK and IO::WaitWritable" do
    IO::EWOULDBLOCKWaitWritable.superclass.should == Errno::EWOULDBLOCK
    IO::EAGAINWaitWritable.ancestors.should include IO::WaitWritable
  end
end