summaryrefslogtreecommitdiff
path: root/spec/ruby/library/socket/addrinfo/marshal_load_spec.rb
blob: aa208652241ae63a3e5534b10d56495c14453cb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require_relative '../spec_helper'

describe 'Addrinfo#marshal_load' do
  describe 'using an IP address' do
    it 'returns a new Addrinfo' do
      source = Addrinfo.getaddrinfo('localhost', 80, :INET, :STREAM,
                                    Socket::IPPROTO_TCP, Socket::AI_CANONNAME)[0]

      addr = Marshal.load(Marshal.dump(source))

      addr.afamily.should    == source.afamily
      addr.pfamily.should    == source.pfamily
      addr.socktype.should   == source.socktype
      addr.protocol.should   == source.protocol
      addr.ip_address.should == source.ip_address
      addr.ip_port.should    == source.ip_port
      addr.canonname.should  == source.canonname
    end
  end

  with_feature :unix_socket do
    describe 'using a UNIX socket' do
      it 'returns a new Addrinfo' do
        source = Addrinfo.unix('foo')
        addr   = Marshal.load(Marshal.dump(source))

        addr.afamily.should   == source.afamily
        addr.pfamily.should   == source.pfamily
        addr.socktype.should  == source.socktype
        addr.protocol.should  == source.protocol
        addr.unix_path.should == source.unix_path
      end
    end
  end
end