in spec/support/faux/faux_crawl.rb [94:128]
def start_sites
sites_to_start = sites.uniq(&:port)
@site_containers = sites_to_start.collect do |site|
site_options = { port: site.port, debug: true, start: false }
the_site = Faux::Site.new(site.site, site_options)
Thread.new { the_site.start }
the_site
end
start_time = Time.now
ports_remaining = sites.map(&:port)
loop do
break if ports_remaining.empty?
time_elapsed = Time.now - start_time
break if time_elapsed > START_TIMEOUT
begin
port_to_check = ports_remaining.first
response = HTTPClient.new.get("http://127.0.0.1:#{port_to_check}/status")
ports_remaining.shift if (200..299).cover?(response.status)
rescue StandardError
end
sleep 0.05
end
return unless ports_remaining.any?
raise "Unable to start all Faux sites; these ports never were available: #{ports_remaining.inspect}"
end