mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Re-add specs
* This reverts commit 325fd38901
.
* Platform guards in the next commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a88e5cccba
commit
a48339c2c9
3 changed files with 297 additions and 0 deletions
31
spec/ruby/library/socket/ancillarydata/cmsg_is_spec.rb
Normal file
31
spec/ruby/library/socket/ancillarydata/cmsg_is_spec.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require_relative '../spec_helper'
|
||||
|
||||
with_feature :ancillary_data do
|
||||
describe 'Socket::AncillaryData#cmsg_is?' do
|
||||
describe 'using :INET, :IP, :TTL as the family, level, and type' do
|
||||
before do
|
||||
@data = Socket::AncillaryData.new(:INET, :IP, :TTL, '')
|
||||
end
|
||||
|
||||
it 'returns true when comparing with IPPROTO_IP and IP_TTL' do
|
||||
@data.cmsg_is?(Socket::IPPROTO_IP, Socket::IP_TTL).should == true
|
||||
end
|
||||
|
||||
it 'returns true when comparing with :IP and :TTL' do
|
||||
@data.cmsg_is?(:IP, :TTL).should == true
|
||||
end
|
||||
|
||||
it 'returns false when comparing with :IP and :PKTINFO' do
|
||||
@data.cmsg_is?(:IP, :PKTINFO).should == false
|
||||
end
|
||||
|
||||
it 'returns false when comparing with :SOCKET and :RIGHTS' do
|
||||
@data.cmsg_is?(:SOCKET, :RIGHTS).should == false
|
||||
end
|
||||
|
||||
it 'raises SocketError when comparign with :IPV6 and :RIGHTS' do
|
||||
lambda { @data.cmsg_is?(:IPV6, :RIGHTS) }.should raise_error(SocketError)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
145
spec/ruby/library/socket/ancillarydata/ip_pktinfo_spec.rb
Normal file
145
spec/ruby/library/socket/ancillarydata/ip_pktinfo_spec.rb
Normal file
|
@ -0,0 +1,145 @@
|
|||
require_relative '../spec_helper'
|
||||
|
||||
with_feature :ancillary_data do
|
||||
describe 'Socket::AncillaryData.ip_pktinfo' do
|
||||
describe 'with a source address and index' do
|
||||
before do
|
||||
@data = Socket::AncillaryData.ip_pktinfo(Addrinfo.ip('127.0.0.1'), 4)
|
||||
end
|
||||
|
||||
it 'returns a Socket::AncillaryData' do
|
||||
@data.should be_an_instance_of(Socket::AncillaryData)
|
||||
end
|
||||
|
||||
it 'sets the family to AF_INET' do
|
||||
@data.family.should == Socket::AF_INET
|
||||
end
|
||||
|
||||
it 'sets the level to IPPROTO_IP' do
|
||||
@data.level.should == Socket::IPPROTO_IP
|
||||
end
|
||||
|
||||
it 'sets the type to IP_PKTINFO' do
|
||||
@data.type.should == Socket::IP_PKTINFO
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with a source address, index, and destination address' do
|
||||
before do
|
||||
source = Addrinfo.ip('127.0.0.1')
|
||||
dest = Addrinfo.ip('127.0.0.5')
|
||||
@data = Socket::AncillaryData.ip_pktinfo(source, 4, dest)
|
||||
end
|
||||
|
||||
it 'returns a Socket::AncillaryData' do
|
||||
@data.should be_an_instance_of(Socket::AncillaryData)
|
||||
end
|
||||
|
||||
it 'sets the family to AF_INET' do
|
||||
@data.family.should == Socket::AF_INET
|
||||
end
|
||||
|
||||
it 'sets the level to IPPROTO_IP' do
|
||||
@data.level.should == Socket::IPPROTO_IP
|
||||
end
|
||||
|
||||
it 'sets the type to IP_PKTINFO' do
|
||||
@data.type.should == Socket::IP_PKTINFO
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Socket::AncillaryData#ip_pktinfo' do
|
||||
describe 'using an Addrinfo without a port number' do
|
||||
before do
|
||||
@source = Addrinfo.ip('127.0.0.1')
|
||||
@dest = Addrinfo.ip('127.0.0.5')
|
||||
@data = Socket::AncillaryData.ip_pktinfo(@source, 4, @dest)
|
||||
end
|
||||
|
||||
it 'returns an Array' do
|
||||
@data.ip_pktinfo.should be_an_instance_of(Array)
|
||||
end
|
||||
|
||||
describe 'the returned Array' do
|
||||
before do
|
||||
@info = @data.ip_pktinfo
|
||||
end
|
||||
|
||||
it 'stores an Addrinfo at index 0' do
|
||||
@info[0].should be_an_instance_of(Addrinfo)
|
||||
end
|
||||
|
||||
it 'stores the ifindex at index 1' do
|
||||
@info[1].should be_an_instance_of(Fixnum)
|
||||
end
|
||||
|
||||
it 'stores an Addrinfo at index 2' do
|
||||
@info[2].should be_an_instance_of(Addrinfo)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the source Addrinfo' do
|
||||
before do
|
||||
@addr = @data.ip_pktinfo[0]
|
||||
end
|
||||
|
||||
it 'uses the correct IP address' do
|
||||
@addr.ip_address.should == '127.0.0.1'
|
||||
end
|
||||
|
||||
it 'is not the same object as the input Addrinfo' do
|
||||
@addr.should_not == @source
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the ifindex' do
|
||||
it 'is a Fixnum' do
|
||||
@data.ip_pktinfo[1].should == 4
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the destination Addrinfo' do
|
||||
before do
|
||||
@addr = @data.ip_pktinfo[2]
|
||||
end
|
||||
|
||||
it 'uses the correct IP address' do
|
||||
@addr.ip_address.should == '127.0.0.5'
|
||||
end
|
||||
|
||||
it 'is not the same object as the input Addrinfo' do
|
||||
@addr.should_not == @dest
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'using an Addrinfo with a port number' do
|
||||
before do
|
||||
@source = Addrinfo.tcp('127.0.0.1', 80)
|
||||
@dest = Addrinfo.tcp('127.0.0.5', 85)
|
||||
@data = Socket::AncillaryData.ip_pktinfo(@source, 4, @dest)
|
||||
end
|
||||
|
||||
describe 'the source Addrinfo' do
|
||||
before do
|
||||
@addr = @data.ip_pktinfo[0]
|
||||
end
|
||||
|
||||
it 'does not contain a port number' do
|
||||
@addr.ip_port.should == 0
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the destination Addrinfo' do
|
||||
before do
|
||||
@addr = @data.ip_pktinfo[2]
|
||||
end
|
||||
|
||||
it 'does not contain a port number' do
|
||||
@addr.ip_port.should == 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue