summaryrefslogtreecommitdiff
path: root/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb')
-rw-r--r--spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb27
1 files changed, 22 insertions, 5 deletions
diff --git a/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb b/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb
index c76a2c54de..579ae307df 100644
--- a/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb
+++ b/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb
@@ -1,9 +1,7 @@
-require_relative '../../../spec_helper'
+require_relative '../spec_helper'
require_relative '../fixtures/classes'
-require 'socket'
describe "Socket.unpack_sockaddr_in" do
-
it "decodes the host name and port number of a packed sockaddr_in" do
sockaddr = Socket.sockaddr_in 3333, '127.0.0.1'
Socket.unpack_sockaddr_in(sockaddr).should == [3333, '127.0.0.1']
@@ -14,7 +12,27 @@ describe "Socket.unpack_sockaddr_in" do
Socket.unpack_sockaddr_in(addrinfo).should == [3333, '127.0.0.1']
end
- platform_is_not :windows do
+ describe 'using an IPv4 address' do
+ it 'returns an Array containing the port and IP address' do
+ port = 80
+ ip = '127.0.0.1'
+ addr = Socket.pack_sockaddr_in(port, ip)
+
+ Socket.unpack_sockaddr_in(addr).should == [port, ip]
+ end
+ end
+
+ describe 'using an IPv6 address' do
+ it 'returns an Array containing the port and IP address' do
+ port = 80
+ ip = '::1'
+ addr = Socket.pack_sockaddr_in(port, ip)
+
+ Socket.unpack_sockaddr_in(addr).should == [port, ip]
+ end
+ end
+
+ with_feature :unix_socket do
it "raises an ArgumentError when the sin_family is not AF_INET" do
sockaddr = Socket.sockaddr_un '/tmp/x'
lambda { Socket.unpack_sockaddr_in sockaddr }.should raise_error(ArgumentError)
@@ -25,5 +43,4 @@ describe "Socket.unpack_sockaddr_in" do
lambda { Socket.unpack_sockaddr_in(addrinfo) }.should raise_error(ArgumentError)
end
end
-
end