2018-08-03 16:19:40 +00:00
|
|
|
require_relative '../spec_helper'
|
2018-03-04 15:09:32 +00:00
|
|
|
require_relative '../fixtures/classes'
|
2017-05-07 12:04:49 +00:00
|
|
|
|
2018-08-03 16:19:40 +00:00
|
|
|
describe "BasicSocket.for_fd" do
|
2017-05-07 12:04:49 +00:00
|
|
|
before :each do
|
2017-06-15 12:48:52 +00:00
|
|
|
@server = TCPServer.new(0)
|
2017-05-07 12:04:49 +00:00
|
|
|
@s2 = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
after :each do
|
2018-08-03 16:19:40 +00:00
|
|
|
@socket1.close if @socket1
|
2017-05-07 12:04:49 +00:00
|
|
|
@server.close if @server
|
|
|
|
end
|
|
|
|
|
|
|
|
it "return a Socket instance wrapped around the descriptor" do
|
|
|
|
@s2 = TCPServer.for_fd(@server.fileno)
|
|
|
|
@s2.autoclose = false
|
|
|
|
@s2.should be_kind_of(TCPServer)
|
|
|
|
@s2.fileno.should == @server.fileno
|
|
|
|
end
|
2018-08-03 16:19:40 +00:00
|
|
|
|
|
|
|
it 'returns a new socket for a file descriptor' do
|
|
|
|
@socket1 = Socket.new(:INET, :DGRAM)
|
|
|
|
socket2 = Socket.for_fd(@socket1.fileno)
|
|
|
|
socket2.autoclose = false
|
|
|
|
|
|
|
|
socket2.should be_an_instance_of(Socket)
|
|
|
|
socket2.fileno.should == @socket1.fileno
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'sets the socket into binary mode' do
|
|
|
|
@socket1 = Socket.new(:INET, :DGRAM)
|
|
|
|
socket2 = Socket.for_fd(@socket1.fileno)
|
|
|
|
socket2.autoclose = false
|
|
|
|
|
|
|
|
socket2.binmode?.should be_true
|
|
|
|
end
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|