summaryrefslogtreecommitdiff
path: root/spec/rubyspec/library/socket/udpsocket/bind_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/library/socket/udpsocket/bind_spec.rb')
-rw-r--r--spec/rubyspec/library/socket/udpsocket/bind_spec.rb19
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