spec/ruby/library/socket/addrinfo: skip the specs that uses SOCK_SEQPACKET on Android

SOCK_SEQPACKET seems not to be supported on Android
This commit is contained in:
Yusuke Endoh 2020-02-13 23:10:03 +09:00
Родитель 89bfad17d5
Коммит db8c8c0916
1 изменённых файлов: 30 добавлений и 26 удалений

Просмотреть файл

@ -274,15 +274,17 @@ describe "Addrinfo#initialize" do
end
end
with_feature :sock_packet do
[:SOCK_SEQPACKET].each do |type|
it "overwrites the socket type #{type}" do
sockaddr = ['AF_INET', 80, 'hostname', '127.0.0.1']
platform_is_not :android do
with_feature :sock_packet do
[:SOCK_SEQPACKET].each do |type|
it "overwrites the socket type #{type}" do
sockaddr = ['AF_INET', 80, 'hostname', '127.0.0.1']
value = Socket.const_get(type)
addr = Addrinfo.new(sockaddr, nil, value)
value = Socket.const_get(type)
addr = Addrinfo.new(sockaddr, nil, value)
addr.socktype.should == value
addr.socktype.should == value
end
end
end
end
@ -448,28 +450,30 @@ describe "Addrinfo#initialize" do
end
platform_is :linux do
describe 'and the socket type is set to SOCK_SEQPACKET' do
before do
@socktype = Socket::SOCK_SEQPACKET
end
valid = [:IPPROTO_IP, :IPPROTO_HOPOPTS]
valid.each do |type|
it "overwrites the protocol when using #{type}" do
value = Socket.const_get(type)
addr = Addrinfo.new(@sockaddr, nil, @socktype, value)
addr.protocol.should == value
platform_is_not :android do
describe 'and the socket type is set to SOCK_SEQPACKET' do
before do
@socktype = Socket::SOCK_SEQPACKET
end
end
(Socket.constants.grep(/^IPPROTO/) - valid).each do |type|
it "raises SocketError when using #{type}" do
value = Socket.const_get(type)
block = -> { Addrinfo.new(@sockaddr, nil, @socktype, value) }
valid = [:IPPROTO_IP, :IPPROTO_HOPOPTS]
block.should raise_error(SocketError)
valid.each do |type|
it "overwrites the protocol when using #{type}" do
value = Socket.const_get(type)
addr = Addrinfo.new(@sockaddr, nil, @socktype, value)
addr.protocol.should == value
end
end
(Socket.constants.grep(/^IPPROTO/) - valid).each do |type|
it "raises SocketError when using #{type}" do
value = Socket.const_get(type)
block = -> { Addrinfo.new(@sockaddr, nil, @socktype, value) }
block.should raise_error(SocketError)
end
end
end
end