integration_test: add simplecov libs when needed.

Don't add these unconditionally or with Bundler to speed things up a
bit. Also, to speed things up further cache these arguments so we don't
have to do the same generation every time.
This commit is contained in:
Mike McQuaid 2017-07-10 07:51:04 +01:00
parent cb3a47d9e2
commit cabb7e898a

View File

@ -80,18 +80,34 @@ RSpec.shared_context "integration test" do
"GEM_HOME" => nil, "GEM_HOME" => nil,
) )
ruby_args = [ @ruby_args ||= begin
"-W0", ruby_args = [
"-I", "#{HOMEBREW_LIBRARY_PATH}/test/support/lib", "-W0",
"-I", HOMEBREW_LIBRARY_PATH.to_s, "-I", "#{HOMEBREW_LIBRARY_PATH}/test/support/lib",
"-rconfig" "-I", HOMEBREW_LIBRARY_PATH.to_s,
] "-rconfig"
ruby_args << "-rsimplecov" if ENV["HOMEBREW_TESTS_COVERAGE"] ]
ruby_args << "-rtest/support/helper/integration_mocks" if ENV["HOMEBREW_TESTS_COVERAGE"]
ruby_args << (HOMEBREW_LIBRARY_PATH/"brew.rb").resolved_path.to_s simplecov_spec = Gem.loaded_specs["simplecov"]
specs = simplecov_spec.runtime_dependencies.flat_map(&:to_specs)
specs << simplecov_spec
libs = specs.flat_map do |spec|
full_gem_path = spec.full_gem_path
# full_require_paths isn't available in RubyGems < 2.2.
spec.require_paths.map do |lib|
next lib if lib.include?(full_gem_path)
"#{full_gem_path}/#{lib}"
end
end
libs.each { |lib| ruby_args << "-I" << lib }
ruby_args << "-rsimplecov"
end
ruby_args << "-rtest/support/helper/integration_mocks"
ruby_args << (HOMEBREW_LIBRARY_PATH/"brew.rb").resolved_path.to_s
end
Bundler.with_clean_env do Bundler.with_clean_env do
stdout, stderr, status = Open3.capture3(env, RUBY_PATH, *ruby_args, *args) stdout, stderr, status = Open3.capture3(env, RUBY_PATH, *@ruby_args, *args)
$stdout.print stdout $stdout.print stdout
$stderr.print stderr $stderr.print stderr
status status