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