module HttpTest::Server::Port
Public Instance Methods
available!(port, timeout = 0.1)
click to toggle source
is a given port available? This raises ECONNREFUSED or EHOSTUNREACH if not, and Timeout::Error if we don't know.
# File lib/http-test/server/port.rb, line 21 def available!(port, timeout = 0.1) s = nil Timeout.timeout(timeout) do STDERR.print "." s = TCPSocket.new("127.0.0.1", port) end ensure s&.close end
available?(port, timeout = 0.1)
click to toggle source
is a given port available? This returns true if so, and false if not or unsure.
# File lib/http-test/server/port.rb, line 32 def available?(port, timeout = 0.1) available!(port, timeout) true rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Timeout::Error false end
choose()
click to toggle source
return an unused port.
# File lib/http-test/server/port.rb, line 11 def choose server = TCPServer.new('127.0.0.1', 0) port = server.addr[1] ensure # don't know if this is really necessary server&.close end
wait(port, timeout = 10)
click to toggle source
wait until a port becomes available. Raises either ECONNREFUSED, EHOSTUNREACH, or Timeout::Error if the port cannot be established.
# File lib/http-test/server/port.rb, line 41 def wait(port, timeout = 10) (timeout / 0.1).to_i.times do return true if available?(port) sleep(0.1) end available!(port) end