30 lines
1012 B
Ruby
30 lines
1012 B
Ruby
require "vagrant/util/retryable"
|
|
|
|
module Acceptance
|
|
module NetworkTests
|
|
include Vagrant::Util::Retryable
|
|
|
|
# Tests that the host can access the VM through the network.
|
|
#
|
|
# @param [String] url URL to request from the host.
|
|
# @param [Integer] guest_port Port to run a web server on the guest.
|
|
def assert_host_to_vm_network(url, guest_port)
|
|
# Start up a web server in another thread by SSHing into the VM.
|
|
thr = Thread.new do
|
|
assert_execute("vagrant", "ssh", "-c", "python -m SimpleHTTPServer #{guest_port}")
|
|
end
|
|
|
|
# Verify that port forwarding works by making a simple HTTP request
|
|
# to the port. We should get a 200 response. We retry this a few times
|
|
# as we wait for the HTTP server to come online.
|
|
retryable(:tries => 5, :sleep => 2) do
|
|
result = Net::HTTP.get_response(URI.parse(url))
|
|
result.code.should == "200"
|
|
end
|
|
ensure
|
|
# The server needs to die. This is how.
|
|
thr.kill if thr
|
|
end
|
|
end
|
|
end
|