mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
tests: support Linux kernels with CONFIG_IPV6=n
Detecting the presence of constants in C headers is insufficient, as a Linux kernel can be built with CONFIG_IPV6=n git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d7c806c079
commit
54ad3167e8
4 changed files with 29 additions and 21 deletions
|
@ -237,13 +237,15 @@ describe 'BasicSocket#setsockopt' do
|
|||
@socket.getsockopt(:IP, :TTL).int.should == 255
|
||||
end
|
||||
|
||||
it 'sets an IPv6 boolean option' do
|
||||
socket = Socket.new(:INET6, :STREAM)
|
||||
begin
|
||||
socket.setsockopt(:IPV6, :V6ONLY, true).should == 0
|
||||
socket.getsockopt(:IPV6, :V6ONLY).bool.should == true
|
||||
ensure
|
||||
socket.close
|
||||
guard -> { SocketSpecs.ipv6_available? } do
|
||||
it 'sets an IPv6 boolean option' do
|
||||
socket = Socket.new(:INET6, :STREAM)
|
||||
begin
|
||||
socket.setsockopt(:IPV6, :V6ONLY, true).should == 0
|
||||
socket.getsockopt(:IPV6, :V6ONLY).bool.should == true
|
||||
ensure
|
||||
socket.close
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ module SocketSpecs
|
|||
def self.ipv6_available?
|
||||
@ipv6_available ||= begin
|
||||
server = TCPServer.new('::1', 0)
|
||||
rescue Errno::EADDRNOTAVAIL, SocketError
|
||||
rescue Errno::EAFNOSUPPORT, Errno::EADDRNOTAVAIL, SocketError
|
||||
:no
|
||||
else
|
||||
server.close
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
require_relative '../spec_helper'
|
||||
|
||||
describe 'Socket#ipv6only!' do
|
||||
before do
|
||||
@socket = Socket.new(:INET6, :DGRAM)
|
||||
end
|
||||
guard -> { SocketSpecs.ipv6_available? } do
|
||||
describe 'Socket#ipv6only!' do
|
||||
before do
|
||||
@socket = Socket.new(:INET6, :DGRAM)
|
||||
end
|
||||
|
||||
after do
|
||||
@socket.close
|
||||
end
|
||||
after do
|
||||
@socket.close
|
||||
end
|
||||
|
||||
it 'enables IPv6 only mode' do
|
||||
@socket.ipv6only!
|
||||
it 'enables IPv6 only mode' do
|
||||
@socket.ipv6only!
|
||||
|
||||
@socket.getsockopt(:IPV6, :V6ONLY).bool.should == true
|
||||
@socket.getsockopt(:IPV6, :V6ONLY).bool.should == true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,9 +20,13 @@ class TestSocket_UDPSocket < Test::Unit::TestCase
|
|||
assert_match(/AF_INET\b/, sock.inspect)
|
||||
}
|
||||
if Socket.const_defined?(:AF_INET6)
|
||||
UDPSocket.open(Socket::AF_INET6) {|sock|
|
||||
assert_match(/AF_INET6\b/, sock.inspect)
|
||||
}
|
||||
begin
|
||||
UDPSocket.open(Socket::AF_INET6) {|sock|
|
||||
assert_match(/AF_INET6\b/, sock.inspect)
|
||||
}
|
||||
rescue Errno::EAFNOSUPPORT
|
||||
skip 'AF_INET6 not supported by kernel'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue