parent
f10e571f4d
commit
e19cad1cb1
|
@ -1,14 +1,23 @@
|
|||
require File.expand_path('integration_helper', __dir__)
|
||||
|
||||
module IntegrationAsyncHelper
|
||||
Server = IntegrationHelper::BaseServer
|
||||
|
||||
def it(message, &block)
|
||||
base_port = 5100 + Process.pid % 100
|
||||
|
||||
%w(rainbows puma).each_with_index do |server_name, index|
|
||||
server = IntegrationHelper::BaseServer.new(server_name, base_port + index)
|
||||
Server.all_async.each do |server|
|
||||
next unless server.installed?
|
||||
|
||||
super("with #{server.name}: #{message}") { server.run_test(self, &block) }
|
||||
end
|
||||
end
|
||||
|
||||
def self.extend_object(obj)
|
||||
super
|
||||
|
||||
base_port = 5100 + Process.pid % 100
|
||||
servers = %w(rainbows puma)
|
||||
|
||||
servers.each_with_index do |server, index|
|
||||
Server.run(server, base_port+index, async: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,12 +13,16 @@ module IntegrationHelper
|
|||
@all ||= []
|
||||
end
|
||||
|
||||
def self.all_async
|
||||
@all_async ||= []
|
||||
end
|
||||
|
||||
def self.each(&block)
|
||||
all.each(&block)
|
||||
end
|
||||
|
||||
def self.run(server, port)
|
||||
new(server, port).run
|
||||
def self.run(server, port, async: false)
|
||||
new(server, port, async).run
|
||||
end
|
||||
|
||||
def app_file
|
||||
|
@ -29,9 +33,13 @@ module IntegrationHelper
|
|||
"development"
|
||||
end
|
||||
|
||||
def initialize(server, port)
|
||||
def initialize(server, port, async)
|
||||
@installed, @pipe, @server, @port = nil, nil, server, port
|
||||
Server.all << self
|
||||
if async
|
||||
Server.all_async << self
|
||||
else
|
||||
Server.all << self
|
||||
end
|
||||
end
|
||||
|
||||
def run
|
||||
|
@ -44,14 +52,7 @@ module IntegrationHelper
|
|||
|
||||
def installed?
|
||||
return @installed unless @installed.nil?
|
||||
s = case server
|
||||
when 'HTTP'
|
||||
'net/http/server'
|
||||
when 'puma'
|
||||
'puma/rack/handler'
|
||||
else
|
||||
server
|
||||
end
|
||||
s = server == 'HTTP' ? 'net/http/server' : server
|
||||
require s
|
||||
@installed = true
|
||||
rescue LoadError
|
||||
|
|
|
@ -47,7 +47,7 @@ class IntegrationTest < Minitest::Test
|
|||
}ix
|
||||
|
||||
# because Net HTTP Server logs to $stderr by default
|
||||
assert_match exp, server.log unless server.net_http_server? || server.rainbows?
|
||||
assert_match exp, server.log unless server.net_http_server?
|
||||
end
|
||||
|
||||
it 'does not generate warnings' do
|
||||
|
|
Loading…
Reference in New Issue