1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/ruby/library/socket/udpsocket/initialize_spec.rb
Jeremy Evans 119ca4343c Make specs pass on OpenBSD
Skip Process clockres specs that don't work on either FreeBSD or
Solaris/AIX in addition to OpenBSD.

Run most current String#crypt specs on non-OpenBSD, and add a new
set of crypt specs for OpenBSD, which support bcrypt but not DES
in crypt(3).

Use @server.connect_address instead of @server.getsockname in some
socket tests, as OpenBSD does not treat connection to all zero
IPv4 or IPv6 addresses as connection to localhost.

When trying to connect using UDP on an unsupported address family,
allow Errno::EPROTONOSUPPORT in addition to Errno::EAFNOSUPPORT,
as OpenBSD raises the former.
2019-06-06 21:16:28 -07:00

42 lines
1.2 KiB
Ruby

require_relative '../spec_helper'
describe 'UDPSocket#initialize' do
after do
@socket.close if @socket
end
it 'initializes a new UDPSocket' do
@socket = UDPSocket.new
@socket.should be_an_instance_of(UDPSocket)
end
it 'initializes a new UDPSocket using an Integer' do
@socket = UDPSocket.new(Socket::AF_INET)
@socket.should be_an_instance_of(UDPSocket)
end
it 'initializes a new UDPSocket using a Symbol' do
@socket = UDPSocket.new(:INET)
@socket.should be_an_instance_of(UDPSocket)
end
it 'initializes a new UDPSocket using a String' do
@socket = UDPSocket.new('INET')
@socket.should be_an_instance_of(UDPSocket)
end
it 'sets the socket to binmode' do
@socket = UDPSocket.new(:INET)
@socket.binmode?.should be_true
end
it 'raises Errno::EAFNOSUPPORT or Errno::EPROTONOSUPPORT when given an invalid address family' do
begin
UDPSocket.new(666)
rescue Errno::EAFNOSUPPORT, Errno::EPROTONOSUPPORT => e
[Errno::EAFNOSUPPORT, Errno::EPROTONOSUPPORT].should include(e.class)
else
raise "expected Errno::EAFNOSUPPORT or Errno::EPROTONOSUPPORT exception raised"
end
end
end