aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-16 12:29:30 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-16 12:29:30 +0000
commit0e43703bbec8ff05692daff54c9fe111944c5efb (patch)
treeacd92927d462e9bccd018e9d5b6c8964f322d684 /spec
parent9d4e342e8c985c25622ba08399a5a7e780dcbef9 (diff)
downloadruby-0e43703bbec8ff05692daff54c9fe111944c5efb.tar.gz
Use a reserved port to test for a non-existing TCP server
* Avoids a race between finding an available port and another process starting a server on it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec')
-rw-r--r--spec/rubyspec/library/socket/fixtures/classes.rb5
-rw-r--r--spec/rubyspec/library/socket/tcpsocket/shared/new.rb2
2 files changed, 6 insertions, 1 deletions
diff --git a/spec/rubyspec/library/socket/fixtures/classes.rb b/spec/rubyspec/library/socket/fixtures/classes.rb
index f154330b9d..f6436c7d23 100644
--- a/spec/rubyspec/library/socket/fixtures/classes.rb
+++ b/spec/rubyspec/library/socket/fixtures/classes.rb
@@ -46,6 +46,11 @@ module SocketSpecs
find_available_port
end
+ def self.reserved_unused_port
+ # https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
+ 0
+ end
+
def self.sockaddr_in(port, host)
Socket::SockAddr_In.new(Socket.sockaddr_in(port, host))
end
diff --git a/spec/rubyspec/library/socket/tcpsocket/shared/new.rb b/spec/rubyspec/library/socket/tcpsocket/shared/new.rb
index b6f557fc18..fed399d80a 100644
--- a/spec/rubyspec/library/socket/tcpsocket/shared/new.rb
+++ b/spec/rubyspec/library/socket/tcpsocket/shared/new.rb
@@ -8,7 +8,7 @@ describe :tcpsocket_new, shared: true do
it "refuses the connection when there is no server to connect to" do
lambda do
- TCPSocket.send(@method, SocketSpecs.hostname, SocketSpecs.local_port)
+ TCPSocket.send(@method, SocketSpecs.hostname, SocketSpecs.reserved_unused_port)
end.should raise_error(Errno::ECONNREFUSED)
end