mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
run tests with bundler since that is what our users run (#1317)
This commit is contained in:
parent
2cb2357d39
commit
0886aef3d0
5 changed files with 25 additions and 5 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,6 +12,7 @@ tmp
|
|||
t/
|
||||
.rbx/
|
||||
Gemfile.lock
|
||||
gemfiles/2.1-Gemfile.lock
|
||||
.idea/
|
||||
/test/test_puma.state
|
||||
/test/test_server.sock
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
gemspec path: ".."
|
||||
|
||||
gem "hoe"
|
||||
gem "hoe-git"
|
||||
gem "hoe-ignore"
|
||||
|
|
|
@ -163,7 +163,16 @@ module Puma
|
|||
|
||||
# Run the server. This blocks until the server is stopped
|
||||
def run
|
||||
previous_env = (defined?(Bundler) ? Bundler::ORIGINAL_ENV : ENV.to_h)
|
||||
previous_env =
|
||||
if defined?(Bundler)
|
||||
env = Bundler::ORIGINAL_ENV
|
||||
# add -rbundler/setup so we load from Gemfile when restarting
|
||||
bundle = "-rbundler/setup"
|
||||
env["RUBYOPT"] = [env["RUBYOPT"], bundle].join(" ") unless env["RUBYOPT"].include?(bundle)
|
||||
env
|
||||
else
|
||||
ENV.to_h
|
||||
end
|
||||
|
||||
@config.clamp
|
||||
|
||||
|
@ -225,8 +234,8 @@ module Puma
|
|||
else
|
||||
redirects = {:close_others => true}
|
||||
@binder.listeners.each_with_index do |(l, io), i|
|
||||
ENV["PUMA_INHERIT_#{i}"] = "#{io.to_i}:#{l}"
|
||||
redirects[io.to_i] = io.to_i
|
||||
ENV["PUMA_INHERIT_#{i}"] = "#{io.to_i}:#{l}"
|
||||
redirects[io.to_i] = io.to_i
|
||||
end
|
||||
|
||||
argv = restart_args
|
||||
|
|
|
@ -36,9 +36,13 @@ def hit(uris)
|
|||
end
|
||||
|
||||
module TimeoutEveryTestCase
|
||||
# our own subclass so we never confused different timeouts
|
||||
class TestTookTooLong < Timeout::Error
|
||||
end
|
||||
|
||||
def run(*)
|
||||
if ENV['CI']
|
||||
::Timeout.timeout(Puma.jruby? ? 120 : 30) { super }
|
||||
::Timeout.timeout(Puma.jruby? ? 120 : 30, TestTookTooLong) { super }
|
||||
else
|
||||
super # we want to be able to use debugger
|
||||
end
|
||||
|
|
|
@ -41,7 +41,11 @@ class TestIntegration < Minitest::Test
|
|||
end
|
||||
|
||||
def server(argv)
|
||||
cmd = "#{Gem.ruby} -Ilib bin/puma -b tcp://127.0.0.1:#{@tcp_port} #{argv}"
|
||||
# when we were started with bundler all load-paths and bin-paths are setup correctly
|
||||
# this is what 9X% of users run, so it is what we should test
|
||||
# the other case is solely for package builders or testing 1-off cases where the system puma is used
|
||||
base = (defined?(Bundler) ? "bundle exec puma" : "#{Gem.ruby} -Ilib bin/puma")
|
||||
cmd = "#{base} -b tcp://127.0.0.1:#{@tcp_port} #{argv}"
|
||||
@server = IO.popen(cmd, "r")
|
||||
|
||||
wait_for_server_to_boot
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue