summaryrefslogtreecommitdiff
path: root/spec/ruby/library/socket/socket
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/socket/socket')
-rw-r--r--spec/ruby/library/socket/socket/connect_nonblock_spec.rb54
1 files changed, 28 insertions, 26 deletions
diff --git a/spec/ruby/library/socket/socket/connect_nonblock_spec.rb b/spec/ruby/library/socket/socket/connect_nonblock_spec.rb
index f3a4e496c8..037dc39131 100644
--- a/spec/ruby/library/socket/socket/connect_nonblock_spec.rb
+++ b/spec/ruby/library/socket/socket/connect_nonblock_spec.rb
@@ -16,37 +16,39 @@ describe "Socket#connect_nonblock" do
@thread.join if @thread
end
- it "connects the socket to the remote side" do
- port = nil
- accept = false
- @thread = Thread.new do
- server = TCPServer.new(@hostname, 0)
- port = server.addr[1]
- Thread.pass until accept
- conn = server.accept
- conn << "hello!"
- conn.close
- server.close
- end
+ platform_is_not :solaris do
+ it "connects the socket to the remote side" do
+ port = nil
+ accept = false
+ @thread = Thread.new do
+ server = TCPServer.new(@hostname, 0)
+ port = server.addr[1]
+ Thread.pass until accept
+ conn = server.accept
+ conn << "hello!"
+ conn.close
+ server.close
+ end
- Thread.pass until port
+ Thread.pass until port
- addr = Socket.sockaddr_in(port, @hostname)
- begin
- @socket.connect_nonblock(addr)
- rescue Errno::EINPROGRESS
- end
+ addr = Socket.sockaddr_in(port, @hostname)
+ begin
+ @socket.connect_nonblock(addr)
+ rescue Errno::EINPROGRESS
+ end
- accept = true
- IO.select nil, [@socket]
+ accept = true
+ IO.select nil, [@socket]
- begin
- @socket.connect_nonblock(addr)
- rescue Errno::EISCONN
- # Not all OS's use this errno, so we trap and ignore it
- end
+ begin
+ @socket.connect_nonblock(addr)
+ rescue Errno::EISCONN
+ # Not all OS's use this errno, so we trap and ignore it
+ end
- @socket.read(6).should == "hello!"
+ @socket.read(6).should == "hello!"
+ end
end
platform_is_not :freebsd, :solaris, :aix do