mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00

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.
42 lines
1.2 KiB
Ruby
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
|