Revert "Revert "Test officially supported cmd taps. (#390)""
This reverts commit dba1958bd79c1c9d18f215dfc2b806ea62edd1c8.
This commit is contained in:
parent
dba1958bd7
commit
bf42959609
@ -1,13 +1,23 @@
|
|||||||
#: @hide_from_man_page
|
#: @hide_from_man_page
|
||||||
#: * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script/test_method>] [`--seed` <seed>] [`--trace`] [`--online`]:
|
#: * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script/test_method>] [`--seed` <seed>] [`--trace`] [`--online`] [`--official-cmd-taps`]:
|
||||||
#: Run Homebrew's unit and integration tests.
|
#: Run Homebrew's unit and integration tests.
|
||||||
|
|
||||||
require "fileutils"
|
require "fileutils"
|
||||||
|
require "tap"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
def tests
|
def tests
|
||||||
|
ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"
|
||||||
|
|
||||||
|
if ARGV.include? "--official-cmd-taps"
|
||||||
|
ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"] = "1"
|
||||||
|
OFFICIAL_CMD_TAPS.each do |tap, _|
|
||||||
|
tap = Tap.fetch tap
|
||||||
|
tap.install unless tap.installed?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
(HOMEBREW_LIBRARY/"Homebrew/test").cd do
|
(HOMEBREW_LIBRARY/"Homebrew/test").cd do
|
||||||
ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"
|
|
||||||
ENV["TESTOPTS"] = "-v" if ARGV.verbose?
|
ENV["TESTOPTS"] = "-v" if ARGV.verbose?
|
||||||
ENV["HOMEBREW_NO_COMPAT"] = "1" if ARGV.include? "--no-compat"
|
ENV["HOMEBREW_NO_COMPAT"] = "1" if ARGV.include? "--no-compat"
|
||||||
ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if ARGV.include? "--generic"
|
ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if ARGV.include? "--generic"
|
||||||
|
|||||||
@ -659,6 +659,7 @@ module Homebrew
|
|||||||
test "brew", "tests", *tests_args
|
test "brew", "tests", *tests_args
|
||||||
test "brew", "tests", "--no-compat"
|
test "brew", "tests", "--no-compat"
|
||||||
test "brew", "readall", "--syntax"
|
test "brew", "readall", "--syntax"
|
||||||
|
test "brew", "tests", "--official-cmd-taps"
|
||||||
else
|
else
|
||||||
test "brew", "readall", "--aliases", @tap.name
|
test "brew", "readall", "--aliases", @tap.name
|
||||||
end
|
end
|
||||||
|
|||||||
@ -9,6 +9,7 @@ require "utils"
|
|||||||
require "exceptions"
|
require "exceptions"
|
||||||
require "set"
|
require "set"
|
||||||
require "rbconfig"
|
require "rbconfig"
|
||||||
|
require "official_taps"
|
||||||
|
|
||||||
ARGV.extend(HomebrewArgvExtension)
|
ARGV.extend(HomebrewArgvExtension)
|
||||||
|
|
||||||
|
|||||||
@ -15,4 +15,10 @@ OFFICIAL_TAPS = %w[
|
|||||||
tex
|
tex
|
||||||
versions
|
versions
|
||||||
x11
|
x11
|
||||||
]
|
].freeze
|
||||||
|
|
||||||
|
OFFICIAL_CMD_TAPS = {
|
||||||
|
"caskroom/cask" => ["cask"],
|
||||||
|
"homebrew/bundle" => ["bundle"],
|
||||||
|
"homebrew/services" => ["services"],
|
||||||
|
}.freeze
|
||||||
|
|||||||
@ -17,6 +17,12 @@ class IntegrationCommandTests < Homebrew::TestCase
|
|||||||
@formula_files.each(&:unlink)
|
@formula_files.each(&:unlink)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def needs_test_cmd_taps
|
||||||
|
unless ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"]
|
||||||
|
skip "HOMEBREW_TEST_OFFICIAL_CMD_TAPS is not set"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def cmd_id_from_args(args)
|
def cmd_id_from_args(args)
|
||||||
args_pretty = args.join(" ").gsub(TEST_TMPDIR, "@TMPDIR@")
|
args_pretty = args.join(" ").gsub(TEST_TMPDIR, "@TMPDIR@")
|
||||||
test_pretty = "#{self.class.name}\##{name}.#{@cmd_id_index += 1}"
|
test_pretty = "#{self.class.name}\##{name}.#{@cmd_id_index += 1}"
|
||||||
@ -668,4 +674,35 @@ class IntegrationCommandTests < Homebrew::TestCase
|
|||||||
ensure
|
ensure
|
||||||
desc_cache.unlink
|
desc_cache.unlink
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_bundle
|
||||||
|
needs_test_cmd_taps
|
||||||
|
HOMEBREW_REPOSITORY.cd do
|
||||||
|
shutup do
|
||||||
|
system "git", "init"
|
||||||
|
system "git", "commit", "--allow-empty", "-m", "This is a test commit"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
mktmpdir do |path|
|
||||||
|
FileUtils.touch "#{path}/Brewfile"
|
||||||
|
Dir.chdir path do
|
||||||
|
assert_equal "The Brewfile's dependencies are satisfied.",
|
||||||
|
cmd("bundle", "check")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
FileUtils.rm_rf HOMEBREW_REPOSITORY/".git"
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_cask
|
||||||
|
needs_test_cmd_taps
|
||||||
|
assert_equal "Warning: nothing to list", cmd("cask", "list")
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_services
|
||||||
|
needs_test_cmd_taps
|
||||||
|
assert_equal "Warning: No services available to control with `brew services`",
|
||||||
|
cmd("services", "list")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -94,14 +94,8 @@ begin
|
|||||||
exit Homebrew.failed? ? 1 : 0
|
exit Homebrew.failed? ? 1 : 0
|
||||||
else
|
else
|
||||||
require "tap"
|
require "tap"
|
||||||
possible_tap = case cmd
|
possible_tap = OFFICIAL_CMD_TAPS.find { |_, cmds| cmds.include?(cmd) }
|
||||||
when "brewdle", "brewdler", "bundle", "bundler"
|
possible_tap = Tap.fetch(possible_tap.first) if possible_tap
|
||||||
Tap.fetch("Homebrew", "bundle")
|
|
||||||
when "cask"
|
|
||||||
Tap.fetch("caskroom", "cask")
|
|
||||||
when "services"
|
|
||||||
Tap.fetch("Homebrew", "services")
|
|
||||||
end
|
|
||||||
|
|
||||||
if possible_tap && !possible_tap.installed?
|
if possible_tap && !possible_tap.installed?
|
||||||
brew_uid = HOMEBREW_BREW_FILE.stat.uid
|
brew_uid = HOMEBREW_BREW_FILE.stat.uid
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user