Updated RubySpec source to 55122684.
[rbx.git] / spec / frozen / 1.8 / core / io / pid_spec.rb
blob38f0d9a6ab7ee4787be2c7359f329d33fe8b2da1
1 require File.dirname(__FILE__) + '/../../spec_helper'
3 describe "IO#pid" do
4   before :each do
5     @file = File.open(File.dirname(__FILE__) + '/fixtures/readlines.txt', 'r')
6     @io = IO.open @file.fileno, 'r'
7   end
9   after :each do
10     # we *must* close both in order to not leak descriptors
11     @io.close unless @io.closed?
12     @file.close unless @file.closed? rescue Errno::EBADF
13   end
15   it "returns nil for IO not associated with a process" do
16     @io.pid.should == nil
17   end
19   it "returns the ID of a process associated with stream" do
20     IO.popen(RUBY_NAME, "r+") { |io|
21       io.pid.should_not == nil
22     }
23   end
25   it "raises IOError on closed stream" do
26     process_io = IO.popen(RUBY_NAME, "r+") { |io| io }
27     lambda { process_io.pid }.should raise_error(IOError)
28   end
29 end