diff options
Diffstat (limited to 'spec/rubyspec/library/socket/udpsocket/bind_spec.rb')
-rw-r--r-- | spec/rubyspec/library/socket/udpsocket/bind_spec.rb | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/spec/rubyspec/library/socket/udpsocket/bind_spec.rb b/spec/rubyspec/library/socket/udpsocket/bind_spec.rb index 067baa2472..bdc3c3d33f 100644 --- a/spec/rubyspec/library/socket/udpsocket/bind_spec.rb +++ b/spec/rubyspec/library/socket/udpsocket/bind_spec.rb @@ -12,24 +12,31 @@ describe "UDPSocket.bind" do end it "binds the socket to a port" do - @socket.bind(SocketSpecs.hostname, SocketSpecs.port) + @socket.bind(SocketSpecs.hostname, 0) + @socket.addr[1].should be_kind_of(Integer) + end + + it "raises Errno::EINVAL when already bound" do + @socket.bind(SocketSpecs.hostname, 0) - lambda { @socket.bind(SocketSpecs.hostname, SocketSpecs.port) }.should raise_error + lambda { + @socket.bind(SocketSpecs.hostname, @socket.addr[1]) + }.should raise_error(Errno::EINVAL) end it "receives a hostname and a port" do - @socket.bind(SocketSpecs.hostname, SocketSpecs.port) + @socket.bind(SocketSpecs.hostname, 0) port, host = Socket.unpack_sockaddr_in(@socket.getsockname) host.should == "127.0.0.1" - port.should == SocketSpecs.port + port.should == @socket.addr[1] end it "binds to INADDR_ANY if the hostname is empty" do - @socket.bind("", SocketSpecs.port) + @socket.bind("", 0) port, host = Socket.unpack_sockaddr_in(@socket.getsockname) host.should == "0.0.0.0" - port.should == SocketSpecs.port + port.should == @socket.addr[1] end end |