Skip specs which make non-socket fd nonblocking on Windows

because Windows does not support nonblocking mode except sockets.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2017-05-12 10:10:15 +00:00
parent 683b89070e
commit 1f136bffe6
1 changed files with 21 additions and 19 deletions

View File

@ -251,29 +251,31 @@ describe "C-API IO function" do
end
end
describe "rb_io_wait_readable" do
it "returns false if there is no error condition" do
@o.rb_io_wait_readable(@r_io, false).should be_false
end
it "raises and IOError if passed a closed stream" do
@r_io.close
lambda { @o.rb_io_wait_readable(@r_io, false) }.should raise_error(IOError)
end
it "blocks until the io is readable and returns true" do
@o.instance_variable_set :@write_data, false
thr = Thread.new do
sleep 0.1 until @o.instance_variable_get(:@write_data)
@w_io.write "rb_io_wait_readable"
platform_is_not :windows do
describe "rb_io_wait_readable" do
it "returns false if there is no error condition" do
@o.rb_io_wait_readable(@r_io, false).should be_false
end
Thread.pass until thr.alive?
it "raises and IOError if passed a closed stream" do
@r_io.close
lambda { @o.rb_io_wait_readable(@r_io, false) }.should raise_error(IOError)
end
@o.rb_io_wait_readable(@r_io, true).should be_true
@o.instance_variable_get(:@read_data).should == "rb_io_wait_re"
it "blocks until the io is readable and returns true" do
@o.instance_variable_set :@write_data, false
thr = Thread.new do
sleep 0.1 until @o.instance_variable_get(:@write_data)
@w_io.write "rb_io_wait_readable"
end
thr.join
Thread.pass until thr.alive?
@o.rb_io_wait_readable(@r_io, true).should be_true
@o.instance_variable_get(:@read_data).should == "rb_io_wait_re"
thr.join
end
end
end