Skip to content
Snippets Groups Projects
Commit bf429596 authored by Mike McQuaid's avatar Mike McQuaid
Browse files

Revert "Revert "Test officially supported cmd taps. (#390)""

This reverts commit dba1958b.
parent dba1958b
No related branches found
No related tags found
No related merge requests found
#: @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 ...@@ -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" ...@@ -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[ ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment