mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

This reverts commit 252c701c59227c385ef6178fe99523cca8c843bb. Taps installed prior to running the test suite are not visible to the test suite as most Homebrew paths are redefined as to not mess up the local installation.
59 lines
2.1 KiB
Ruby
59 lines
2.1 KiB
Ruby
#: @hide_from_man_page
|
|
#: * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script/test_method>] [`--seed` <seed>] [`--trace`] [`--online`]:
|
|
#: Run Homebrew's unit and integration tests.
|
|
|
|
require "fileutils"
|
|
|
|
module Homebrew
|
|
def tests
|
|
(HOMEBREW_LIBRARY/"Homebrew/test").cd do
|
|
ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"
|
|
ENV["TESTOPTS"] = "-v" if ARGV.verbose?
|
|
ENV["HOMEBREW_NO_COMPAT"] = "1" if ARGV.include? "--no-compat"
|
|
ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if ARGV.include? "--generic"
|
|
ENV["HOMEBREW_NO_GITHUB_API"] = "1" unless ARGV.include? "--online"
|
|
if ARGV.include? "--coverage"
|
|
ENV["HOMEBREW_TESTS_COVERAGE"] = "1"
|
|
FileUtils.rm_f "coverage/.resultset.json"
|
|
end
|
|
|
|
# Override author/committer as global settings might be invalid and thus
|
|
# will cause silent failure during the setup of dummy Git repositories.
|
|
%w[AUTHOR COMMITTER].each do |role|
|
|
ENV["GIT_#{role}_NAME"] = "brew tests"
|
|
ENV["GIT_#{role}_EMAIL"] = "brew-tests@localhost"
|
|
end
|
|
|
|
Homebrew.install_gem_setup_path! "bundler"
|
|
unless quiet_system("bundle", "check")
|
|
system "bundle", "install", "--path", "vendor/bundle"
|
|
end
|
|
|
|
# Make it easier to reproduce test runs.
|
|
ENV["SEED"] = ARGV.next if ARGV.include? "--seed"
|
|
|
|
args = []
|
|
args << "--trace" if ARGV.include? "--trace"
|
|
if ARGV.value("only")
|
|
ENV["HOMEBREW_TESTS_ONLY"] = "1"
|
|
test_name, test_method = ARGV.value("only").split("/", 2)
|
|
args << "TEST=test_#{test_name}.rb"
|
|
args << "TESTOPTS=--name=test_#{test_method}" if test_method
|
|
end
|
|
args += ARGV.named.select { |v| v[/^TEST(OPTS)?=/] }
|
|
system "bundle", "exec", "rake", "test", *args
|
|
|
|
Homebrew.failed = !$?.success?
|
|
|
|
if (fs_leak_log = HOMEBREW_LIBRARY/"Homebrew/test/fs_leak_log").file?
|
|
fs_leak_log_content = fs_leak_log.read
|
|
unless fs_leak_log_content.empty?
|
|
opoo "File leak is detected"
|
|
puts fs_leak_log_content
|
|
Homebrew.failed = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|