Sha256: 5fce8da872f7d21eebf640f087d08df718e95c21b7dcc586b1cafa58a2bc26e3

Contents?: true

Size: 848 Bytes

Versions: 1

Compression:

Stored size: 848 Bytes

Contents

require 'socket'

require 'rack'
require 'rack-handlers'

require 'pork'
require 'pork/more/bottomup_backtrace'
require 'pork/more/color'

Pork::API.copy :shared do
  def get name
    Rack::Handler.get(name)
  rescue LoadError
  end

  Rack::Handler::DEFAULT.each do |name|
    would "launch #{name}" do
      rd, wr = IO.pipe
      child = run(name, &wr.method(:puts))
      msg = rd.gets
      rd.close
      skip if msg == "\n"
      sleep(0.1) if name == 'puma' # slow puma
      sock = TCPSocket.new('localhost', 8080)
      sock.binmode
      sock.print("GET / HTTP/1.1\r\nHost: localhost\r\n\r\n")
      sock.readline("\r\n\r\n")
      expect(sock.read(3)).eq "OK\n"
      sock.close
      Process.kill('TERM', child)
      TCPSocket.new('localhost', 8080).close if name == 'yahns' # wake up!
      Process.waitpid(child)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-handlers-0.7.3 test/shared.rb